{"openapi":"3.1.0","info":{"title":"Dixa (BYOK) API","version":"0.1.0","description":"Dixa (BYOK) lets an AI assistant read your own Dixa data through the Dixa API with a key you supply (Dixa API token (sent as the bare Authorization header value)). Read-only: 12 tools (get_organization, list_agents, list_agent_presence, list_teams, list_queues, list_tags, get_conversation, search_conversations, list_conversation_notes, list_conversation_ratings, list_custom_attributes,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-dixa.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-dixa/docs"},"termsOfService":"https://connectorbay.com/byok-dixa/terms"},"servers":[{"url":"https://byok-dixa.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-dixa/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/get_organization":{"post":{"operationId":"get_organization","summary":"Show the Dixa organization the token belongs to: name, subdomain, status. A quick check that the token works. Use for \"W","description":"Show the Dixa organization the token belongs to: name, subdomain, status. A quick check that the token works. Use for \"Which Dixa organization is my token connected to\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_organizationArguments","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_agents":{"post":{"operationId":"list_agents","summary":"List the agents and admins of the organization with name, roles and creation date (no contact details). Use for \"Who are","description":"List the agents and admins of the organization with name, roles and creation date (no contact details). Use for \"Who are the agents in our Dixa account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return per page (1 to 100).","title":"Page Limit"},"page_key":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from a previous answer's meta.next to fetch the next page; leave empty for the first page. Never build it by hand.","title":"Page Key"}},"title":"list_agentsArguments","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_agent_presence":{"post":{"operationId":"list_agent_presence","summary":"Show the current presence of every agent: status, connection status, active channels and last seen. Use for \"Which Dixa ","description":"Show the current presence of every agent: status, connection status, active channels and last seen. Use for \"Which Dixa agents are online right now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_agent_presenceArguments","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_teams":{"post":{"operationId":"list_teams","summary":"List the teams of the organization. Use for \"What teams do we have in Dixa\".","description":"List the teams of the organization. Use for \"What teams do we have in Dixa\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_teamsArguments","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_queues":{"post":{"operationId":"list_queues","summary":"List the conversation queues with default flag, priority, offering algorithm and timeouts. Use for \"What queues are set ","description":"List the conversation queues with default flag, priority, offering algorithm and timeouts. Use for \"What queues are set up in Dixa\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_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/list_tags":{"post":{"operationId":"list_tags","summary":"List the conversation tags with color and state. Only active tags unless deactivated ones are requested. Use for \"Which ","description":"List the conversation tags with color and state. Only active tags unless deactivated ones are requested. Use for \"Which tags are used in Dixa\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"include_deactivated":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include deactivated tags as well.","title":"Include Deactivated"}},"title":"list_tagsArguments","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_conversation":{"post":{"operationId":"get_conversation","summary":"Get one conversation: channel, state, direction, language, creation time, assigned agent and queue. Contact addresses ar","description":"Get one conversation: channel, state, direction, language, creation time, assigned agent and queue. Contact addresses are left out. Use for \"What is the status of Dixa conversation 1000\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"conversation_id":{"description":"Numeric conversation ID (for example from search_conversations).","maximum":9223372036854775807,"minimum":1,"title":"Conversation Id","type":"integer"}},"required":["conversation_id"],"title":"get_conversationArguments","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/search_conversations":{"post":{"operationId":"search_conversations","summary":"Search conversations that contain a text. Returns matching conversation ids with highlighted snippets. Paged. Use for \"W","description":"Search conversations that contain a text. Returns matching conversation ids with highlighted snippets. Paged. Use for \"Which Dixa conversations mention a refund\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"description":"Text to look for in conversations.","maxLength":300,"title":"Query","type":"string"},"exact_match":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to return only exact matches.","title":"Exact Match"},"page_limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return per page (1 to 100).","title":"Page Limit"},"page_key":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from a previous answer's meta.next to fetch the next page; leave empty for the first page. Never build it by hand.","title":"Page Key"}},"required":["query"],"title":"search_conversationsArguments","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_conversation_notes":{"post":{"operationId":"list_conversation_notes","summary":"List the internal notes agents wrote on one conversation. Use for \"What internal notes are on Dixa conversation 1000\".","description":"List the internal notes agents wrote on one conversation. Use for \"What internal notes are on Dixa conversation 1000\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"conversation_id":{"description":"Numeric conversation ID (for example from search_conversations).","maximum":9223372036854775807,"minimum":1,"title":"Conversation Id","type":"integer"}},"required":["conversation_id"],"title":"list_conversation_notesArguments","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_conversation_ratings":{"post":{"operationId":"list_conversation_ratings","summary":"List the latest customer ratings (CSAT, NPS, thumbs) of one conversation with score, comment and status. Use for \"How di","description":"List the latest customer ratings (CSAT, NPS, thumbs) of one conversation with score, comment and status. Use for \"How did the customer rate Dixa conversation 1000\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"conversation_id":{"description":"Numeric conversation ID (for example from search_conversations).","maximum":9223372036854775807,"minimum":1,"title":"Conversation Id","type":"integer"}},"required":["conversation_id"],"title":"list_conversation_ratingsArguments","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_custom_attributes":{"post":{"operationId":"list_custom_attributes","summary":"List the custom attribute definitions (label, entity type, required and archived flags). Use for \"What custom attributes","description":"List the custom attribute definitions (label, entity type, required and archived flags). Use for \"What custom attributes are defined in Dixa\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_custom_attributesArguments","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_knowledge_collections":{"post":{"operationId":"list_knowledge_collections","summary":"List the knowledge base collections with title, description and whether the internal knowledge base is enabled. Use for ","description":"List the knowledge base collections with title, description and whether the internal knowledge base is enabled. Use for \"What knowledge collections does Dixa have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return per page (1 to 100).","title":"Page Limit"},"page_key":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from a previous answer's meta.next to fetch the next page; leave empty for the first page. Never build it by hand.","title":"Page Key"}},"title":"list_knowledge_collectionsArguments","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}}}}