{"openapi":"3.1.0","info":{"title":"Dograh AI (BYOK) API","version":"0.1.0","description":"Dograh AI (BYOK) lets an AI assistant read your own Dograh AI data through the Dograh AI API with a key you supply (Dograh API key). Read-only: 8 tools (list_agents, count_agents, list_campaigns, get_campaign, get_campaign_progress, list_telephony_providers, list_telephony_configs, list_phone_numbers). The BYOK key travels with each request, is used for that one call only and is never stored,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-dograh.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-dograh/docs"},"termsOfService":"https://connectorbay.com/byok-dograh/terms"},"servers":[{"url":"https://byok-dograh.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-dograh/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_agents":{"post":{"operationId":"list_agents","summary":"List the voice agents (workflows) with id, name, status, creation time and total runs, active and archived. Use for \"Whi","description":"List the voice agents (workflows) with id, name, status, creation time and total runs, active and archived. Use for \"Which voice agents do I have on Dograh\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Only agents with this status; active, archived or both comma-separated.","title":"Status"}},"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/count_agents":{"post":{"operationId":"count_agents","summary":"Count the voice agents: total, active and archived. Use for \"How many agents do I have on Dograh\".","description":"Count the voice agents: total, active and archived. Use for \"How many agents do I have on Dograh\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"count_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_campaigns":{"post":{"operationId":"list_campaigns","summary":"List the outbound calling campaigns with state, agent, rows processed and failed, retry settings, rate limit and telepho","description":"List the outbound calling campaigns with state, agent, rows processed and failed, retry settings, rate limit and telephony configuration. Use for \"What is the status of my Dograh calling campaigns\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_campaignsArguments","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_campaign":{"post":{"operationId":"get_campaign","summary":"Get one campaign's state, rows processed and failed, retry settings, schedule limits and warnings. Use for \"How is my Do","description":"Get one campaign's state, rows processed and failed, retry settings, schedule limits and warnings. Use for \"How is my Dograh campaign 12 doing\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"campaign_id":{"description":"Campaign id (integer, from list_campaigns).","minimum":1,"title":"Campaign Id","type":"integer"}},"required":["campaign_id"],"title":"get_campaignArguments","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_campaign_progress":{"post":{"operationId":"get_campaign_progress","summary":"Get a campaign's progress: state, total and processed rows, failed calls, percentage done and rate limit. Use for \"How f","description":"Get a campaign's progress: state, total and processed rows, failed calls, percentage done and rate limit. Use for \"How far along is my Dograh campaign 12\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"campaign_id":{"description":"Campaign id (integer, from list_campaigns).","minimum":1,"title":"Campaign Id","type":"integer"}},"required":["campaign_id"],"title":"get_campaign_progressArguments","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_telephony_providers":{"post":{"operationId":"list_telephony_providers","summary":"List the supported telephony providers with display name, connectivity type (API or SIP) and whether they support outbou","description":"List the supported telephony providers with display name, connectivity type (API or SIP) and whether they support outbound calls. Use for \"Which telephony providers can I connect to Dograh\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_telephony_providersArguments","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_telephony_configs":{"post":{"operationId":"list_telephony_configs","summary":"List the telephony configurations with provider, connectivity, default-outbound flag, inactive state, phone number count","description":"List the telephony configurations with provider, connectivity, default-outbound flag, inactive state, phone number count and outbound readiness. Credentials are not returned. Use for \"Which telephony connections are set up on Dograh and are they ready for outbound\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_telephony_configsArguments","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_phone_numbers":{"post":{"operationId":"list_phone_numbers","summary":"List the phone numbers attached to one telephony configuration with label, country, inbound agent, active flag and defau","description":"List the phone numbers attached to one telephony configuration with label, country, inbound agent, active flag and default caller ID. Use for \"Which phone numbers are attached to my Dograh Twilio connection\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"config_id":{"description":"Telephony configuration id (integer, from list_telephony_configs).","minimum":1,"title":"Config Id","type":"integer"}},"required":["config_id"],"title":"list_phone_numbersArguments","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}}}}