{"openapi":"3.1.0","info":{"title":"Ory (BYOK) API","version":"0.1.0","description":"Ory (BYOK) lets an AI assistant read your own Ory data through the Ory API with a key you supply (Ory Network workspace API key). Read-only: 10 tools (list_workspaces, get_workspace, list_projects, list_workspace_projects, get_project, list_organizations, get_organization, list_event_streams, list_project_api_keys, list_workspace_api_keys). The BYOK key travels with each request, is used for that...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-ory.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-ory/docs"},"termsOfService":"https://connectorbay.com/byok-ory/terms"},"servers":[{"url":"https://byok-ory.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-ory/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_workspaces":{"post":{"operationId":"list_workspaces","summary":"List the Ory Network workspaces the key can see with name, plan and access policy. Use for \"Which Ory workspaces do we h","description":"List the Ory Network workspaces the key can see with name, plan and access policy. Use for \"Which Ory workspaces do we have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_size":{"anyOf":[{"maximum":250,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many workspaces to return (1 to 250).","title":"Page Size"},"page_token":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Next page token from a previous call.","title":"Page Token"}},"title":"list_workspacesArguments","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_workspace":{"post":{"operationId":"get_workspace","summary":"Get one workspace by ID or slug: name, plan, access policy and timestamps. Use for \"What plan is our Ory workspace on\".","description":"Get one workspace by ID or slug: name, plan, access policy and timestamps. Use for \"What plan is our Ory workspace on\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Workspace ID or slug from list_workspaces.","maxLength":200,"title":"Workspace","type":"string"}},"required":["workspace"],"title":"get_workspaceArguments","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_projects":{"post":{"operationId":"list_projects","summary":"List all Ory Network projects the key can see with name, slug, state, environment, region and plan. Use for \"Which Ory N","description":"List all Ory Network projects the key can see with name, slug, state, environment, region and plan. Use for \"Which Ory Network projects do we have and are they running\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_projectsArguments","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_workspace_projects":{"post":{"operationId":"list_workspace_projects","summary":"List the projects in one workspace with name, slug, state, environment, region and plan. Use for \"Which projects are in ","description":"List the projects in one workspace with name, slug, state, environment, region and plan. Use for \"Which projects are in our Ory workspace\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Workspace ID or slug from list_workspaces.","maxLength":200,"title":"Workspace","type":"string"}},"required":["workspace"],"title":"list_workspace_projectsArguments","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_project":{"post":{"operationId":"get_project","summary":"Get one project's basic details: name, slug, state, environment, region and revision. The full service configuration is ","description":"Get one project's basic details: name, slug, state, environment, region and revision. The full service configuration is not returned by this tool. Use for \"Is the Ory project with a given ID running and in which region\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Ory Network project ID (a UUID) from list_projects.","maxLength":200,"title":"Project Id","type":"string"}},"required":["project_id"],"title":"get_projectArguments","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_organizations":{"post":{"operationId":"list_organizations","summary":"List a project's Enterprise SSO organizations with label, domains, default region and session lifespan. Use for \"Which S","description":"List a project's Enterprise SSO organizations with label, domains, default region and session lifespan. Use for \"Which SSO organizations are set up in our Ory project\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Ory Network project ID (a UUID) from list_projects.","maxLength":200,"title":"Project Id","type":"string"},"page_size":{"anyOf":[{"maximum":250,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many organizations to return (1 to 250).","title":"Page Size"},"page_token":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Next page token from a previous call.","title":"Page Token"},"domain":{"anyOf":[{"maxLength":253,"type":"string"},{"type":"null"}],"default":null,"description":"Only organizations with this domain.","title":"Domain"}},"required":["project_id"],"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 Enterprise SSO organization of a project: label, domains and session lifespan. Use for \"What domains does an Ory","description":"Get one Enterprise SSO organization of a project: label, domains and session lifespan. Use for \"What domains does an Ory SSO organization cover\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Ory Network project ID (a UUID) from list_projects.","maxLength":200,"title":"Project Id","type":"string"},"organization_id":{"description":"Organization ID from list_organizations.","maxLength":200,"title":"Organization Id","type":"string"}},"required":["project_id","organization_id"],"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/list_event_streams":{"post":{"operationId":"list_event_streams","summary":"List a project's event streams with type, status, endpoint and timestamps. Use for \"Where does our Ory project stream ev","description":"List a project's event streams with type, status, endpoint and timestamps. Use for \"Where does our Ory project stream events to\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Ory Network project ID (a UUID) from list_projects.","maxLength":200,"title":"Project Id","type":"string"}},"required":["project_id"],"title":"list_event_streamsArguments","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_project_api_keys":{"post":{"operationId":"list_project_api_keys","summary":"List a project's API keys by name, last characters, owner and expiry. The key values are not returned by this tool. Use ","description":"List a project's API keys by name, last characters, owner and expiry. The key values are not returned by this tool. Use for \"Which API keys exist for our Ory project and when do they expire\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project":{"description":"Project ID or slug from list_projects.","maxLength":200,"title":"Project","type":"string"}},"required":["project"],"title":"list_project_api_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/list_workspace_api_keys":{"post":{"operationId":"list_workspace_api_keys","summary":"List a workspace's API keys by name, last characters, owner and expiry. The key values are not returned by this tool. Us","description":"List a workspace's API keys by name, last characters, owner and expiry. The key values are not returned by this tool. Use for \"Which workspace API keys exist in Ory and when do they expire\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Workspace ID or slug from list_workspaces.","maxLength":200,"title":"Workspace","type":"string"}},"required":["workspace"],"title":"list_workspace_api_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}}}}