---
title: "Redeem an enrollment code and register a device public key"
method: POST
path: "/api/v1/agent-environments/enroll"
tags: ["Agent environments"]
---

# Redeem an enrollment code and register a device public key

`POST /api/v1/agent-environments/enroll`

## Request body

- object
  - `code` string, required
  - `name` string, required
  - `publicKey` string, required
  - `hostVersion` string, required
  - `platform` string, required
  - `capabilities` object, required
    - `protocolVersion` 1, required
    - `hostVersion` string, required
    - `platform` string, required
    - `adapters` object[], required
      - `id` string, required
      - `displayName` string, required
      - `protocol` 'fake' | 'acp' | 'eve' | 'native', required
      - `version` string
      - `supports` object, required
        - `prompt` boolean, required
        - `approval` boolean, required
        - `cancel` boolean, required
        - `resume` boolean, required
    - `filesystem` union, required
      - object
        - `mode` 'selected_roots', required
        - `roots` string[], required
      - object
        - `mode` 'all_user_files', required
    - `maxConcurrentRuns` integer, required
  - `kind` 'local' | 'vps' | 'overlay_cloud' | 'external'

## Response `200`

Successful response. Stable response schemas are documented in workflow guides when available.

- unknown

## Other responses

- `400` — Invalid request.
- `401` — Missing or invalid authentication.
- `500` — Unexpected server error.

## Changes

- **2026-08-27** `e9bf9a73b28a` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/layernorm/apis/overlay-web-api/changes/api/v1/agent-environments/enroll/post.md)

---

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