{"openapi":"3.1.0","info":{"title":"Okta Identity Providers (BYOK) API","version":"0.1.0","description":"Okta Identity Providers (BYOK) lets an AI assistant read your own Okta Identity Providers data through the Okta Identity Providers API with a key you supply (Okta API token). Read-only: 8 tools (list_identity_providers, get_identity_provider, list_idp_key_credentials, get_idp_key_credential, list_idp_signing_keys, get_active_idp_signing_key, list_realms, get_realm). The BYOK key travels with each...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-okta-identity-providers.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-okta-identity-providers/docs"},"termsOfService":"https://connectorbay.com/byok-okta-identity-providers/terms"},"servers":[{"url":"https://byok-okta-identity-providers.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-okta-identity-providers/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_identity_providers":{"post":{"operationId":"list_identity_providers","summary":"List external identity providers (SAML, OIDC, social logins, identity verification) with type, status, protocol type and","description":"List external identity providers (SAML, OIDC, social logins, identity verification) with type, status, protocol type and issuer mode. Use for \"Which external identity providers are configured in our Okta org\".","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 identity providers by name.","title":"Q"},"type":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Only providers of this type, for example SAML2, OIDC, GOOGLE, FACEBOOK, MICROSOFT.","title":"Type"},"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_identity_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/get_identity_provider":{"post":{"operationId":"get_identity_provider","summary":"Get one identity provider: name, type, status, protocol type, issuer mode and account-linking and provisioning actions. ","description":"Get one identity provider: name, type, status, protocol type, issuer mode and account-linking and provisioning actions. Credentials are not returned. Use for \"Is Okta identity provider 0oa62b57p7c8PaGpU0h7 active, and does it provision users automatically\".","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"},"idp_id":{"description":"Okta identity provider id, for example 0oa62b57p7c8PaGpU0h7.","maxLength":200,"title":"Idp Id","type":"string"}},"required":["org","idp_id"],"title":"get_identity_providerArguments","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_idp_key_credentials":{"post":{"operationId":"list_idp_key_credentials","summary":"List the org-wide identity provider key credentials (id, key type, use and dates). The key material itself is not return","description":"List the org-wide identity provider key credentials (id, key type, use and dates). The key material itself is not returned. Use for \"When do the identity provider keys in Okta expire\".","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"},"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_idp_key_credentialsArguments","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_idp_key_credential":{"post":{"operationId":"get_idp_key_credential","summary":"Get one org-wide identity provider key credential by key id: key type, use, creation and expiry dates. Use for \"When doe","description":"Get one org-wide identity provider key credential by key id: key type, use, creation and expiry dates. Use for \"When does Okta identity provider key mXtSKC8DaBNgU8Aem6bhV3g2Eb0 expire\".","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"},"kid":{"description":"Key id (kid) of an identity provider key credential.","maxLength":200,"title":"Kid","type":"string"}},"required":["org","kid"],"title":"get_idp_key_credentialArguments","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_idp_signing_keys":{"post":{"operationId":"list_idp_signing_keys","summary":"List the signing keys attached to one identity provider with key id, type, use and dates. Certificates are not returned.","description":"List the signing keys attached to one identity provider with key id, type, use and dates. Certificates are not returned. Use for \"Which signing keys does Okta identity provider 0oa62b57p7c8PaGpU0h7 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"},"idp_id":{"description":"Okta identity provider id, for example 0oa62b57p7c8PaGpU0h7.","maxLength":200,"title":"Idp Id","type":"string"}},"required":["org","idp_id"],"title":"list_idp_signing_keysArguments","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_active_idp_signing_key":{"post":{"operationId":"get_active_idp_signing_key","summary":"Get the active signing key of one identity provider: key id, type, use and dates. Use for \"Which signing key is currentl","description":"Get the active signing key of one identity provider: key id, type, use and dates. Use for \"Which signing key is currently active for Okta identity provider 0oa62b57p7c8PaGpU0h7\".","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"},"idp_id":{"description":"Okta identity provider id, for example 0oa62b57p7c8PaGpU0h7.","maxLength":200,"title":"Idp Id","type":"string"}},"required":["org","idp_id"],"title":"get_active_idp_signing_keyArguments","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_realms":{"post":{"operationId":"list_realms","summary":"List realms (separate user populations such as partners or employees) with name, realm type, default flag and domains. U","description":"List realms (separate user populations such as partners or employees) with name, realm type, default flag and domains. Use for \"Which realms does our Okta org have\".","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"},"search":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Realm filter expression, for example 'profile.name sw \"Car\"'.","title":"Search"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"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_realmsArguments","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_realm":{"post":{"operationId":"get_realm","summary":"Get one realm: name, realm type, default flag, email domains and dates. Use for \"What type of realm is Okta realm guox9j","description":"Get one realm: name, realm type, default flag, email domains and dates. Use for \"What type of realm is Okta realm guox9jQ16k9V8IFEL0g3\".","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"},"realm_id":{"description":"Okta realm id, for example guox9jQ16k9V8IFEL0g3.","maxLength":200,"title":"Realm Id","type":"string"}},"required":["org","realm_id"],"title":"get_realmArguments","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}}}}