openapi: 3.0.3 info: title: Agnost AI Alerts Classification API description: 'Complete REST API for Agnost AI: an analytics and monitoring platform for AI agents. **Authentication**: - SDK ingestion endpoints (`/api/v1/*`) use `x-org-id` header (UUID) - Dashboard endpoints use `Authorization: Bearer ` + `x-org-id` header, or `x-api-key` header - API key management uses JWT only (no API key auth) ' version: 2.1.2 contact: name: Agnost AI url: https://agnost.ai servers: - url: https://api.agnost.ai description: Production tags: - name: Classification description: LLM-based classification operations paths: /dashboard/api/run-intent-classification: post: tags: - Classification summary: Run intent classification on conversations operationId: runIntentClassification security: - BearerAuth: [] OrgScope: [] - ApiKey: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryFilters' responses: '200': description: Classification results /dashboard/api/run-sop-classification: post: tags: - Classification summary: Run SOP classification on conversations operationId: runSOPClassification security: - BearerAuth: [] OrgScope: [] - ApiKey: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryFilters' responses: '200': description: SOP classification results /dashboard/api/run-spotlight-query: post: tags: - Classification summary: Run LLM-based spotlight query (SSE streaming) operationId: runSpotlightLLMQuery security: - BearerAuth: [] OrgScope: [] - ApiKey: [] requestBody: content: application/json: schema: allOf: - $ref: '#/components/schemas/QueryFilters' - type: object required: - query properties: query: type: string responses: '200': description: SSE stream of classification results content: text/event-stream: schema: type: string /dashboard/api/classify: post: tags: - Classification summary: Unified classification endpoint description: 'Dispatches to intent, SOP, or spotlight classification based on type field. Replaces separate run-intent-classification, run-sop-classification, and run-spotlight-query endpoints. ' operationId: runClassification security: - BearerAuth: [] OrgScope: [] - ApiKey: [] requestBody: content: application/json: schema: allOf: - $ref: '#/components/schemas/QueryFilters' - type: object required: - type properties: type: type: string enum: - intent - sop - spotlight query: type: string description: Required for spotlight type responses: '200': description: Classification results components: schemas: QueryFilters: type: object properties: time_range: $ref: '#/components/schemas/TimeRange' connection_type: oneOf: - type: string - type: array items: type: string agent_name: oneOf: - type: string - type: array items: type: string metadata_filters: type: array items: type: object properties: key: type: string value: type: string page: type: integer default: 1 page_size: type: integer default: 20 TimeRange: type: string enum: - 1min - 1h - 1d - 1w - 1m - all default: 1w securitySchemes: OrgId: type: apiKey in: header name: x-org-id description: Organization ID (UUID). Used by SDKs for event ingestion. Header is case-insensitive. BearerAuth: type: http scheme: bearer bearerFormat: JWT description: JWT token from OAuth login. ApiKey: type: apiKey in: header name: x-api-key description: API key (`agnost_<64-hex>`) for programmatic dashboard access. Issued via Settings → API Keys. OrgScope: type: apiKey in: header name: x-org-id description: Optional. Selects which organization a JWT- or API-key-authenticated request targets when the credential has access to multiple.