---
title: "Add a controller"
method: POST
path: "/identifiers/{did}/controllers"
tags: ["Controllers"]
---

# Add a controller

`POST /identifiers/{did}/controllers`

Adds a controller DID to the DID. The request body is the shared
single-string body `{ "value": "<controller DID>" }`; the response
exposes the value as `controllerDid`.

## Parameters

- `./common-components.yml#/components/parameters/CorrelationId` — unresolved $ref

## Request body

- ControllerCreateRequest — Request body for adding a controller. The implementation accepts the shared single-string body and maps `value` to the response field `controllerDid`.
  - `value` string, required — The controller DID string.

## Response `201`

Controller added successfully.

- Controller — unresolved $ref

## Other responses

- `400` — unresolved $ref
- `401` — unresolved $ref
- `403` — unresolved $ref
- `404` — unresolved $ref
- `409` — unresolved $ref
- `500` — unresolved $ref

## Changes

- **2026-06-26** `a1581f6b71f3` — 1 breaking, 1 warning
  - added the new required request property `value`
  - removed the request property `controllerDid`

[Change history](https://skmtc.dev/sphereon-opensource/apis/did-rest-api/changes/identifiers/:did/controllers/post.md)

---

[API](https://skmtc.dev/sphereon-opensource/apis/did-rest-api.md) · [All operations](https://skmtc.dev/sphereon-opensource/apis/did-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/sphereon-opensource/did-rest-api/revisions/d575fc307e80/schema)
