{"openapi":"3.1.0","info":{"title":"Okta Brands (BYOK) API","version":"0.1.0","description":"Okta Brands (BYOK) lets an AI assistant read your own Okta Brands data through the Okta Brands API with a key you supply (Okta API token). Read-only: 8 tools (list_brands, get_brand, list_brand_domains, list_brand_themes, get_brand_theme, list_email_templates, get_email_template_settings, list_email_customizations). The BYOK key travels with each request, is used for that one call only and is...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-okta-brands.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-okta-brands/docs"},"termsOfService":"https://connectorbay.com/byok-okta-brands/terms"},"servers":[{"url":"https://byok-okta-brands.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-okta-brands/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_brands":{"post":{"operationId":"list_brands","summary":"List brands with name, default flag, locale, privacy policy settings, email domain id and default app. Use for \"Which br","description":"List brands with name, default flag, locale, privacy policy settings, email domain id and default app. Use for \"Which brands does our Okta org have and which one is the default\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"org":{"description":"Your Okta org subdomain: the part before .okta.com, for example 'acme' for acme.okta.com.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Org","type":"string"},"q":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Search brands by name.","title":"Q"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 200).","title":"Limit"},"after":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Pagination cursor taken from the previous answer's next link; leave empty for the first page.","title":"After"}},"required":["org"],"title":"list_brandsArguments","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_brand":{"post":{"operationId":"get_brand","summary":"Get one brand: name, default flag, locale, privacy policy settings, email domain id and default app. Use for \"Is the Pow","description":"Get one brand: name, default flag, locale, privacy policy settings, email domain id and default app. Use for \"Is the Powered by Okta badge hidden on brand bnd114iNkrcN6aR680g4\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"org":{"description":"Your Okta org subdomain: the part before .okta.com, for example 'acme' for acme.okta.com.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Org","type":"string"},"brand_id":{"description":"Okta brand id, for example bnd114iNkrcN6aR680g4.","maxLength":200,"title":"Brand Id","type":"string"}},"required":["org","brand_id"],"title":"get_brandArguments","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_brand_domains":{"post":{"operationId":"list_brand_domains","summary":"List the custom domains assigned to one brand with validation status, certificate source type and certificate expiry. Us","description":"List the custom domains assigned to one brand with validation status, certificate source type and certificate expiry. Use for \"Are the custom domains of Okta brand bnd114iNkrcN6aR680g4 verified\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"org":{"description":"Your Okta org subdomain: the part before .okta.com, for example 'acme' for acme.okta.com.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Org","type":"string"},"brand_id":{"description":"Okta brand id, for example bnd114iNkrcN6aR680g4.","maxLength":200,"title":"Brand Id","type":"string"}},"required":["org","brand_id"],"title":"list_brand_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_brand_themes":{"post":{"operationId":"list_brand_themes","summary":"List the themes of one brand with logo and favicon URLs, primary and secondary colors and the page layout variants. Use ","description":"List the themes of one brand with logo and favicon URLs, primary and secondary colors and the page layout variants. Use for \"What colors and logo does Okta brand bnd114iNkrcN6aR680g4 use\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"org":{"description":"Your Okta org subdomain: the part before .okta.com, for example 'acme' for acme.okta.com.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Org","type":"string"},"brand_id":{"description":"Okta brand id, for example bnd114iNkrcN6aR680g4.","maxLength":200,"title":"Brand Id","type":"string"}},"required":["org","brand_id"],"title":"list_brand_themesArguments","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_brand_theme":{"post":{"operationId":"get_brand_theme","summary":"Get one theme of a brand: logo and favicon URLs, colors and page layout variants. Use for \"Which sign-in page variant do","description":"Get one theme of a brand: logo and favicon URLs, colors and page layout variants. Use for \"Which sign-in page variant does Okta theme thdul904tTZ6kWVhP0g3 use\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"org":{"description":"Your Okta org subdomain: the part before .okta.com, for example 'acme' for acme.okta.com.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Org","type":"string"},"brand_id":{"description":"Okta brand id, for example bnd114iNkrcN6aR680g4.","maxLength":200,"title":"Brand Id","type":"string"},"theme_id":{"description":"Theme id of a brand, for example thdul904tTZ6kWVhP0g3.","maxLength":200,"title":"Theme Id","type":"string"}},"required":["org","brand_id","theme_id"],"title":"get_brand_themeArguments","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_email_templates":{"post":{"operationId":"list_email_templates","summary":"List the email templates of one brand (activation, password reset and so on) with recipient setting and the number of cu","description":"List the email templates of one brand (activation, password reset and so on) with recipient setting and the number of customizations. Use for \"Which Okta email templates have customizations\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"org":{"description":"Your Okta org subdomain: the part before .okta.com, for example 'acme' for acme.okta.com.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Org","type":"string"},"brand_id":{"description":"Okta brand id, for example bnd114iNkrcN6aR680g4.","maxLength":200,"title":"Brand Id","type":"string"},"expand":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":"settings,customizationCount","description":"Comma-separated extras to include: settings, customizationCount.","title":"Expand"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 200).","title":"Limit"},"after":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Pagination cursor taken from the previous answer's next link; leave empty for the first page.","title":"After"}},"required":["org","brand_id"],"title":"list_email_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/get_email_template_settings":{"post":{"operationId":"get_email_template_settings","summary":"Get who receives one email template: ALL_USERS, ADMINS_ONLY or NO_USERS. Use for \"Who receives the Okta ForgotPassword e","description":"Get who receives one email template: ALL_USERS, ADMINS_ONLY or NO_USERS. Use for \"Who receives the Okta ForgotPassword email\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"org":{"description":"Your Okta org subdomain: the part before .okta.com, for example 'acme' for acme.okta.com.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Org","type":"string"},"brand_id":{"description":"Okta brand id, for example bnd114iNkrcN6aR680g4.","maxLength":200,"title":"Brand Id","type":"string"},"template_name":{"description":"Email template name, for example UserActivation, ForgotPassword or PasswordChanged.","maxLength":200,"title":"Template Name","type":"string"}},"required":["org","brand_id","template_name"],"title":"get_email_template_settingsArguments","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_email_customizations":{"post":{"operationId":"list_email_customizations","summary":"List the customizations of one email template with language, subject, default flag and dates. Message bodies are not ret","description":"List the customizations of one email template with language, subject, default flag and dates. Message bodies are not returned. Use for \"In which languages is the Okta UserActivation email customized\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"org":{"description":"Your Okta org subdomain: the part before .okta.com, for example 'acme' for acme.okta.com.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Org","type":"string"},"brand_id":{"description":"Okta brand id, for example bnd114iNkrcN6aR680g4.","maxLength":200,"title":"Brand Id","type":"string"},"template_name":{"description":"Email template name, for example UserActivation, ForgotPassword or PasswordChanged.","maxLength":200,"title":"Template Name","type":"string"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 200).","title":"Limit"},"after":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Pagination cursor taken from the previous answer's next link; leave empty for the first page.","title":"After"}},"required":["org","brand_id","template_name"],"title":"list_email_customizationsArguments","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}}}}