{"openapi":"3.1.0","info":{"title":"Stytch (BYOK) API","version":"0.1.0","description":"Stytch (BYOK) lets an AI assistant read your own Stytch data through the Stytch API with a key you supply (project ID (live environment)). Read-only: 8 tools (get_user, search_users, get_user_sessions, get_rbac_policy, search_connected_apps, get_connected_app, search_m2m_clients, get_m2m_client). The BYOK key travels with each request, is used for that one call only and is never stored, logged or...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-stytch.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-stytch/docs"},"termsOfService":"https://connectorbay.com/byok-stytch/terms"},"servers":[{"url":"https://byok-stytch.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-stytch/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_user":{"post":{"operationId":"get_user","summary":"Get one Stytch consumer user: status, name, email addresses, phone numbers, lock flag, roles and creation time. Contains","description":"Get one Stytch consumer user: status, name, email addresses, phone numbers, lock flag, roles and creation time. Contains personal data. Use for \"Show the Stytch user user-test-16d9ba61-97a1-4ba4-9720-b03761dc50c6\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"user_id":{"description":"Stytch user id (for example user-test-16d9ba61-97a1-4ba4-9720-b03761dc50c6) or an external_id if one is set.","maxLength":120,"title":"User Id","type":"string"}},"required":["user_id"],"title":"get_userArguments","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/search_users":{"post":{"operationId":"search_users","summary":"List the users of the Stytch project (no filter), page by page with a cursor. Search is rate limited to 150 requests a m","description":"List the users of the Stytch project (no filter), page by page with a cursor. Search is rate limited to 150 requests a minute. Contains personal data. Use for \"List the users in my Stytch project\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return per page (the API default applies when omitted).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: leave out for the first page, or pass results_metadata.next_cursor from the previous answer.","title":"Cursor"}},"title":"search_usersArguments","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_user_sessions":{"post":{"operationId":"get_user_sessions","summary":"List the active sessions of one Stytch user with start, last access and expiry times. Use for \"What active Stytch sessio","description":"List the active sessions of one Stytch user with start, last access and expiry times. Use for \"What active Stytch sessions does user user-test-16d9ba61-97a1-4ba4-9720-b03761dc50c6 have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"user_id":{"description":"Stytch user id (or external_id) whose active sessions to list.","maxLength":120,"title":"User Id","type":"string"}},"required":["user_id"],"title":"get_user_sessionsArguments","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_rbac_policy":{"post":{"operationId":"get_rbac_policy","summary":"Get the active RBAC policy of the Stytch project: roles with permissions, resources with actions, and scopes. Use for \"W","description":"Get the active RBAC policy of the Stytch project: roles with permissions, resources with actions, and scopes. Use for \"What roles and permissions are defined in my Stytch RBAC policy\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_rbac_policyArguments","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/search_connected_apps":{"post":{"operationId":"search_connected_apps","summary":"List the Connected Apps (OAuth clients that use the project as an identity provider) with type, status and redirect URLs","description":"List the Connected Apps (OAuth clients that use the project as an identity provider) with type, status and redirect URLs. Use for \"Which Connected Apps are registered in my Stytch project\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return per page (the API default applies when omitted).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: leave out for the first page, or pass results_metadata.next_cursor from the previous answer.","title":"Cursor"}},"title":"search_connected_appsArguments","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_connected_app":{"post":{"operationId":"get_connected_app","summary":"Get one Stytch Connected App by client id: name, status, client type, redirect URLs and token expiry. Use for \"Show deta","description":"Get one Stytch Connected App by client id: name, status, client type, redirect URLs and token expiry. Use for \"Show details of the Stytch connected app connected-app-test-1234\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"client_id":{"description":"Client id of the Connected App.","maxLength":120,"title":"Client Id","type":"string"}},"required":["client_id"],"title":"get_connected_appArguments","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/search_m2m_clients":{"post":{"operationId":"search_m2m_clients","summary":"List the machine-to-machine clients of the Stytch project with scopes, status and the last four characters of the secret","description":"List the machine-to-machine clients of the Stytch project with scopes, status and the last four characters of the secret. Use for \"Which M2M clients exist in my Stytch project\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return per page (the API default applies when omitted).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: leave out for the first page, or pass results_metadata.next_cursor from the previous answer.","title":"Cursor"}},"title":"search_m2m_clientsArguments","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_m2m_client":{"post":{"operationId":"get_m2m_client","summary":"Get one Stytch machine-to-machine client by client id: name, status, scopes and the last four characters of its secret. ","description":"Get one Stytch machine-to-machine client by client id: name, status, scopes and the last four characters of its secret. Use for \"Show details of the Stytch M2M client m2m-client-test-1234\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"client_id":{"description":"Client id of the M2M client.","maxLength":120,"title":"Client Id","type":"string"}},"required":["client_id"],"title":"get_m2m_clientArguments","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}}}}