Entities API

Register, read, and delete ATAP entities.

Register entity

POST/v1/entitiesNone

Register a new entity. Returns DID and credentials.

Request body

FieldRequiredDescription
typeYesagent, machine, human, or org
nameNoHuman-readable display name
public_keyNoBase64-encoded Ed25519 public key. If omitted, server generates a keypair.
principal_didNoDID of the controlling entity

Response (201)

FieldPresenceDescription
idAlwaysEntity ID (ULID for agent/machine/org; derived hash for human)
didAlwaysThe entity's did:web DID
typeAlwaysEntity type
nameIf providedDisplay name
client_secretAgent/machineatap_-prefixed credential. Returned once.
private_keyIf server-generatedBase64-encoded private key. Returned once.

Example

curl -s -X POST https://api.sandbox.atap.dev/v1/entities \
  -H 'Content-Type: application/json' \
  -d '{"type": "agent", "name": "my-agent"}' | jq .

Get entity

GET/v1/entities/{id}None

Get entity info by ID.

Returns the entity record including type, name, DID, and creation timestamp.


Delete entity (crypto-shred)

DELETE/v1/entities/{id}atap:manage

Permanently delete entity via crypto-shredding.

This performs crypto-shredding per GDPR Art. 17:

  1. Deletes the per-entity encryption key
  2. Deactivates the DID Document
  3. Sends a entity/1.0/shredded DIDComm notification to federation partners