{"openapi":"3.1.0","info":{"title":"Bitly Organizations (BYOK) API","version":"0.1.0","description":"Bitly Organizations (BYOK) lets an AI assistant read your own Bitly Organizations data through the Bitly Organizations API with a key you supply (Bitly access token). Read-only: 12 tools (list_organizations, get_organization, get_plan_limits, get_organization_shorten_counts, list_custom_domains, list_shortening_domains, get_custom_domain_dns, list_webhooks, list_channels, get_group_preferences,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-bitly-organizations.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-bitly-organizations/docs"},"termsOfService":"https://connectorbay.com/byok-bitly-organizations/terms"},"servers":[{"url":"https://byok-bitly-organizations.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-bitly-organizations/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_organizations":{"post":{"operationId":"list_organizations","summary":"List the Bitly organizations the token can use with name, plan tier, role, creation date and branded short domains. Use ","description":"List the Bitly organizations the token can use with name, plan tier, role, creation date and branded short domains. Use for \"Which Bitly organizations am I in and what plan are they on\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"include_all":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to include organizations outside the token's allowed list.","title":"Include All"}},"title":"list_organizationsArguments","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_organization":{"post":{"operationId":"get_organization","summary":"Get one Bitly organization: name, plan tier, role, SSO and 2FA requirements, dates and branded short domains. Use for \"W","description":"Get one Bitly organization: name, plan tier, role, SSO and 2FA requirements, dates and branded short domains. Use for \"What plan is this Bitly organization on\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_guid":{"description":"Bitly organization GUID, from list_organizations.","maxLength":64,"title":"Organization Guid","type":"string"}},"required":["organization_guid"],"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/get_plan_limits":{"post":{"operationId":"get_plan_limits","summary":"List the plan limits of a Bitly organization with the limit name, description, allowed amount and amount used. Use for \"","description":"List the plan limits of a Bitly organization with the limit name, description, allowed amount and amount used. Use for \"How close am I to my Bitly plan limits\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_guid":{"description":"Bitly organization GUID, from list_organizations.","maxLength":64,"title":"Organization Guid","type":"string"}},"required":["organization_guid"],"title":"get_plan_limitsArguments","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_organization_shorten_counts":{"post":{"operationId":"get_organization_shorten_counts","summary":"Get how many links an organization shortened over a period, as key and count pairs. Use for \"How many Bitlinks did my or","description":"Get how many links an organization shortened over a period, as key and count pairs. Use for \"How many Bitlinks did my organization create this month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_guid":{"description":"Bitly organization GUID, from list_organizations.","maxLength":64,"title":"Organization Guid","type":"string"},"unit":{"anyOf":[{"enum":["minute","hour","day","week","month"],"type":"string"},{"type":"null"}],"default":"day","description":"Time unit for the period: minute, hour, day (default), week or month.","title":"Unit"},"units":{"anyOf":[{"maximum":100000,"minimum":-1,"type":"integer"},{"type":"null"}],"default":-1,"description":"How many time units back to include; -1 (default) means all time.","title":"Units"},"unit_reference":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"ISO 8601 time that ends the period, for example 2026-10-01T00:00:00+0000; default now.","title":"Unit Reference"}},"required":["organization_guid"],"title":"get_organization_shorten_countsArguments","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_domains":{"post":{"operationId":"list_custom_domains","summary":"List the custom (branded short) domains of an organization with activity, HTTPS and validation status and linked group G","description":"List the custom (branded short) domains of an organization with activity, HTTPS and validation status and linked group GUIDs. Use for \"Which branded short domains do I have in Bitly and are they valid\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_guid":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Only domains of this organization GUID.","title":"Organization Guid"}},"title":"list_custom_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/list_shortening_domains":{"post":{"operationId":"list_shortening_domains","summary":"List the domains the token's account can shorten links with, such as bit.ly and branded domains. Use for \"Which domains ","description":"List the domains the token's account can shorten links with, such as bit.ly and branded domains. Use for \"Which domains can I shorten links with in Bitly\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_shortening_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_custom_domain_dns":{"post":{"operationId":"get_custom_domain_dns","summary":"Show the DNS records a Bitly custom domain needs and whether they are currently valid. Use for \"Are the DNS records of m","description":"Show the DNS records a Bitly custom domain needs and whether they are currently valid. Use for \"Are the DNS records of my Bitly branded domain correct\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"custom_domain":{"description":"The branded domain, for example go.example.com.","maxLength":253,"title":"Custom Domain","type":"string"},"organization_guid":{"description":"Organization GUID that owns the domain.","maxLength":64,"title":"Organization Guid","type":"string"}},"required":["custom_domain","organization_guid"],"title":"get_custom_domain_dnsArguments","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_webhooks":{"post":{"operationId":"list_webhooks","summary":"List the webhooks of an organization with name, event type, status and active flag; the callback URL and credentials are","description":"List the webhooks of an organization with name, event type, status and active flag; the callback URL and credentials are left out. Use for \"Which Bitly webhooks are set up\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_guid":{"description":"Bitly organization GUID, from list_organizations.","maxLength":64,"title":"Organization Guid","type":"string"}},"required":["organization_guid"],"title":"list_webhooksArguments","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_channels":{"post":{"operationId":"list_channels","summary":"List the campaign channels, optionally for one group or campaign, with name, GUID and dates. Use for \"Which Bitly campai","description":"List the campaign channels, optionally for one group or campaign, with name, GUID and dates. Use for \"Which Bitly campaign channels exist\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"group_guid":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Only channels of this group GUID.","title":"Group Guid"},"campaign_guid":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Only channels of this campaign GUID.","title":"Campaign Guid"}},"title":"list_channelsArguments","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_group_preferences":{"post":{"operationId":"get_group_preferences","summary":"Get a group's default domain preference. Use for \"What is the default short domain of my Bitly group\".","description":"Get a group's default domain preference. Use for \"What is the default short domain of my Bitly group\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"group_guid":{"description":"Bitly group GUID, from the bitly connector's list_groups.","maxLength":64,"title":"Group Guid","type":"string"}},"required":["group_guid"],"title":"get_group_preferencesArguments","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_group_shorten_counts":{"post":{"operationId":"get_group_shorten_counts","summary":"Get how many links a group shortened over a period, as key and count pairs. Use for \"How many Bitlinks did my group crea","description":"Get how many links a group shortened over a period, as key and count pairs. Use for \"How many Bitlinks did my group create this week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"group_guid":{"description":"Bitly group GUID, from the bitly connector's list_groups.","maxLength":64,"title":"Group Guid","type":"string"},"unit":{"anyOf":[{"enum":["minute","hour","day","week","month"],"type":"string"},{"type":"null"}],"default":"day","description":"Time unit for the period: minute, hour, day (default), week or month.","title":"Unit"},"units":{"anyOf":[{"maximum":100000,"minimum":-1,"type":"integer"},{"type":"null"}],"default":-1,"description":"How many time units back to include; -1 (default) means all time.","title":"Units"},"unit_reference":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"ISO 8601 time that ends the period, for example 2026-10-01T00:00:00+0000; default now.","title":"Unit Reference"}},"required":["group_guid"],"title":"get_group_shorten_countsArguments","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_group_feature_usage":{"post":{"operationId":"get_group_feature_usage","summary":"Show how much of each plan limit (links, QR codes, domains and so on) a group has used. Use for \"How many QR codes has m","description":"Show how much of each plan limit (links, QR codes, domains and so on) a group has used. Use for \"How many QR codes has my Bitly group used\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"group_guid":{"description":"Bitly group GUID, from the bitly connector's list_groups.","maxLength":64,"title":"Group Guid","type":"string"}},"required":["group_guid"],"title":"get_group_feature_usageArguments","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}}}}