---
title: "Register an executor and issue its first credential"
method: POST
path: "/v1/executors"
tags: ["Executors"]
---

# Register an executor and issue its first credential

`POST /v1/executors`

## Request

- Base URL: `https://api.thrd.email`
- URL: `https://api.thrd.email/v1/executors`
- Auth: API key in header `x-admin-token`

Requires a server-authenticated tenant owner/operator with executors:manage. Agent API keys are rejected. Tenant, environment, actor, role and scopes are derived server-side and cannot appear in the body.

## Request body

- object
  - `name` string, required
  - `tool_name` string, required
  - `execution_target` string, required

## Response `201`

Executor registered. Store credential_token now; plaintext cannot be fetched again.

- object
  - `principal_id` string, required
  - `credential_id` string, required
  - `environment` 'development' | 'staging' | 'production', required
  - `tool_name` string, required
  - `execution_target` string, required
  - `credential_token` string, required: Secret returned once and stored server-side only as a peppered hash.

## Other responses

- `400`: Strict registration body invalid
- `403`: Human manager authority unavailable
- `409`: Executor registration conflict
- `429`: Management rate limit exceeded
- `503`: Management authority unavailable

---

[API](https://skmtc.dev/thrd/apis/thrd-agent-email-api.md) · [All operations](https://skmtc.dev/thrd/apis/thrd-agent-email-api/llms.txt) · [OpenAPI document](https://skmtc.dev/thrd/apis/thrd-agent-email-api/revisions/d8a88129cd34?raw)
