{"openapi":"3.1.0","info":{"title":"Smallest AI (BYOK) API","version":"0.1.0","description":"Smallest AI (BYOK) lets an AI assistant read your own Smallest AI data through the Smallest AI API with a key you supply (Smallest AI API key). Read-only: 12 tools (get_agent, list_agent_templates, list_campaigns, get_campaign, list_audiences, get_audience, list_knowledge_bases, get_knowledge_base, list_phone_numbers, list_voices, list_voice_clones, list_pronunciation_dicts). The BYOK key travels...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-smallest-ai.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-smallest-ai/docs"},"termsOfService":"https://connectorbay.com/byok-smallest-ai/terms"},"servers":[{"url":"https://byok-smallest-ai.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-smallest-ai/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_agent":{"post":{"operationId":"get_agent","summary":"Get one voice agent's setup: name, workflow type, language, voice settings, language model, first message, call count, a","description":"Get one voice agent's setup: name, workflow type, language, voice settings, language model, first message, call count, active version and attached phone numbers (call-start API settings are not returned). Use for \"How is my Smallest AI support agent configured\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"The agent id (24-character hex).","maxLength":200,"title":"Id","type":"string"}},"required":["id"],"title":"get_agentArguments","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_templates":{"post":{"operationId":"list_agent_templates","summary":"List ready-made voice agent templates with industry, use case, call direction, workflow type, region and default languag","description":"List ready-made voice agent templates with industry, use case, call direction, workflow type, region and default language (prompts are not returned). Use for \"Which Smallest AI agent templates exist for healthcare in the US\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"anyOf":[{"enum":["us","in"],"type":"string"},{"type":"null"}],"default":null,"description":"Only templates for this region: us or in. Leave out for all.","title":"Region"}},"title":"list_agent_templatesArguments","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 outbound calling campaigns with status, agent, audience, participant count, retry settings and schedule; filter by ","description":"List outbound calling campaigns with status, agent, audience, participant count, retry settings and schedule; filter by status or name. Use for \"Which of my Smallest AI campaigns are running or paused\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"offset":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":5,"description":"How many campaigns per page.","title":"Offset"},"status":{"anyOf":[{"enum":["draft","scheduled","processing","running","paused","completed","failed"],"type":"string"},{"type":"null"}],"default":null,"description":"Only campaigns with this status.","title":"Status"},"search":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Search campaigns by name.","title":"Search"},"sort_field":{"anyOf":[{"enum":["createdAt","updatedAt"],"type":"string"},{"type":"null"}],"default":"createdAt","description":"Field to sort by.","title":"Sort Field"},"sort_order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"desc","description":"Sort direction.","title":"Sort Order"}},"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 with its status, agent, audience, retry settings, failure reason, event history and performance metrics","description":"Get one campaign with its status, agent, audience, retry settings, failure reason, event history and performance metrics. Use for \"How is my Smallest AI renewals campaign doing\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"The campaign id (24-character hex).","maxLength":200,"title":"Id","type":"string"}},"required":["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/list_audiences":{"post":{"operationId":"list_audiences","summary":"List calling audiences (contact lists) with name, member count and the campaigns using them; the contacts themselves are","description":"List calling audiences (contact lists) with name, member count and the campaigns using them; the contacts themselves are not returned. Use for \"Which Smallest AI audiences do I have and how big are they\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_audiencesArguments","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_audience":{"post":{"operationId":"get_audience","summary":"Get one audience's name, description, phone column name and timestamps; the contacts themselves are not returned. Use fo","description":"Get one audience's name, description, phone column name and timestamps; the contacts themselves are not returned. Use for \"When was my Smallest AI Q4 audience last updated\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"The audience id (24-character hex).","maxLength":200,"title":"Id","type":"string"}},"required":["id"],"title":"get_audienceArguments","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_bases":{"post":{"operationId":"list_knowledge_bases","summary":"List knowledge bases that agents can search, with name, description and processing status. Use for \"Which Smallest AI kn","description":"List knowledge bases that agents can search, with name, description and processing status. Use for \"Which Smallest AI knowledge bases have finished processing\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_knowledge_basesArguments","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_knowledge_base":{"post":{"operationId":"get_knowledge_base","summary":"Get one knowledge base's name, description, processing status and timestamps. Use for \"Is my Smallest AI product FAQ kno","description":"Get one knowledge base's name, description, processing status and timestamps. Use for \"Is my Smallest AI product FAQ knowledge base ready\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"The knowledge base id (24-character hex).","maxLength":200,"title":"Id","type":"string"}},"required":["id"],"title":"get_knowledge_baseArguments","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 telephony numbers the organization has acquired, with provider, country, active flag and the agent each is assigned","description":"List telephony numbers the organization has acquired, with provider, country, active flag and the agent each is assigned to (imported SIP numbers are not included). Use for \"Which phone numbers do I own on Smallest AI and which agents answer them\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"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}},"/v1/tools/list_voices":{"post":{"operationId":"list_voices","summary":"List the text-to-speech voices of one Lightning v3.1 pool with display name, languages, accent, gender, age, emotions an","description":"List the text-to-speech voices of one Lightning v3.1 pool with display name, languages, accent, gender, age, emotions and use cases. Use for \"Which Smallest AI voices speak Hindi with a female tone\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"model":{"description":"Voice pool: lightning-v3.1 (Standard) or lightning-v3.1-pro (Pro).","enum":["lightning-v3.1","lightning-v3.1-pro"],"title":"Model","type":"string"}},"required":["model"],"title":"list_voicesArguments","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_voice_clones":{"post":{"operationId":"list_voice_clones","summary":"List the organization's voice clones with name, language, accent, status, cloning type and compatible models. Use for \"W","description":"List the organization's voice clones with name, language, accent, status, cloning type and compatible models. Use for \"Which of my Smallest AI voice clones are ready to use\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_voice_clonesArguments","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_pronunciation_dicts":{"post":{"operationId":"list_pronunciation_dicts","summary":"List pronunciation dictionaries with their word and pronunciation pairs. Use for \"Which custom pronunciations have I set","description":"List pronunciation dictionaries with their word and pronunciation pairs. Use for \"Which custom pronunciations have I set up in Smallest AI\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_pronunciation_dictsArguments","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}}}}