---
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
      - `hint` string
      - `value` string
    - `timeout` integer
    - `uri` string
  - `id` string
  - `managed` boolean
  - `mcp` SchemasMCPWorkerConfigResponse
    - `headers` SchemasMCPWorkerHeadersResponse
    - `oauth2` SchemasMCPOAuth2ConfigResponse
      - `authorization_url` string
      - `client_id` string
      - `client_secret` SchemasSecretResponse
        - `binding` 'static' | 'tenant' | 'project' | 'account'
        - `editable` boolean
        - `exists` boolean
        - `hint` string
        - `value` 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

- **2025-10-30** `f59a2fe653b8` — 1 warning, 1 info
  - deleted the `header` request parameter `Authorization`
  - the endpoint scheme security `Bearer` was added to the API
- **2025-10-24** `8446c4e394ac` — 6 info
  - added the new optional request property `mcp/headers`
  - added the new optional request property `mcp/oauth2`
  - added the new optional request property `mcp/secrets`
  - added the optional property `mcp/headers` to the response with the `201` status
  - …2 more
- **2025-10-16** `c1c0c56b4e7d` — 1 info
  - added the optional property `requirements` to the response with the `201` status

[Change 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/f59a2fe653b8/schema)
