Tale · Schema

Me

CompanyAIAgentsAutomationKnowledge ManagementMCPOpen SourceSelf-Hosted

Properties

Name Type Description
key objectnull The API key this request authenticated with — keys are minted, rotated and revoked in the app (Settings > API > REST), never through this surface, so this is where an unattended caller sees its own ex
user object Who the key acts as: its holder, or — for a team’s, a project’s or the organization’s key — the key’s own identity, whose `email` is empty
organization object The organization this request resolved to
organizations array Every organization the key holder belongs to (disabled memberships excluded); for a key bound to one organization, that organization alone
capabilities object What this key may do — the gates a deployment knob, the role or an administrator’s grant decides, answered here so a client learns them before its first write rather than from a 403
View JSON Schema on GitHub

JSON Schema

tale-dev-me-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/tale-dev/main/json-schema/tale-dev-me-schema.json",
  "title": "Me",
  "x-generated": "2026-10-09",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/tale-dev-openapi.yml#/components/schemas/Me",
  "type": "object",
  "required": [
    "user",
    "organization",
    "organizations",
    "capabilities",
    "key"
  ],
  "additionalProperties": false,
  "properties": {
    "key": {
      "type": [
        "object",
        "null"
      ],
      "description": "The API key this request authenticated with — keys are minted, rotated and revoked in the app (Settings > API > REST), never through this surface, so this is where an unattended caller sees its own expiry coming. `null` only when the key was revoked while the request was in flight.",
      "required": [
        "id",
        "name",
        "expiresAt",
        "owner"
      ],
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": [
            "string",
            "null"
          ],
          "description": "The name it was minted under"
        },
        "expiresAt": {
          "type": [
            "integer",
            "null"
          ],
          "minimum": 0,
          "description": "When the key stops authenticating; `null` for a key minted to never expire"
        },
        "owner": {
          "type": "object",
          "description": "Whose key it is. `user`: a person’s own key, working in every organization they belong to. `member`: a key an Owner or Admin made for that member, working in this organization only. `team`, `project`, `organization`: a key that is not a person — it acts as its own identity with the role it was made with (`organization.role`), in this organization only; a team’s key sees what that team sees, and a project’s key reaches its project alone (any other route answers 403 `API_KEY_SCOPE_FORBIDDEN`). A key bound to one organization needs no `X-Organization-Slug`; one naming another organization answers 403 `ORG_FORBIDDEN`",
          "required": [
            "kind",
            "team",
            "project"
          ],
          "additionalProperties": false,
          "properties": {
            "kind": {
              "type": "string",
              "enum": [
                "user",
                "member",
                "team",
                "project",
                "organization"
              ]
            },
            "team": {
              "type": [
                "object",
                "null"
              ],
              "required": [
                "id",
                "name"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "description": "The team a team’s key belongs to"
            },
            "project": {
              "type": [
                "object",
                "null"
              ],
              "required": [
                "id",
                "name"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "description": "The project a project’s key belongs to"
            }
          }
        }
      }
    },
    "user": {
      "type": "object",
      "description": "Who the key acts as: its holder, or — for a team’s, a project’s or the organization’s key — the key’s own identity, whose `email` is empty",
      "required": [
        "id",
        "email"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "email": {
          "type": "string"
        }
      }
    },
    "organization": {
      "type": "object",
      "description": "The organization this request resolved to",
      "required": [
        "id",
        "slug",
        "role"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "slug": {
          "type": "string",
          "description": "The `X-Organization-Slug` value for it"
        },
        "role": {
          "type": "string"
        }
      }
    },
    "organizations": {
      "type": "array",
      "description": "Every organization the key holder belongs to (disabled memberships excluded); for a key bound to one organization, that organization alone",
      "items": {
        "type": "object",
        "required": [
          "id",
          "slug",
          "name",
          "role"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "slug": {
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "type": "string"
          },
          "role": {
            "type": "string"
          }
        }
      }
    },
    "capabilities": {
      "type": "object",
      "description": "What this key may do — the gates a deployment knob, the role or an administrator’s grant decides, answered here so a client learns them before its first write rather than from a 403",
      "required": [
        "deploymentEditor",
        "developer",
        "notificationExport",
        "actAs",
        "skillPublish",
        "modelApi"
      ],
      "additionalProperties": false,
      "properties": {
        "deploymentEditor": {
          "type": "boolean",
          "description": "True when the key holder administers an organization and their e-mail is on the deployment editor allowlist (`TALE_DEPLOYMENT_CONFIG_ADMINS`) — the gate behind the browser-session pool’s import and delete, which answer 403 otherwise"
        },
        "developer": {
          "type": "boolean",
          "description": "True when the key holder’s role (owner, admin, developer) carries the developer capability — the gate on a live `POST …/runs`, `POST …/cancel`, `DELETE /runs/{runId}`, `PUT`/`DELETE …/triggers`, `DELETE /automations/{name}`, the project install and uninstall, and the MCP `save_automation`/`deploy_automation`/`set_trigger` tools; false there answers 403 `ROLE_FORBIDDEN`"
        },
        "actAs": {
          "type": "boolean",
          "description": "True when the key holder may name an `actor` — the verified member a relayed gesture is recorded for — on `POST …/runs/{runId}/asks/{askId}` and `POST …/tasks/{taskId}/review`: an organization owner or administrator by role, or any other member through a live `tale:rest.act-as` capability an administrator granted in the competence register (organization-scoped, optionally expiring, revocable, revoked with the membership); an `actor` sent without it answers 403 `ROLE_FORBIDDEN`"
        },
        "notificationExport": {
          "type": "boolean",
          "description": "True when the key holder may export members’ notifications through `GET /api/v1/notifications/sync` — an organization owner or administrator by role, or any other member through a live `tale:notifications.export` capability an administrator granted in the competence register (organization-scoped, optionally expiring, revocable, revoked with the membership); false there answers 403 `ROLE_FORBIDDEN`"
        },
        "skillPublish": {
          "type": "boolean",
          "description": "True when the key holder may share a skill with the whole organization through `PUT /api/v1/skills/{slug}` — create a `visibility: org` skill, widen one to `org`, or change an `org` skill in place. Every member may while the organization has no skill sharing policy; under one it is Editors and above or owners and administrators only, plus any member holding a live `tale:skills.publish` capability an administrator granted in the competence register. False there answers 403 `SKILL_PUBLISH_FORBIDDEN`; sharing with the key holder’s own teams is unaffected"
        },
        "modelApi": {
          "type": "boolean",
          "description": "True when the key holder may call the compatible model endpoints (`/api/v1/openai`, `/api/v1/anthropic`): the organization turned them on in its model access policy, and the key holder is an owner, administrator or developer by role, or any other member holding a live `tale:models.api` capability an administrator granted in the competence register. False there answers 403 `MODEL_API_DISABLED` or `MODEL_API_FORBIDDEN`"
        }
      }
    }
  }
}

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.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/tale-dev-me"
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.