Portkey Api-Keys API

Create, List, Retrieve, Update, and Delete your Portkey API keys.

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/portkey-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 email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

portkey-api-keys-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Portkey Analytics > Graphs Api-Keys API
  description: The Portkey REST API. Please see https://portkey.ai/docs/api-reference for more details.
  version: 2.0.0
  termsOfService: https://portkey.ai/terms
  contact:
    name: Portkey Developer Forum
    url: https://portkey.wiki/community
  license:
    name: MIT
    url: https://github.com/Portkey-AI/portkey-openapi/blob/master/LICENSE
servers:
- url: https://api.portkey.ai/v1
  description: Portkey API Public Endpoint
security:
- Portkey-Key: []
tags:
- name: Api-Keys
  description: Create, List, Retrieve, Update, and Delete your Portkey API keys.
paths:
  /api-keys/{type}/{sub-type}:
    servers:
    - url: https://api.portkey.ai/v1
      description: Portkey API Public Endpoint
    - url: SELF_HOSTED_CONTROL_PLANE_URL
      description: Self-Hosted Control Plane URL
    post:
      tags:
      - Api-Keys
      summary: Create API Keys
      description: 'Creates a new API key.

        '
      parameters:
      - name: type
        in: path
        schema:
          type: string
          enum:
          - organisation
          - workspace
        required: true
      - name: sub-type
        in: path
        schema:
          type: string
          enum:
          - user
          - service
        required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateApiKeyObject'
            examples:
              create_basic:
                summary: Create a basic service API key
                value:
                  name: API_KEY_NAME_0909
                  scopes:
                  - completions.write
              create_with_rotation:
                summary: Create an API key with automatic monthly rotation
                value:
                  name: Auto-rotating Key
                  scopes:
                  - completions.write
                  rotation_policy:
                    rotation_period: monthly
                    key_transition_period_ms: 3600000
              create_with_usage_limits:
                summary: Create an API key with usage limits and alert emails
                value:
                  name: Budget-limited Key
                  scopes:
                  - completions.write
                  usage_limits:
                    type: cost
                    credit_limit: 100
                    alert_threshold: 80
                    periodic_reset: monthly
                  alert_emails:
                  - admin@example.com
      responses:
        '200':
          description: OK
          headers:
            Content-Type:
              schema:
                type: string
                example: application/json
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    example: 183f497a-2a7f-4f47-992e-26213fa863we
                  key:
                    type: string
                    example: abssofjosfjs
                  object:
                    type: string
                    enum:
                    - api-key
                    example: api-key
      x-code-samples:
      - lang: python
        label: Default
        source: "from portkey_ai import Portkey\n\n# Initialize the Portkey client\nportkey = Portkey(\n    api_key=\"PORTKEY_API_KEY\",\n)\n\n# Create a new API key\napi_key = portkey.api_keys.create(\n    name=\"API_KEY_NAME_0909\",\n    type=\"organisation\",\n    sub_type=\"service\",\n    workspace_id=\"WORKSPACE_ID\",\n    scopes=[\n        \"logs.export\",\n        \"logs.list\",\n        \"logs.view\",\n        \"configs.create\",\n        \"configs.update\",\n        \"configs.delete\",\n        \"configs.read\",\n        \"configs.list\",\n        \"virtual_keys.create\",\n        \"virtual_keys.update\",\n        \"virtual_keys.delete\",\n        \"virtual_keys.read\",\n        \"virtual_keys.list\",\n        \"virtual_keys.copy\"\n    ]\n)\n\nprint(api_key)\n"
      - lang: javascript
        label: Default
        source: "import { Portkey } from \"portkey-ai\";\n\nconst portkey = new Portkey({\n    apiKey: \"PORTKEY_API_KEY\",\n})\n\nconst apiKey=await portkey.apiKeys.create({\n    name:\"API_KEY_NAME_0909\",\n    type:\"organisation\",\n    \"sub-type\":\"service\",\n    workspace_id:\"WORKSPACE_ID\",\n    \"scopes\": [\n        \"logs.export\",\n        \"logs.list\",\n        \"logs.view\",\n        \"configs.create\",\n        \"configs.update\",\n        \"configs.delete\",\n        \"configs.read\",\n        \"configs.list\",\n        \"virtual_keys.create\",\n        \"virtual_keys.update\",\n        \"virtual_keys.delete\",\n        \"virtual_keys.read\",\n        \"virtual_keys.list\",\n        \"virtual_keys.copy\"\n    ]\n})\nconsole.log(apiKey);\n"
      - lang: curl
        label: Default
        source: "curl -X POST https://api.portkey.ai/v1/api-keys/organisation/service\n  -H \"x-portkey-api-key: PORTKEY_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"name\":\"API_KEY_NAME_0909\",\n    \"type\":\"organisation\",\n    \"sub-type\":\"service\",\n    \"workspace_id\":\"WORKSPACE_ID\",\n    \"scopes\":[\n      \"logs.export\",\n      \"logs.list\",\n      \"logs.view\",\n      \"configs.create\",\n      \"configs.update\",\n      \"configs.delete\",\n      \"configs.read\",\n      \"configs.list\",\n      \"virtual_keys.create\",\n      \"virtual_keys.update\",\n      \"virtual_keys.delete\",\n      \"virtual_keys.read\",\n      \"virtual_keys.list\",\n      \"virtual_keys.copy\"\n    ]\n  }'\n"
      - lang: curl
        label: Self-Hosted
        source: "curl -X POST SELF_HOSTED_CONTROL_PLANE_URL/api-keys/organisation/service\n  -H \"x-portkey-api-key: PORTKEY_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"name\":\"API_KEY_NAME_0909\",\n    \"type\":\"organisation\",\n    \"sub-type\":\"service\",\n    \"workspace_id\":\"WORKSPACE_ID\",\n    \"scopes\":[\n      \"logs.export\",\n      \"logs.list\",\n      \"logs.view\",\n      \"configs.create\",\n      \"configs.update\",\n      \"configs.delete\",\n      \"configs.read\",\n      \"configs.list\",\n      \"virtual_keys.create\",\n      \"virtual_keys.update\",\n      \"virtual_keys.delete\",\n      \"virtual_keys.read\",\n      \"virtual_keys.list\",\n      \"virtual_keys.copy\"\n    ]\n  }'\n"
      - lang: javascript
        label: Self-Hosted
        source: "import { Portkey } from \"portkey-ai\";\n\nconst portkey = new Portkey({\n    apiKey: \"PORTKEY_API_KEY\",\n    baseUrl: \"SELF_HOSTED_CONTROL_PLANE_URL\"\n})\n\nconst apiKey = await portkey.admin.apiKeys.create({\n    name: \"API_KEY_NAME_0909\",\n    type: \"organisation\",\n    subType: \"service\",\n    workspaceId: \"WORKSPACE_ID\",\n    scopes: [\n        \"logs.export\",\n        \"logs.list\",\n        \"logs.view\",\n        \"configs.create\",\n        \"configs.update\",\n        \"configs.delete\",\n        \"configs.read\",\n        \"configs.list\",\n        \"virtual_keys.create\",\n        \"virtual_keys.update\",\n        \"virtual_keys.delete\",\n        \"virtual_keys.read\",\n        \"virtual_keys.list\",\n        \"virtual_keys.copy\"\n    ]\n})\nconsole.log(apiKey);\n"
      - lang: python
        label: Self-Hosted
        source: "from portkey import Portkey\n\nportkey = Portkey(\n    api_key=\"PORTKEY_API_KEY\",\n    base_url=\"SELF_HOSTED_CONTROL_PLANE_URL\"\n)\n\napi_key = portkey.admin.api_keys.create(\n    name=\"API_KEY_NAME_0909\",\n    type=\"organisation\",\n    sub_type=\"service\",\n    workspace_id=\"WORKSPACE_ID\",\n    scopes=[\n        \"logs.export\",\n        \"logs.list\",\n        \"logs.view\",\n        \"configs.create\",\n        \"configs.update\",\n        \"configs.delete\",\n        \"configs.read\",\n        \"configs.list\",\n        \"virtual_keys.create\",\n        \"virtual_keys.update\",\n        \"virtual_keys.delete\",\n        \"virtual_keys.read\",\n        \"virtual_keys.list\",\n        \"virtual_keys.copy\"\n    ]\n)\nprint(api_key)\n"
      - lang: python
        label: User API Key
        source: "from portkey_ai import Portkey\n\n# Initialize the Portkey client\nportkey = Portkey(\n    api_key=\"PORTKEY_API_KEY\",\n)\n\n# Create a user API key (requires user_id)\napi_key = portkey.api_keys.create(\n    name=\"User API Key\",\n    type=\"workspace\",\n    sub_type=\"user\",\n    workspace_id=\"WORKSPACE_ID\",\n    user_id=\"USER_ID\",  # Required for user API keys\n    scopes=[\n        \"completions.write\",\n        \"logs.view\"\n    ]\n)\n\nprint(api_key)\n"
      - lang: javascript
        label: User API Key
        source: "import { Portkey } from \"portkey-ai\";\n\nconst portkey = new Portkey({\n    apiKey: \"PORTKEY_API_KEY\",\n})\n\nconst apiKey = await portkey.apiKeys.create({\n    name: \"User API Key\",\n    type: \"workspace\",\n    \"sub-type\": \"user\",\n    workspace_id: \"WORKSPACE_ID\",\n    user_id: \"USER_ID\",  // Required for user API keys\n    \"scopes\": [\n        \"completions.write\",\n        \"logs.view\"\n    ]\n})\nconsole.log(apiKey);\n"
      - lang: curl
        label: User API Key
        source: "curl -X POST https://api.portkey.ai/v1/api-keys/workspace/user\n  -H \"x-portkey-api-key: PORTKEY_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"name\":\"User API Key\",\n    \"type\":\"workspace\",\n    \"sub-type\":\"user\",\n    \"workspace_id\":\"WORKSPACE_ID\",\n    \"user_id\":\"USER_ID\",\n    \"scopes\":[\n      \"completions.write\",\n      \"logs.view\"\n    ]\n  }'\n"
  /api-keys:
    servers:
    - url: https://api.portkey.ai/v1
    - url: https://SELF_HOSTED_CONTROL_PLANE_URL
    get:
      tags:
      - Api-Keys
      summary: Get All
      parameters:
      - name: page_size
        in: query
        schema:
          type: integer
        example: '1'
      - name: current_page
        in: query
        schema:
          type: integer
        example: '0'
      - name: workspace_id
        in: query
        schema:
          type: string
        example: ws-shared-123
      responses:
        '200':
          description: OK
          headers:
            Content-Type:
              schema:
                type: string
                example: application/json
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiKeyObjectList'
      x-code-samples:
      - lang: python
        label: Default
        source: "from portkey_ai import Portkey\n\nportkey = Portkey(\n    api_key=\"PORTKEY_API_KEY\"\n)\n\napi_keys = portkey.api_keys.list(\n    workspace_id=\"WORKSPACE_SLUG\"\n)\n\nprint(api_keys)\n"
      - lang: javascript
        label: Default
        source: "import { Portkey } from \"portkey-ai\";\n\nconst portkey = new Portkey({\n    apiKey: \"PORTKEY_API_KEY\"\n})\n\nconst apiKey=await portkey.apiKeys.list({\n    workspaceId:\"WORKSPACE_SLUG\"\n})\n\nconsole.log(apiKey);\n"
      - lang: curl
        label: Default
        source: "curl -X GET \"https://api.portkey.ai/v1/api-keys?workspace_id=WORKSPACE_SLUG\"\n  -H \"x-portkey-api-key: PORTKEY_API_KEY\"\n"
      - lang: curl
        label: Self-Hosted
        source: "curl -X GET \"SELF_HOSTED_CONTROL_PLANE_URL/api-keys?workspace_id=WORKSPACE_SLUG\"\n  -H \"x-portkey-api-key: PORTKEY_API_KEY\"\n"
      - lang: python
        label: Self-Hosted
        source: "from portkey_ai import Portkey\n\nportkey = Portkey(\n    api_key=\"PORTKEY_API_KEY\",\n    base_url=\"SELF_HOSTED_CONTROL_PLANE_URL\"\n)\n\napi_keys = portkey.api_keys.list(\n    workspace_id=\"WORKSPACE_SLUG\"\n)\n\nprint(api_keys)\n"
      - lang: javascript
        label: Self-Hosted
        source: "import { Portkey } from \"portkey-ai\";\n\nconst portkey = new Portkey({\n    apiKey: \"PORTKEY_API_KEY\",\n    baseUrl: \"SELF_HOSTED_CONTROL_PLANE_URL\"\n})\n\nconst apiKey=await portkey.apiKeys.list({\n    workspaceId:\"WORKSPACE_SLUG\"\n})\n\nconsole.log(apiKey);\n"
  /api-keys/{id}:
    servers:
    - url: https://api.portkey.ai/v1
      description: Portkey API Public Endpoint
    - url: SELF_HOSTED_CONTROL_PLANE_URL
      description: Self-Hosted Control Plane URL
    put:
      tags:
      - Api-Keys
      summary: Update API Keys
      description: 'Updates an existing API key. The API key type (user vs service) and associated user_id cannot be changed after creation.

        '
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateApiKeyObject'
            examples:
              update_api_key:
                summary: Update key metadata and limits
                value:
                  name: API_KEY_NAME_0909
                  rate_limits:
                  - type: requests
                    unit: rpm
                    value: 100
              reset_usage:
                summary: Reset accumulated usage for this key
                value:
                  reset_usage: true
              set_rotation_policy:
                summary: Set automatic monthly rotation on an existing key
                value:
                  rotation_policy:
                    rotation_period: monthly
                    key_transition_period_ms: 3600000
              update_usage_limits:
                summary: Update usage limits and alert emails
                value:
                  usage_limits:
                    type: cost
                    credit_limit: 100
                    alert_threshold: 80
                    periodic_reset: monthly
                  alert_emails:
                  - admin@example.com
      parameters:
      - name: id
        in: path
        schema:
          type: string
          format: uuid
        required: true
      responses:
        '200':
          description: OK
          headers:
            Content-Type:
              schema:
                type: string
                example: application/json
          content:
            application/json:
              schema:
                type: object
              example: {}
      x-code-samples:
      - lang: python
        label: Default
        source: "from portkey_ai import Portkey\n\n# Initialize the Portkey client\nportkey = Portkey(\n    api_key=\"PORTKEY_API_KEY\",\n)\n\n# Update the API key\nupdated_api_key = portkey.api_keys.update(\n    id=\"API_KEY_ID\",\n    name=\"API_KEY_NAME_0909\",\n    rate_limits=[\n        {\n            \"type\": \"requests\",\n            \"unit\": \"rpm\",\n            \"value\": 100\n        }\n    ],\n    scopes=[\n        \"organisation_users.create\", \"organisation_users.read\", \"organisation_users.update\",\n        \"organisation_users.delete\", \"organisation_users.list\",\n        \"organisation_service_api_keys.create\", \"organisation_service_api_keys.update\",\n        \"organisation_service_api_keys.read\", \"organisation_service_api_keys.delete\",\n        \"organisation_service_api_keys.list\", \"workspaces.delete\", \"workspaces.create\",\n        \"workspaces.read\", \"workspaces.update\", \"workspaces.list\", \"logs.export\",\n        \"logs.list\", \"logs.view\", \"configs.create\", \"configs.update\", \"configs.delete\",\n        \"configs.read\", \"configs.list\", \"virtual_keys.create\", \"virtual_keys.update\",\n        \"virtual_keys.delete\", \"virtual_keys.duplicate\", \"virtual_keys.read\",\n        \"virtual_keys.list\", \"virtual_keys.copy\", \"workspace_service_api_keys.create\",\n        \"workspace_service_api_keys.delete\", \"workspace_service_api_keys.update\",\n        \"workspace_service_api_keys.read\", \"workspace_service_api_keys.list\",\n        \"workspace_user_api_keys.create\", \"workspace_user_api_keys.delete\",\n        \"workspace_user_api_keys.update\", \"workspace_user_api_keys.read\",\n        \"workspace_user_api_keys.list\", \"workspace_users.create\", \"workspace_users.read\",\n        \"workspace_users.update\", \"workspace_users.delete\", \"workspace_users.list\",\n        \"analytics.view\"\n    ]\n)\n\nprint(updated_api_key)\n"
      - lang: javascript
        label: Default
        source: "import { Portkey } from \"portkey-ai\";\n\nconst portkey = new Portkey({\n    apiKey: \"PORTKEY_API_KEY\",\n})\n\nconst apiKey=await portkey.apiKeys.update({\n    id:\"API_KEY_ID\",\n    name:\"API_KEY_NAME_0909\",\n    rate_limits:[        {\n        \"type\": \"requests\",\n        \"unit\": \"rpm\",\n        \"value\": 100\n    }],\n    \"scopes\": [\n                \"organisation_users.create\",\n                \"organisation_users.read\",\n                \"organisation_users.update\",\n                \"organisation_users.delete\",\n                \"organisation_users.list\",\n                \"organisation_service_api_keys.create\",\n                \"organisation_service_api_keys.update\",\n                \"organisation_service_api_keys.read\",\n                \"organisation_service_api_keys.delete\",\n                \"organisation_service_api_keys.list\",\n                \"workspaces.delete\",\n                \"workspaces.create\",\n                \"workspaces.read\",\n                \"workspaces.update\",\n                \"workspaces.list\",\n                \"logs.export\",\n                \"logs.list\",\n                \"logs.view\",\n                \"configs.create\",\n                \"configs.update\",\n                \"configs.delete\",\n                \"configs.read\",\n                \"configs.list\",\n                \"virtual_keys.create\",\n                \"virtual_keys.update\",\n                \"virtual_keys.delete\",\n                \"virtual_keys.duplicate\",\n                \"virtual_keys.read\",\n                \"virtual_keys.list\",\n                \"virtual_keys.copy\",\n                \"workspace_service_api_keys.create\",\n                \"workspace_service_api_keys.delete\",\n                \"workspace_service_api_keys.update\",\n                \"workspace_service_api_keys.read\",\n                \"workspace_service_api_keys.list\",\n                \"workspace_user_api_keys.create\",\n                \"workspace_user_api_keys.delete\",\n                \"workspace_user_api_keys.update\",\n                \"workspace_user_api_keys.read\",\n                \"workspace_user_api_keys.list\",\n                \"workspace_users.create\",\n                \"workspace_users.read\",\n                \"workspace_users.update\",\n                \"workspace_users.delete\",\n                \"workspace_users.list\",\n                \"analytics.view\"\n            ],\n\n})\nconsole.log(apiKey);\n"
      - lang: curl
        label: Default
        source: "curl -X PUT \"https://api.portkey.ai/v1/api-keys/{id}\" \\\n  -H \"x-portkey-api-key: PORTKEY_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"name\":\"API_KEY_NAME_0909\",\n    \"rate_limits\":[\n        {\n            \"type\": \"requests\",\n            \"unit\": \"rpm\",\n            \"value\": 100\n        }\n    ],\n    \"scopes\": [\n      \"organisation_users.create\",\n      \"organisation_users.read\",\n      \"organisation_users.update\",\n      \"organisation_users.delete\",\n      \"organisation_users.list\",\n      \"organisation_service_api_keys.create\",\n      \"organisation_service_api_keys.update\",\n      \"organisation_service_api_keys.read\",\n      \"organisation_service_api_keys.delete\",\n      \"organisation_service_api_keys.list\",\n      \"workspaces.delete\",\n      \"workspaces.create\",\n      \"workspaces.read\",\n      \"workspaces.update\",\n      \"workspaces.list\",\n      \"logs.export\",\n      \"logs.list\",\n      \"logs.view\",\n      \"configs.create\",\n      \"configs.update\",\n      \"configs.delete\",\n      \"configs.read\",\n      \"configs.list\",\n      \"virtual_keys.create\",\n      \"virtual_keys.update\",\n      \"virtual_keys.delete\",\n      \"virtual_keys.duplicate\",\n      \"virtual_keys.read\",\n      \"virtual_keys.list\",\n      \"virtual_keys.copy\",\n      \"workspace_service_api_keys.create\",\n      \"workspace_service_api_keys.delete\",\n      \"workspace_service_api_keys.update\",\n      \"workspace_service_api_keys.read\",\n      \"workspace_service_api_keys.list\",\n      \"workspace_user_api_keys.create\",\n      \"workspace_user_api_keys.delete\",\n      \"workspace_user_api_keys.update\",\n      \"workspace_user_api_keys.read\",\n      \"workspace_user_api_keys.list\",\n      \"workspace_users.create\",\n      \"workspace_users.read\",\n      \"workspace_users.update\",\n      \"workspace_users.delete\",\n      \"workspace_users.list\",\n      \"analytics.view\"\n    ]\n}'\n"
      - lang: curl
        label: Self-Hosted
        source: "curl -X PUT \"SELF_HOSTED_CONTROL_PLANE_URL/api-keys/{id}\" \\\n-H \"x-portkey-api-key: PORTKEY_API_KEY\" \\\n-H \"Content-Type: application/json\" \\\n-d '{\n    \"name\":\"API_KEY_NAME_0909\",\n    \"rate_limits\":[\n        {\n            \"type\": \"requests\",\n            \"unit\": \"rpm\",\n            \"value\": 100\n        }\n    ],\n    \"scopes\":[\n      \"organisation_users.create\",\n      \"organisation_users.read\",\n      \"organisation_users.update\",\n      \"organisation_users.delete\",\n      \"organisation_users.list\",\n      \"organisation_service_api_keys.create\",\n      \"organisation_service_api_keys.update\",\n      \"organisation_service_api_keys.read\",\n      \"organisation_service_api_keys.delete\",\n      \"organisation_service_api_keys.list\",\n      \"workspaces.delete\",\n      \"workspaces.create\",\n      \"workspaces.read\",\n      \"workspaces.update\",\n      \"workspaces.list\",\n      \"logs.export\",\n      \"logs.list\",\n      \"logs.view\",\n      \"configs.create\",\n      \"configs.update\",\n      \"configs.delete\",\n      \"configs.read\",\n      \"configs.list\",\n      \"virtual_keys.create\",\n      \"virtual_keys.update\",\n      \"virtual_keys.delete\",\n      \"virtual_keys.duplicate\",\n      \"virtual_keys.read\",\n      \"virtual_keys.list\",\n      \"virtual_keys.copy\",\n      \"workspace_service_api_keys.create\",\n      \"workspace_service_api_keys.delete\",\n      \"workspace_service_api_keys.update\",\n      \"workspace_service_api_keys.read\",\n      \"workspace_service_api_keys.list\",\n      \"workspace_user_api_keys.create\",\n      \"workspace_user_api_keys.delete\",\n      \"workspace_user_api_keys.update\",\n      \"workspace_user_api_keys.read\",\n      \"workspace_user_api_keys.list\",\n      \"workspace_users.create\",\n      \"workspace_users.read\",\n      \"workspace_users.update\",\n      \"workspace_users.delete\",\n      \"workspace_users.list\",\n      \"analytics.view\"\n    ]\n}'\n"
      - lang: python
        label: Self-Hosted
        source: "from portkey_ai import Portkey\n\n# Initialize the Portkey client\nportkey = Portkey(\n    api_key=\"PORTKEY_API_KEY\",\n    base_url=\"SELF_HOSTED_CONTROL_PLANE_URL\"\n)\n\n# Update the API key\nupdated_api_key = portkey.api_keys.update(\n    id=\"API_KEY_ID\",\n    name=\"API_KEY_NAME_0909\",\n    rate_limits=[\n        {\n            \"type\": \"requests\",\n            \"unit\": \"rpm\",\n            \"value\": 100\n        }\n    ],\n    scopes=[\n        \"organisation_users.create\", \"organisation_users.read\", \"organisation_users.update\",\n        \"organisation_users.delete\", \"organisation_users.list\",\n        \"organisation_service_api_keys.create\", \"organisation_service_api_keys.update\",\n        \"organisation_service_api_keys.read\", \"organisation_service_api_keys.delete\",\n        \"organisation_service_api_keys.list\", \"workspaces.delete\", \"workspaces.create\",\n        \"workspaces.read\", \"workspaces.update\", \"workspaces.list\", \"logs.export\",\n        \"logs.list\", \"logs.view\", \"configs.create\", \"configs.update\", \"configs.delete\",\n        \"configs.read\", \"configs.list\", \"virtual_keys.create\", \"virtual_keys.update\",\n        \"virtual_keys.delete\", \"virtual_keys.duplicate\", \"virtual_keys.read\",\n        \"virtual_keys.list\", \"virtual_keys.copy\", \"workspace_service_api_keys.create\",\n        \"workspace_service_api_keys.delete\", \"workspace_service_api_keys.update\",\n        \"workspace_service_api_keys.read\", \"workspace_service_api_keys.list\",\n        \"workspace_user_api_keys.create\", \"workspace_user_api_keys.delete\",\n        \"workspace_user_api_keys.update\", \"workspace_user_api_keys.read\",\n        \"workspace_user_api_keys.list\", \"workspace_users.create\", \"workspace_users.read\",\n        \"workspace_users.update\", \"workspace_users.delete\", \"workspace_users.list\",\n        \"analytics.view\"\n    ]\n)\n\nprint(updated_api_key)\n"
      - lang: javascript
        label: Self-Hosted
        source: "import { Portkey } from \"portkey-ai\";\n\nconst portkey = new Portkey({\n    apiKey: \"PORTKEY_API_KEY\",\n    baseUrl: \"SELF_HOSTED_CONTROL_PLANE_URL\"\n})\n\nconst apiKey=await portkey.apiKeys.update({\n    id:\"API_KEY_ID\",\n    name:\"API_KEY_NAME_0909\",\n    rate_limits:[        {\n        \"type\": \"requests\",\n        \"unit\": \"rpm\",\n        \"value\": 100\n    }],\n    \"scopes\": [\n                \"organisation_users.create\",\n                \"organisation_users.read\",\n                \"organisation_users.update\",\n                \"organisation_users.delete\",\n                \"organisation_users.list\",\n                \"organisation_service_api_keys.create\",\n                \"organisation_service_api_keys.update\",\n                \"organisation_service_api_keys.read\",\n                \"organisation_service_api_keys.delete\",\n                \"organisation_service_api_keys.list\",\n                \"workspaces.delete\",\n                \"workspaces.create\",\n                \"workspaces.read\",\n                \"workspaces.update\",\n                \"workspaces.list\",\n                \"logs.export\",\n                \"logs.list\",\n                \"logs.view\",\n                \"configs.create\",\n                \"configs.update\",\n                \"configs.delete\",\n                \"configs.read\",\n                \"configs.list\",\n                \"virtual_keys.create\",\n                \"virtual_keys.update\",\n                \"virtual_keys.delete\",\n                \"virtual_keys.duplicate\",\n                \"virtual_keys.read\",\n                \"virtual_keys.list\",\n                \"virtual_keys.copy\",\n                \"workspace_service_api_keys.create\",\n                \"workspace_service_api_keys.delete\",\n                \"workspace_service_api_keys.update\",\n                \"workspace_service_api_keys.read\",\n                \"workspace_service_api_keys.list\",\n                \"workspace_user_api_keys.create\",\n                \"workspace_user_api_keys.delete\",\n                \"workspace_user_api_keys.update\",\n                \"workspace_user_api_keys.read\",\n                \"workspace_user_api_keys.list\",\n                \"workspace_users.create\",\n                \"workspace_users.read\",\n                \"workspace_users.update\",\n                \"workspace_users.delete\",\n                \"workspace_users.list\",\n                \"analytics.view\"\n            ],\n\n})\nconsole.log(apiKey);\n"
    get:
      tags:
      - Api-Keys
      summary: Get API Keys
      parameters:
      - name: id
        in: path
        schema:
          type: string
          format: uuid
        required: true
      responses:
        '200':
          description: OK
          headers:
            Content-Type:
              schema:
                type: string
                example: application/json
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiKeyObject'
      x-code-samples:
      - lang: python
        label: Default
        source: "from portkey_ai import Portkey\n\n# Initialize the Portkey client\nportkey = Portkey(\n    api_key=\"PORTKEY_API_KEY\",\n)\n\n# Get API keys\napi_keys = portkey.api_keys.retrieve(\n  id=\"API_KEY_ID\"\n)\n\nprint(api_keys)\n"
      - lang: javascript
        label: Default
        source: "import { Portkey } from \"portkey-ai\";\n\nconst portkey = new Portkey({\n    apiKey: \"PORTKEY_API_KEY\",\n})\n\nconst apiKey=await portkey.apiKeys.retrieve({\n    id:\"API_KEY_ID\"\n})\n\nconsole.log(apiKey);\n"
      - lang: curl
        label: Default
        source: 'curl -X GET "https://api.portkey.ai/v1/api_keys/{id}" \

          -H "x-portkey-api-key: PORTKEY_API_KEY"

          '
      - lang: curl
        label: Self-Hosted
        source: 'curl -X GET "SELF_HOSTED_CONTROL_PLANE_URL/api_keys/{id}" \

          -H "x-portkey-api-key: PORTKEY_API_KEY"

          '
      - lang: python
        label: Self-Hosted
        source: "from portkey_ai import Portkey\n\n# Initialize the Portkey client\nportkey = Portkey(\n    api_key=\"PORTKEY_API_KEY\",\n    base_url=\"SELF_HOSTED_CONTROL_PLANE_URL\"\n)\n\n# Get API keys\napi_keys = portkey.api_keys.retrieve(\n  id=\"API_KEY_ID\"\n)\n\nprint(api_keys)\n"
      - lang: javascript
        label: Self-Hosted
        source: "import { Portkey } from \"portkey-ai\";\n\nconst portkey = new Portkey({\n    apiKey: \"PORTKEY_API_KEY\",\n    baseUrl: \"SELF_HOSTED_CONTROL_PLANE_URL\"\n})\n\nconst apiKey=await portkey.apiKeys.retrieve({\n    id:\"API_KEY_ID\"\n})\n\nconsole.log(apiKey);\n"
    delete:
      tags:
      - Api-Keys
      summary: Remove an API Key
      parameters:
      - name: id
        in: path
        schema:
          type: string
          format: uuid
        required: true
      responses:
        '200':
          description: OK
          headers:
            Content-Type:
              schema:
                type: string
                example: application/json
          content:
            application/json:
              schema:
                type: object
              example: {}
      x-code-samples:
      - lang: python
        label: Default
        source: "from portkey_ai import Portkey\n\n# Initialize the Portkey client\nportkey = Portkey(\n    api_key=\"PORTKEY_API_KEY\",\n)\n\n# Delete the API key\nresult = portkey.api_keys.delete(\n    id=\"API_KEY_ID\"\n)\n\nprint(result)\n"
      - lang: javascript
        label: Default
        source: "import { Portkey } from \"portkey-ai\";\n\nconst portkey = new Portkey({\n    apiKey: \"PORTKEY_API_KEY\",\n})\n\nconst apiKey=await portkey.apiKeys.delete({\n    id:\"API_KEY_ID\"\n})\nconsole.log(apiKey);\n"
      - lang: curl
        label: Default
        source: 'curl -X DELETE "https://api.portkey.ai/v1/api_keys/{id}" \

          -H "x-portkey-api-key: PORTKEY_API_KEY"

          '
      - lang: curl
        label: Self-Hosted
        source: 'curl -X DELETE "SELF_HOSTED_CONTROL_PLANE_URL/api_keys/{id}" \

          -H "x-portkey-api-key: PORTKEY_API_KEY"

          '
      - lang: python
        label: Self-Hosted
        source: "from portkey_ai import Portkey\n\n# Initialize the Portkey client\nportkey = Portkey(\n    api_key=\"PORTKEY_API_KEY\",\n    base_url=\"SELF_HOSTED_CONTROL_PLANE_URL\"\n)\n\n# Delete the API key\nresult = portkey.api_keys.delete(\n    id=\"API_KEY_ID\"\n)\n\nprint(result)\n"
      - lang: javascript
        label: Self-Hosted
        source: "import { Portkey } from \"portkey-ai\";\n\nconst portkey = new Portkey({\n    apiKey: \"PORTKEY_API_KEY\",\n    baseUrl: \"SELF_HOSTED_CONTROL_PLANE_URL\"\n})\n\nconst apiKey=await portkey.apiKeys.delete({\n    id:\"API_KEY_ID\"\n})\nconsole.log(apiKey);\n"
  /api-keys/{id}/rotate:
    servers:
    - url: https://api.portkey.ai/v1
      description: Portkey API Public Endpoint
    - url: SELF_HOSTED_CONTROL_PLANE_URL
      description: Self-Hosted Control Plane URL
    post:
      tags:
      - Api-Keys
      summary: Rotate API Key
      description: 'Rotates an existing API key and returns a newly generated key value.

        The previous key remains valid during the transition period and expires at `key_transition_expires_at`.

        '
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RotateApiKeyRequest'
            examples:
              default:
                summary: Rotate with a custom transition period
                value:
                  key_transition_period_ms: 3600000
      

# --- truncated at 32 KB (61 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/portkey/refs/heads/main/openapi/portkey-api-keys-api-openapi.yml