{"openapi":"3.1.0","info":{"title":"Short.io (BYOK) API","version":"0.1.0","description":"Short.io (BYOK) lets an AI assistant read your own Short.io data through the Short.io API with a key you supply (Short.io secret API key (Settings > Integrations & API)). Read-only: 6 tools (list_domains, get_domain, list_links, get_link, get_link_by_path, list_links_by_original_url). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-short-io.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-short-io/docs"},"termsOfService":"https://connectorbay.com/byok-short-io/terms"},"servers":[{"url":"https://byok-short-io.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-short-io/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_domains":{"post":{"operationId":"list_domains","summary":"List the short domains of your account with hostname, state, link type, HTTPS settings and SSL status. Use for \"Which sh","description":"List the short domains of your account with hostname, state, link type, HTTPS settings and SSL status. Use for \"Which short domains do I have in Short.io\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"Maximum domains to return (default 100).","title":"Limit"},"offset":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of domains to skip.","title":"Offset"},"pattern":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only domains whose hostname contains this text.","title":"Pattern"}},"title":"list_domainsArguments","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_domain":{"post":{"operationId":"get_domain","summary":"Get one short domain with hostname, state, link type, HTTPS and SSL settings. Use for \"What are the settings of Short.io","description":"Get one short domain with hostname, state, link type, HTTPS and SSL settings. Use for \"What are the settings of Short.io domain 12345\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"domain_id":{"description":"Short.io domain id from list_domains.","minimum":1,"title":"Domain Id","type":"integer"}},"required":["domain_id"],"title":"get_domainArguments","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_links":{"post":{"operationId":"list_links","summary":"List the short links of a domain with original URL, short URL, title, tags, archive flag and creation time, with a page ","description":"List the short links of a domain with original URL, short URL, title, tags, archive flag and creation time, with a page token for more. Use for \"What short links exist on Short.io domain 12345\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"domain_id":{"description":"Short.io domain id from list_domains.","minimum":1,"title":"Domain Id","type":"integer"},"limit":{"anyOf":[{"maximum":150,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Maximum links to return (1 to 150).","title":"Limit"},"date_sort_order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort by creation date.","title":"Date Sort Order"},"before_date":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only links created before this ISO 8601 time.","title":"Before Date"},"after_date":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only links created after this ISO 8601 time.","title":"After Date"},"page_token":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"nextPageToken of the previous response.","title":"Page Token"},"folder_id":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Only links in this folder id.","title":"Folder Id"}},"required":["domain_id"],"title":"list_linksArguments","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_link":{"post":{"operationId":"get_link","summary":"Get one short link by its id with original URL, short URL, title, tags, redirect type and expiry. Use for \"What does Sho","description":"Get one short link by its id with original URL, short URL, title, tags, redirect type and expiry. Use for \"What does Short.io link lnk_4Zq9xT1 point to\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"link_id":{"description":"Short.io link idString from list_links.","maxLength":60,"title":"Link Id","type":"string"}},"required":["link_id"],"title":"get_linkArguments","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_link_by_path":{"post":{"operationId":"get_link_by_path","summary":"Find a short link by domain hostname and path and return its original URL, title, tags and redirect type. Use for \"Where","description":"Find a short link by domain hostname and path and return its original URL, title, tags and redirect type. Use for \"Where does go.example.com/spring redirect to in Short.io\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"domain":{"description":"Branded short domain hostname, for example go.example.com.","maxLength":253,"title":"Domain","type":"string"},"path":{"description":"Short link path without the leading slash, for example spring.","maxLength":200,"title":"Path","type":"string"}},"required":["domain","path"],"title":"get_link_by_pathArguments","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_links_by_original_url":{"post":{"operationId":"list_links_by_original_url","summary":"List every short link on a domain that points to the same original URL. Use for \"Which Short.io short links point to htt","description":"List every short link on a domain that points to the same original URL. Use for \"Which Short.io short links point to https://example.com/spring-sale\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"domain":{"description":"Branded short domain hostname, for example go.example.com.","maxLength":253,"title":"Domain","type":"string"},"original_url":{"description":"The full original URL to look up.","maxLength":2000,"title":"Original Url","type":"string"}},"required":["domain","original_url"],"title":"list_links_by_original_urlArguments","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}}}}