---
title: "Create a worker"
method: POST
path: "/v1/workers"
tags: ["Admin"]
---

# Create a worker

`POST /v1/workers`

Create a worker

## Request body

- SchemasCreateWorkerRequest
  - `enabled` boolean
  - `http` SchemasHTTPWorkerConfigRequest
    - `retry` integer, required
    - `secret` string, required
    - `timeout` integer, required
    - `uri` string, required
  - `id` string, required
  - `mcp` SchemasMCPWorkerConfigCreateRequest
    - `headers` SchemasMCPWorkerHeadersCreateRequest
    - `oauth2` SchemasMCPOAuth2ConfigCreateRequest
      - `authorization_url` string
      - `client_id` string
      - `client_secret` string
      - `external_id` string
    - `retry` integer, required
    - `secrets` SchemasMCPWorkerSecretsCreateRequest
    - `timeout` integer, required
    - `uri` string, required
  - `type` string

## Response `201`

Created

- SchemasWorkerResponse
  - `binding` SchemasBindingResponse
    - `id` string
    - `type` 'static' | 'tenant' | 'project' | 'account'
  - `enabled` boolean
  - `http` SchemasHTTPWorkerConfigResponse
    - `retry` integer
    - `secret` SchemasSecretResponse
      - `binding` 'static' | 'tenant' | 'project' | 'account'
      - `editable` boolean
      - `exists` boolean
      - `value` string
    - `timeout` integer
    - `uri` string
  - `id` string
  - `managed` boolean
  - `mcp` SchemasMCPWorkerConfigResponse
    - `external_id` string
    - `headers` SchemasMCPWorkerHeadersResponse
    - `oauth2` SchemasMCPOAuth2ConfigResponse
      - `authorization_url` string
      - `client_id` string
      - `client_secret` SchemasSecretResponse
        - `binding` 'static' | 'tenant' | 'project' | 'account'
        - `editable` boolean
        - `exists` boolean
        - `value` string
      - `external_id` string
      - `redirect_uri` string
      - `supported_scopes` string[]
    - `redirect_uri` string
    - `retry` integer
    - `secrets` object
    - `timeout` integer
    - `uri` string
  - `requirements` SchemasWorkerRequirementsResponse
    - `authorization` SchemasWorkerAuthorizationRequirementResponse
      - `met` boolean
      - `oauth2` SchemasOAuth2AuthorizationRequirementResponse
        - `met` boolean
    - `met` boolean
  - `type` 'http' | 'mcp' | 'unknown'

## Other responses

- `500` — Internal Server Error

## Changes

- **2026-04-10** `1ef78b1a5567` — 2 info
  - added the optional property `mcp/external_id` to the response with the `201` status
  - added the optional property `mcp/redirect_uri` to the response with the `201` status
- **2026-02-26** `6ff494eafa2c` — 1 info
  - added the optional property `mcp/oauth2/external_id` to the response with the `201` status
- **2026-02-26** `e2406b137c08` — 1 info
  - added the optional property `mcp/oauth2/supported_scopes` to the response with the `201` status
- **2026-02-18** `2a6c58164e9f` — 3 warning
  - removed the optional property `http/secret/hint` from the response with the `201` status
  - removed the optional property `mcp/oauth2/client_secret/hint` from the response with the `201` status
  - removed the optional property `mcp/secrets/additionalProperties/hint` from the response with the `201` status
- **2026-01-16** `581f0f279edc` — 2 breaking, 5 info
  - the `http/timeout` request property's max was decreased to `60.00`
  - the `mcp/timeout` request property's max was decreased to `60.00`
  - the `http/uri` request property's maxLength was increased from `100` to `2048`
  - the `mcp/oauth2/authorization_url` request property's maxLength was increased from `256` to `2048`
  - …3 more

[Full history](https://skmtc.dev/arcadeai/apis/arcade-api/changes/v1/workers/post.md)

---

[API](https://skmtc.dev/arcadeai/apis/arcade-api.md) · [All operations](https://skmtc.dev/arcadeai/apis/arcade-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/arcadeai/arcade-api/revisions/a509111298b2/schema)
