{"openapi":"3.1.0","info":{"title":"Confident AI Annotations (BYOK) API","version":"0.1.0","description":"Confident AI Annotations (BYOK) lets an AI assistant read your own Confident AI Annotations data through the Confident AI Annotations API with a key you supply (Confident AI project API key). Read-only: 5 tools (list_annotation_queues, get_annotation_queue, list_classifiers, get_classifier, list_classifier_labels). The BYOK key travels with each request, is used for that one call only and is...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-confident-ai-annotations.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-confident-ai-annotations/docs"},"termsOfService":"https://connectorbay.com/byok-confident-ai-annotations/terms"},"servers":[{"url":"https://byok-confident-ai-annotations.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-confident-ai-annotations/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_annotation_queues":{"post":{"operationId":"list_annotation_queues","summary":"List annotation queues, newest first, with type, tags, form id and progress (total, completed and pending items, complet","description":"List annotation queues, newest first, with type, tags, form id and progress (total, completed and pending items, completion percentage). Use for \"How far along are my annotation queues in Confident AI\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many queues per page (1 to 100).","title":"Page Size"},"type":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Only queues holding this kind of item: TRACE, SPAN, THREAD, GOLDEN or TEST_CASE.","title":"Type"},"search_term":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only queues whose name contains this text.","title":"Search Term"}},"title":"list_annotation_queuesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_annotation_queue":{"post":{"operationId":"get_annotation_queue","summary":"Get one annotation queue with its type, tags, form id, progress counts and number of assigned items (reviewer names are ","description":"Get one annotation queue with its type, tags, form id, progress counts and number of assigned items (reviewer names are not returned). Use for \"Show the Confident AI annotation queue aq_1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"annotation_queue_id":{"description":"Annotation queue id, as returned by list_annotation_queues.","maxLength":200,"title":"Annotation Queue Id","type":"string"}},"required":["annotation_queue_id"],"title":"get_annotation_queueArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_classifiers":{"post":{"operationId":"list_classifiers","summary":"List the classifiers that label production traces or conversations (id, name, enabled flag, data model), ordered by name","description":"List the classifiers that label production traces or conversations (id, name, enabled flag, data model), ordered by name. Use for \"Which classifiers are set up in my Confident AI project\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many classifiers per page (1 to 100).","title":"Page Size"},"data_model":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Only classifiers for this kind of item: TRACE or THREAD.","title":"Data Model"}},"title":"list_classifiersArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_classifier":{"post":{"operationId":"get_classifier","summary":"Get one classifier: description, auto-classify and audio settings, scoping filters, generation config and every label it","description":"Get one classifier: description, auto-classify and audio settings, scoping filters, generation config and every label it can apply with its description, status and polarity. Needs the Starter plan or above. Use for \"Show the labels of the Confident AI classifier cls_1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"classifier_id":{"description":"Classifier id, as returned by list_classifiers.","maxLength":200,"title":"Classifier Id","type":"string"}},"required":["classifier_id"],"title":"get_classifierArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_classifier_labels":{"post":{"operationId":"list_classifier_labels","summary":"List the labels of one classifier (id, name, enabled flag, status ACTIVE or RECOMMENDED), ordered by name. Use for \"Whic","description":"List the labels of one classifier (id, name, enabled flag, status ACTIVE or RECOMMENDED), ordered by name. Use for \"Which labels does the Confident AI classifier cls_1 have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"classifier_id":{"description":"Classifier id, as returned by list_classifiers.","maxLength":200,"title":"Classifier Id","type":"string"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many labels per page (1 to 100).","title":"Page Size"}},"required":["classifier_id"],"title":"list_classifier_labelsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}