Orq.ai API keys API

API keys authenticate programmatic access to the workspace. They expose opaque tokens, per-domain access grants, and budget and rate-limit constraints.

Operations 6

GET /v2/api-keys List API keys #
POST /v2/api-keys Create a new API key #
GET /v2/api-keys/capabilities List capability catalog #
DELETE /v2/api-keys/{api_key_id} Delete an API key #
GET /v2/api-keys/{api_key_id} Retrieve an API key #
PATCH /v2/api-keys/{api_key_id} Update an API key #

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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 API
curl "https://apis.io/api/v1/apis/orq:orq-api-keys-api"
All apis
curl "https://apis.io/api/v1/apis?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.

OpenAPI Specification

orq-api-keys-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: orq.ai API keys API
  version: '2.0'
  description: orq.ai API documentation
servers:
- url: https://my.orq.ai
security:
- ApiKey: []
tags:
- name: API Keys
  description: API keys authenticate programmatic access to the workspace. They expose opaque tokens, per-domain access grants, and budget and rate-limit constraints.
paths:
  /v2/api-keys:
    get:
      description: Returns API keys visible to the current workspace as a JSON array sorted by name. Raw tokens are never included; the `token` field contains a masked display value.
      operationId: ApiKeyList
      parameters:
      - description: Only return keys bound to this project. When omitted, every key visible to the caller is returned.
        explode: false
        in: query
        name: project_id
        schema:
          description: Only return keys bound to this project. When omitted, every key visible to the caller is returned.
          type: string
      - description: Only return keys of this source.
        explode: false
        in: query
        name: source
        schema:
          description: Only return keys of this source.
          enum:
          - workspace
          - router
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/ApiKeyResponse'
                type:
                - array
                - 'null'
          description: API keys visible to the caller
        '401':
          description: Missing or invalid credentials
        '403':
          description: The caller may not list API keys
      summary: List API keys
      tags:
      - API Keys
      x-speakeasy-group: apiKeys
      x-speakeasy-name-override: list
      x-code-samples:
      - lang: curl
        label: Core - List project keys
        source: "curl --get 'https://my.orq.ai/v2/api-keys' \\\n  --header \"Authorization: Bearer $ORQ_API_KEY\" \\\n  --data-urlencode 'project_id=proj_01HZXW2K7Y8Q9M0N1P2R3S4T5V'\n"
      - lang: python
        label: Python - List project keys
        source: "import os\nfrom orq_ai_sdk import Orq\n\nclient = Orq(api_key=os.environ[\"ORQ_API_KEY\"])\n\napi_keys = client.api_keys.list(\n    project_id=\"proj_01HZXW2K7Y8Q9M0N1P2R3S4T5V\",\n)\n\nfor api_key in api_keys:\n    print(api_key.name, api_key.token)\n"
      - lang: typescript
        label: Node.js - List project keys
        source: "import { Orq } from '@orq-ai/node';\n\nconst client = new Orq({\n  apiKey: process.env.ORQ_API_KEY,\n});\n\nconst apiKeys = await client.apiKeys.list({\n  projectId: 'proj_01HZXW2K7Y8Q9M0N1P2R3S4T5V',\n});\n\nfor (const apiKey of apiKeys) {\n  console.log(apiKey.name, apiKey.token);\n}\n"
    post:
      description: Mints a new API key in the workspace, bound to the single project in `projects` or to every project when omitted. The raw token is returned once in the `token` field and is never retrievable afterwards. Unknown body fields are rejected.
      operationId: ApiKeyCreate
      requestBody:
        content:
          application/json:
            schema:
              additionalProperties: false
              properties:
                access:
                  additionalProperties:
                    type: string
                  description: Per-domain access level (none, read or write) for restricted keys; domain ids come from the capability catalog.
                  type: object
                constraints:
                  $ref: '#/components/schemas/Constraints'
                  description: Expiry and other limits applied to the key.
                expiration:
                  description: Legacy expiry as an RFC 3339 timestamp; prefer constraints.expires_at.
                  format: date-time
                  type: string
                name:
                  description: Display name of the key.
                  maxLength: 100
                  type: string
                owner:
                  $ref: '#/components/schemas/Owner'
                  description: 'Lifecycle binding: a user-owned key is revoked with the user, a service-account key outlives any user.'
                permission_mode:
                  description: Permission preset; restricted keys hold only the domains granted in access.
                  enum:
                  - all
                  - restricted
                  - read_only
                  - PERMISSION_MODE_ALL
                  - PERMISSION_MODE_RESTRICTED
                  - PERMISSION_MODE_READ_ONLY
                  type: string
                project_scope:
                  $ref: '#/components/schemas/ProjectScope'
                  description: 'Projects the key may reach: every project of the workspace or a single one.'
                projects:
                  description: Legacy single-project binding; prefer project_scope.
                  items:
                    type: string
                  maxItems: 1
                  type:
                  - array
                  - 'null'
                source:
                  description: Origin of the key; router keys are minted for the AI router.
                  enum:
                  - workspace
                  - router
                  type: string
              required:
              - name
              type: object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties: false
                properties:
                  access:
                    additionalProperties:
                      type: string
                    type: object
                  active:
                    type: boolean
                  constraints:
                    $ref: '#/components/schemas/Constraints'
                  created:
                    format: date-time
                    type: string
                  created_by_id:
                    type: string
                  expiration:
                    type: string
                  id:
                    description: Unique identifier of the key.
                    type: string
                  is_legacy:
                    type: boolean
                  last_used_at:
                    format: date-time
                    type: string
                  legacy_key_id:
                    type: string
                  legacy_token_family:
                    type: string
                  name:
                    description: Display name of the key.
                    type: string
                  owner:
                    $ref: '#/components/schemas/Owner'
                  permission_mode:
                    enum:
                    - all
                    - restricted
                    - read_only
                    type: string
                  project_scope:
                    $ref: '#/components/schemas/ProjectScope'
                  projects:
                    items:
                      type: string
                    type:
                    - array
                    - 'null'
                  source:
                    type: string
                  status:
                    enum:
                    - active
                    - disabled
                    - revoked
                    type: string
                  token:
                    description: The raw secret on create only; a masked display value everywhere else.
                    type: string
                  token_prefix:
                    description: Display prefix of the secret; not usable as a credential.
                    type: string
                  updated:
                    format: date-time
                    type: string
                  updated_by_id:
                    type: string
                  workspace_id:
                    description: Workspace the key belongs to.
                    type: string
                required:
                - id
                - name
                - workspace_id
                - token
                type: object
          description: The created API key with its raw token
        '400':
          description: Invalid or unknown body field
        '401':
          description: Missing or invalid credentials
        '403':
          description: The caller may not create API keys or the requested scope exceeds the caller's reach
      summary: Create a new API key
      tags:
      - API Keys
      x-speakeasy-group: apiKeys
      x-speakeasy-name-override: create
      x-code-samples:
      - lang: curl
        label: Core - Create service account key
        source: "curl --request POST \\\n  --url 'https://my.orq.ai/v2/api-keys' \\\n  --header \"Authorization: Bearer $ORQ_API_KEY\" \\\n  --header 'Content-Type: application/json' \\\n  --data '{\n    \"name\": \"Production service key\",\n    \"owner\": {\n      \"type\": \"service_account\"\n    },\n    \"project_scope\": {\n      \"mode\": \"all\"\n    },\n    \"permission_mode\": \"all\"\n  }'\n"
      - lang: python
        label: Python - Create service account key
        source: "import os\nfrom orq_ai_sdk import Orq\n\nclient = Orq(api_key=os.environ[\"ORQ_API_KEY\"])\n\nresult = client.api_keys.create(\n    name=\"Production service key\",\n    owner={\"type\": \"service_account\"},\n    project_scope={\"mode\": \"all\"},\n    permission_mode=\"all\",\n)\n\n# Store the token immediately. It is only returned once.\nprint(result.token)\n"
      - lang: typescript
        label: Node.js - Create service account key
        source: "import { Orq } from '@orq-ai/node';\n\nconst client = new Orq({\n  apiKey: process.env.ORQ_API_KEY,\n});\n\nconst result = await client.apiKeys.create({\n  name: 'Production service key',\n  owner: {\n    type: 'service_account',\n  },\n  projectScope: {\n    mode: 'all',\n  },\n  permissionMode: 'all',\n});\n\n// Store the token immediately. It is only returned once.\nconsole.log(result.token);\n"
      - lang: curl
        label: Core - Create restricted project key
        source: "curl --request POST \\\n  --url 'https://my.orq.ai/v2/api-keys' \\\n  --header \"Authorization: Bearer $ORQ_API_KEY\" \\\n  --header 'Content-Type: application/json' \\\n  --data '{\n    \"name\": \"Support automation key\",\n    \"project_scope\": {\n      \"mode\": \"single\",\n      \"project_id\": \"proj_01HZXW2K7Y8Q9M0N1P2R3S4T5V\"\n    },\n    \"permission_mode\": \"restricted\",\n    \"access\": {\n      \"agent\": \"write\",\n      \"deployment\": \"read\"\n    }\n  }'\n"
      - lang: python
        label: Python - Create restricted project key
        source: "import os\nfrom orq_ai_sdk import Orq\n\nclient = Orq(api_key=os.environ[\"ORQ_API_KEY\"])\n\nresult = client.api_keys.create(\n    name=\"Support automation key\",\n    project_scope={\n        \"mode\": \"single\",\n        \"project_id\": \"proj_01HZXW2K7Y8Q9M0N1P2R3S4T5V\",\n    },\n    permission_mode=\"restricted\",\n    access={\n        \"agent\": \"write\",\n        \"deployment\": \"read\",\n    },\n)\n\nprint(result.id)\nprint(result.token)\n"
      - lang: typescript
        label: Node.js - Create restricted project key
        source: "import { Orq } from '@orq-ai/node';\n\nconst client = new Orq({\n  apiKey: process.env.ORQ_API_KEY,\n});\n\nconst result = await client.apiKeys.create({\n  name: 'Support automation key',\n  projectScope: {\n    mode: 'single',\n    projectId: 'proj_01HZXW2K7Y8Q9M0N1P2R3S4T5V',\n  },\n  permissionMode: 'restricted',\n  access: {\n    agent: 'write',\n    deployment: 'read',\n  },\n});\n\nconsole.log(result.id);\nconsole.log(result.token);\n"
  /v2/api-keys/capabilities:
    get:
      description: 'Returns the capability catalog: the set of permission domains that can be granted to an API key. Each entry includes the domain id, display name, group, allowed project scopes and whether it can be granted read or write access. No credentials are required.'
      operationId: ApiKeyListCapabilities
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties: false
                properties:
                  domains:
                    description: 'Full capability catalog. Order is stable: workspace-admin first, then platform, then gateway.'
                    items:
                      $ref: '#/components/schemas/Domain'
                    type:
                    - array
                    - 'null'
                required:
                - domains
                type: object
          description: The capability catalog
        '401':
          description: Authentication required. See https://docs.orq.ai/reference/errors for the error codes.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      summary: List capability catalog
      tags:
      - API Keys
      x-speakeasy-group: apiKeys
      x-speakeasy-name-override: listCapabilities
      x-code-samples:
      - lang: curl
        label: Core - List capability catalog
        source: "curl --request GET \\\n  --url 'https://my.orq.ai/v2/api-keys/capabilities'\n"
      - lang: python
        label: Python - List capability catalog
        source: "import os\nfrom orq_ai_sdk import Orq\n\nclient = Orq(api_key=os.environ[\"ORQ_API_KEY\"])\n\ncatalog = client.api_keys.list_capabilities()\n\nfor domain in catalog.domains:\n    print(domain.id, domain.display_name)\n"
      - lang: typescript
        label: Node.js - List capability catalog
        source: "import { Orq } from '@orq-ai/node';\n\nconst client = new Orq({\n  apiKey: process.env.ORQ_API_KEY,\n});\n\nconst catalog = await client.apiKeys.listCapabilities();\n\nfor (const domain of catalog.domains) {\n  console.log(domain.id, domain.displayName);\n}\n"
  /v2/api-keys/{api_key_id}:
    delete:
      description: Permanently deletes an API key. The key is revoked immediately; in-flight requests using it will fail. The response body is empty on success.
      operationId: ApiKeyDelete
      parameters:
      - description: Unique identifier of the API key.
        in: path
        name: api_key_id
        required: true
        schema:
          description: Unique identifier of the API key.
          type: string
      responses:
        '204':
          description: API key deleted
        '401':
          description: Missing or invalid credentials
        '403':
          description: The caller may not delete API keys
        '404':
          description: No API key with this id is visible to the caller
      summary: Delete an API key
      tags:
      - API Keys
      x-speakeasy-group: apiKeys
      x-speakeasy-name-override: delete
      x-code-samples:
      - lang: curl
        label: Core - Delete a key
        source: "curl --request DELETE \\\n  --url 'https://my.orq.ai/v2/api-keys/01HZXW2K7Y8Q9M0N1P2R3S4T5V' \\\n  --header \"Authorization: Bearer $ORQ_API_KEY\"\n"
      - lang: python
        label: Python - Delete a key
        source: "import os\nfrom orq_ai_sdk import Orq\n\nclient = Orq(api_key=os.environ[\"ORQ_API_KEY\"])\n\nclient.api_keys.delete(\n    api_key_id=\"01HZXW2K7Y8Q9M0N1P2R3S4T5V\",\n)\n"
      - lang: typescript
        label: Node.js - Delete a key
        source: "import { Orq } from '@orq-ai/node';\n\nconst client = new Orq({\n  apiKey: process.env.ORQ_API_KEY,\n});\n\nawait client.apiKeys.delete({\n  apiKeyId: '01HZXW2K7Y8Q9M0N1P2R3S4T5V',\n});\n"
    get:
      description: Retrieves the metadata for an existing API key by its unique identifier. The raw secret is never returned; `token` carries a masked display value.
      operationId: ApiKeyGet
      parameters:
      - description: Unique identifier of the API key.
        in: path
        name: api_key_id
        required: true
        schema:
          description: Unique identifier of the API key.
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties: false
                properties:
                  access:
                    additionalProperties:
                      type: string
                    type: object
                  active:
                    type: boolean
                  constraints:
                    $ref: '#/components/schemas/Constraints'
                  created:
                    format: date-time
                    type: string
                  created_by_id:
                    type: string
                  expiration:
                    type: string
                  id:
                    description: Unique identifier of the key.
                    type: string
                  is_legacy:
                    type: boolean
                  last_used_at:
                    format: date-time
                    type: string
                  legacy_key_id:
                    type: string
                  legacy_token_family:
                    type: string
                  name:
                    description: Display name of the key.
                    type: string
                  owner:
                    $ref: '#/components/schemas/Owner'
                  permission_mode:
                    enum:
                    - all
                    - restricted
                    - read_only
                    type: string
                  project_scope:
                    $ref: '#/components/schemas/ProjectScope'
                  projects:
                    items:
                      type: string
                    type:
                    - array
                    - 'null'
                  source:
                    type: string
                  status:
                    enum:
                    - active
                    - disabled
                    - revoked
                    type: string
                  token:
                    description: The raw secret on create only; a masked display value everywhere else.
                    type: string
                  token_prefix:
                    description: Display prefix of the secret; not usable as a credential.
                    type: string
                  updated:
                    format: date-time
                    type: string
                  updated_by_id:
                    type: string
                  workspace_id:
                    description: Workspace the key belongs to.
                    type: string
                required:
                - id
                - name
                - workspace_id
                - token
                type: object
          description: The API key
        '401':
          description: Missing or invalid credentials
        '403':
          description: The caller may not view API keys
        '404':
          description: No API key with this id is visible to the caller
      summary: Retrieve an API key
      tags:
      - API Keys
      x-speakeasy-group: apiKeys
      x-speakeasy-name-override: get
      x-code-samples:
      - lang: curl
        label: Core - Retrieve key metadata
        source: "curl --request GET \\\n  --url 'https://my.orq.ai/v2/api-keys/01HZXW2K7Y8Q9M0N1P2R3S4T5V' \\\n  --header \"Authorization: Bearer $ORQ_API_KEY\"\n"
      - lang: python
        label: Python - Retrieve key metadata
        source: "import os\nfrom orq_ai_sdk import Orq\n\nclient = Orq(api_key=os.environ[\"ORQ_API_KEY\"])\n\nresult = client.api_keys.get(\n    api_key_id=\"01HZXW2K7Y8Q9M0N1P2R3S4T5V\",\n)\n\nprint(result.name)\n"
      - lang: typescript
        label: Node.js - Retrieve key metadata
        source: "import { Orq } from '@orq-ai/node';\n\nconst client = new Orq({\n  apiKey: process.env.ORQ_API_KEY,\n});\n\nconst result = await client.apiKeys.get({\n  apiKeyId: '01HZXW2K7Y8Q9M0N1P2R3S4T5V',\n});\n\nconsole.log(result.name);\n"
    patch:
      description: 'Updates mutable fields of an API key: display name, status (active / disabled / revoked), permission mode and access map, project scope and constraints. Omitted fields keep their current values. Unknown body fields are rejected.'
      operationId: ApiKeyUpdate
      parameters:
      - description: Unique identifier of the API key.
        in: path
        name: api_key_id
        required: true
        schema:
          description: Unique identifier of the API key.
          type: string
      requestBody:
        content:
          application/json:
            schema:
              additionalProperties: false
              properties:
                access:
                  additionalProperties:
                    type: string
                  description: Per-domain access level (none, read or write) for restricted keys.
                  type: object
                active:
                  description: 'Legacy toggle mirrored onto status: false disables, true re-enables.'
                  type: boolean
                constraints:
                  $ref: '#/components/schemas/Constraints'
                  description: Expiry and other limits; null clears them.
                name:
                  description: New display name.
                  maxLength: 100
                  type: string
                permission_mode:
                  description: Permission preset; a restricted key must keep at least one granted domain.
                  enum:
                  - all
                  - restricted
                  - read_only
                  - PERMISSION_MODE_ALL
                  - PERMISSION_MODE_RESTRICTED
                  - PERMISSION_MODE_READ_ONLY
                  type: string
                project_scope:
                  $ref: '#/components/schemas/ProjectScope'
                  description: Projects the key may reach.
                status:
                  description: Lifecycle status; revoked is terminal.
                  enum:
                  - active
                  - disabled
                  - revoked
                  type: string
              type: object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties: false
                properties:
                  access:
                    additionalProperties:
                      type: string
                    type: object
                  active:
                    type: boolean
                  constraints:
                    $ref: '#/components/schemas/Constraints'
                  created:
                    format: date-time
                    type: string
                  created_by_id:
                    type: string
                  expiration:
                    type: string
                  id:
                    description: Unique identifier of the key.
                    type: string
                  is_legacy:
                    type: boolean
                  last_used_at:
                    format: date-time
                    type: string
                  legacy_key_id:
                    type: string
                  legacy_token_family:
                    type: string
                  name:
                    description: Display name of the key.
                    type: string
                  owner:
                    $ref: '#/components/schemas/Owner'
                  permission_mode:
                    enum:
                    - all
                    - restricted
                    - read_only
                    type: string
                  project_scope:
                    $ref: '#/components/schemas/ProjectScope'
                  projects:
                    items:
                      type: string
                    type:
                    - array
                    - 'null'
                  source:
                    type: string
                  status:
                    enum:
                    - active
                    - disabled
                    - revoked
                    type: string
                  token:
                    description: The raw secret on create only; a masked display value everywhere else.
                    type: string
                  token_prefix:
                    description: Display prefix of the secret; not usable as a credential.
                    type: string
                  updated:
                    format: date-time
                    type: string
                  updated_by_id:
                    type: string
                  workspace_id:
                    description: Workspace the key belongs to.
                    type: string
                required:
                - id
                - name
                - workspace_id
                - token
                type: object
          description: The updated API key
        '400':
          description: Invalid or unknown body field
        '401':
          description: Missing or invalid credentials
        '403':
          description: The caller may not update API keys
        '404':
          description: No API key with this id is visible to the caller
        '409':
          description: The key is revoked and cannot change status
      summary: Update an API key
      tags:
      - API Keys
      x-speakeasy-group: apiKeys
      x-speakeasy-name-override: update
      x-code-samples:
      - lang: curl
        label: Core - Disable a key
        source: "curl --request PATCH \\\n  --url 'https://my.orq.ai/v2/api-keys/01HZXW2K7Y8Q9M0N1P2R3S4T5V' \\\n  --header \"Authorization: Bearer $ORQ_API_KEY\" \\\n  --header 'Content-Type: application/json' \\\n  --data '{\n    \"status\": \"disabled\"\n  }'\n"
      - lang: python
        label: Python - Disable a key
        source: "import os\nfrom orq_ai_sdk import Orq\n\nclient = Orq(api_key=os.environ[\"ORQ_API_KEY\"])\n\nresult = client.api_keys.update(\n    api_key_id=\"01HZXW2K7Y8Q9M0N1P2R3S4T5V\",\n    status=\"disabled\",\n)\n\nprint(result.status)\n"
      - lang: typescript
        label: Node.js - Disable a key
        source: "import { Orq } from '@orq-ai/node';\n\nconst client = new Orq({\n  apiKey: process.env.ORQ_API_KEY,\n});\n\nconst result = await client.apiKeys.update({\n  apiKeyId: '01HZXW2K7Y8Q9M0N1P2R3S4T5V',\n  status: 'disabled',\n});\n\nconsole.log(result.status);\n"
components:
  schemas:
    Domain:
      additionalProperties: false
      properties:
        allowed_scopes:
          description: Project scopes this domain may be granted under.
          items:
            type: string
          type:
          - array
          - 'null'
        display_name:
          description: Human-readable label.
          type: string
        extra_write_verbs:
          description: Additional verbs granted only with write access.
          items:
            type: string
          type:
          - array
          - 'null'
        group:
          description: Logical group the entry belongs to.
          enum:
          - DOMAIN_GROUP_WORKSPACE_ADMIN
          - DOMAIN_GROUP_PLATFORM
          - DOMAIN_GROUP_GATEWAY
          type: string
        id:
          description: Stable domain identifier, used as the key in access and as the verb prefix in resolved permissions.
          type: string
        readable:
          description: Whether the domain can be granted read access.
          type: boolean
        writable:
          description: Whether the domain can be granted write access.
          type: boolean
      required:
      - id
      - display_name
      - group
      - allowed_scopes
      - readable
      - writable
      - extra_write_verbs
      type: object
    ApiKeyResponse:
      additionalProperties: false
      properties:
        access:
          additionalProperties:
            type: string
          type: object
        active:
          type: boolean
        constraints:
          $ref: '#/components/schemas/Constraints'
        created:
          format: date-time
          type: string
        created_by_id:
          type: string
        expiration:
          type: string
        id:
          description: Unique identifier of the key.
          type: string
        is_legacy:
          type: boolean
        last_used_at:
          format: date-time
          type: string
        legacy_key_id:
          type: string
        legacy_token_family:
          type: string
        name:
          description: Display name of the key.
          type: string
        owner:
          $ref: '#/components/schemas/Owner'
        permission_mode:
          enum:
          - all
          - restricted
          - read_only
          type: string
        project_scope:
          $ref: '#/components/schemas/ProjectScope'
        projects:
          items:
            type: string
          type:
          - array
          - 'null'
        source:
          type: string
        status:
          enum:
          - active
          - disabled
          - revoked
          type: string
        token:
          description: The raw secret on create only; a masked display value everywhere else.
          type: string
        token_prefix:
          description: Display prefix of the secret; not usable as a credential.
          type: string
        updated:
          format: date-time
          type: string
        updated_by_id:
          type: string
        workspace_id:
          description: Workspace the key belongs to.
          type: string
      required:
      - id
      - name
      - workspace_id
      - token
      type: object
    Owner:
      additionalProperties: false
      properties:
        type:
          type: string
        user_id:
          type: string
      required:
      - type
      type: object
    Constraints:
      additionalProperties: false
      properties:
        expires_at:
          format: date-time
          type: string
      type: object
    ErrorResponse:
      type: object
      properties:
        message:
          type: string
          description: Human-readable error message.
        code:
          type: integer
          description: gRPC status code, when the service reports one.
        details:
          type: array
          items: {}
          description: Additional error details, when the service reports any.
      required:
      - message
    ProjectScope:
      additionalProperties: false
      properties:
        mode:
          type: string
        project_id:
          type: string
      required:
      - mode
      type: object
  securitySchemes:
    ApiKey:
      type: http
      scheme: bearer
      bearerFormat: JWT
externalDocs:
  url: https://docs.orq.ai
  description: orq.ai Documentation
x-speakeasy-timeout: 600000