openapi: 3.1.0 info: title: Assembled QA API description: | Upload QA scores in bulk so external quality-management tools such as Klaus, Rippit (MaestroQA), evaluagent, and Observe.AI can feed conversation scores back into Assembled for adherence-vs-quality analysis and coaching workflows. version: '2026-05-24' contact: name: Assembled Support url: https://support.assembled.com servers: - url: https://api.assembledhq.com description: Production Server security: - BasicAuth: [] tags: - name: Quality Assurance paths: /v0/qa_scores/bulk: post: summary: Assembled Bulk Upload QA Scores description: Submit a batch of QA scores from an external QM tool. operationId: bulkUploadQaScores tags: [Quality Assurance] requestBody: required: true content: application/json: schema: type: object properties: qa_scores: type: array items: { $ref: '#/components/schemas/QaScoreInput' } responses: '202': description: Accepted components: securitySchemes: BasicAuth: { type: http, scheme: basic } schemas: QaScoreInput: type: object required: [agent_id, score, source, scored_at] properties: agent_id: { type: string } conversation_external_id: { type: string } source: { type: string, example: klaus } score: { type: number, description: Normalised 0-100 quality score } max_score: { type: number, default: 100 } rubric: { type: string } notes: { type: string } reviewer: { type: string } scored_at: { type: string, format: date-time }