Properties
| Name | Type | Description |
|---|---|---|
| user_id | string | User identifier (UUID) |
| object | User email address | |
| role | string | User role: user, admin, or owner |
| domain | string | Email domain extracted from user email |
| org_id | object | Caller's organisation identifier (UUID in the modern path, email domain for pre-backfill legacy API keys). Sourced from request.state.domain. Clients cache this locally so they can scope offline opera |
| org_type | string | Always 'self_serve': org types were removed (kept for older desktop clients) |
| account_status | string | Account lifecycle state: 'pending' or 'active'. Never 'disabled' - a revoked key is rejected before this endpoint runs (401). |
| edition | string | Deployment edition: 'full' or a restricted one such as 'beeper'. |
| org_role | object | The caller's org role in this org: owner, admin or member. None when the caller has no membership here (a Super-Owner viewing another org). |
| is_super_owner | boolean | True when the caller holds the super_owner instance role. |
| org_suspended | boolean | True while a Super-Owner has suspended this org (no tool calls). |
| multi_membership | boolean | True when accounts may belong to several orgs on this deployment (EDISON_MULTI_ORG plus the edition's multi_membership capability). |
| capabilities | object | What this deployment exposes. The dashboard gates nav and routes on these rather than on the edition name, mirroring the backend rule, so a new edition needs no frontend change. Role is not a substitu |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/sealgate-ai/json-schema/sealgate-ai-user-profile-response-schema.json",
"title": "UserProfileResponse",
"x-generated": "2026-10-30",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/sealgate-ai-dashboard-openapi.json#/components/schemas/UserProfileResponse",
"properties": {
"user_id": {
"type": "string",
"title": "User Id",
"description": "User identifier (UUID)"
},
"email": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Email",
"description": "User email address"
},
"role": {
"type": "string",
"title": "Role",
"description": "User role: user, admin, or owner"
},
"domain": {
"type": "string",
"title": "Domain",
"description": "Email domain extracted from user email"
},
"org_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Org Id",
"description": "Caller's organisation identifier (UUID in the modern path, email domain for pre-backfill legacy API keys). Sourced from request.state.domain. Clients cache this locally so they can scope offline operations (e.g. seen-store quarantine decisions) without a live backend roundtrip."
},
"org_type": {
"type": "string",
"title": "Org Type",
"description": "Always 'self_serve': org types were removed (kept for older desktop clients)",
"default": "self_serve"
},
"account_status": {
"type": "string",
"title": "Account Status",
"description": "Account lifecycle state: 'pending' or 'active'. Never 'disabled' - a revoked key is rejected before this endpoint runs (401).",
"default": "active"
},
"edition": {
"type": "string",
"title": "Edition",
"description": "Deployment edition: 'full' or a restricted one such as 'beeper'.",
"default": "full"
},
"org_role": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Org Role",
"description": "The caller's org role in this org: owner, admin or member. None when the caller has no membership here (a Super-Owner viewing another org)."
},
"is_super_owner": {
"type": "boolean",
"title": "Is Super Owner",
"description": "True when the caller holds the super_owner instance role.",
"default": false
},
"org_suspended": {
"type": "boolean",
"title": "Org Suspended",
"description": "True while a Super-Owner has suspended this org (no tool calls).",
"default": false
},
"multi_membership": {
"type": "boolean",
"title": "Multi Membership",
"description": "True when accounts may belong to several orgs on this deployment (EDISON_MULTI_ORG plus the edition's multi_membership capability).",
"default": false
},
"capabilities": {
"$ref": "#/$defs/EditionCapabilitiesResponse",
"description": "What this deployment exposes. The dashboard gates nav and routes on these rather than on the edition name, mirroring the backend rule, so a new edition needs no frontend change. Role is not a substitute: under EDISON_MULTI_ORG every user is an admin of their own org, so the existing admin guards filter nothing."
}
},
"type": "object",
"required": [
"user_id",
"role",
"domain"
],
"$defs": {
"EditionCapabilitiesResponse": {
"properties": {
"server_catalog": {
"type": "boolean",
"title": "Server Catalog",
"description": "Marketplace, add-server, MCP requests, server admin pages.",
"default": true
},
"org_admin": {
"type": "boolean",
"title": "Org Admin",
"description": "Users, roles, access control, policies, guardrails, domains.",
"default": true
},
"observability": {
"type": "boolean",
"title": "Observability",
"description": "Overview, audit logs, log stream, SIEM.",
"default": true
},
"tool_permissions": {
"type": "boolean",
"title": "Tool Permissions",
"description": "Access-control matrix and per-tool ACLs for the caller's own servers.",
"default": true
},
"onboarding": {
"type": "boolean",
"title": "Onboarding",
"description": "In-dashboard connect flow: onboarding tour and Connect Agent.",
"default": true
},
"user_invites": {
"type": "boolean",
"title": "User Invites",
"description": "Inviting other people into the caller's organisation.",
"default": true
},
"stdio_tunnel_optional": {
"type": "boolean",
"title": "Stdio Tunnel Optional",
"description": "Whether the local stdio tunnel is an admin-switchable rollout gate.",
"default": true
},
"org_management": {
"type": "boolean",
"title": "Org Management",
"description": "Creating, renaming, transferring and deleting organisations.",
"default": true
},
"credit_pool": {
"type": "boolean",
"title": "Credit Pool",
"description": "The account's personal credit pool that funds the orgs it owns.",
"default": true
},
"org_api": {
"type": "boolean",
"title": "Org Api",
"description": "The public Org API is served (the edition has it, in multi-org mode), so the developer portal works.",
"default": true
}
},
"type": "object",
"title": "EditionCapabilitiesResponse",
"description": "The subset of `src.edition.EditionCapabilities` the dashboard needs.\n\nOnly the flags that gate a visible surface are exposed; mount and wire-level\ncapabilities stay server-side because no client decision depends on them."
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/sealgate-ai-user-profile-response"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.