Register an agent principal. Not a Hydra secret. Not MCP.
POST
/v1/agentsAuthorization
AuthorizationBearer token (JWT) · headerrequiredHydra JWT. Identity is the bound agent or a Keto member human. The host is not identity.
Request body
requiredapplication/jsonnamestringrequiredResponses
200Agent principal. No secret.
kindstringrequiredidstringrequiredorg_idstringrequiredownerOwnerShow propertiesHide properties
kindstringrequiredidstringrequiredrevoked_atstring<date-time>Set when the agent is revoked. Record stays for audit.
400bad request
401missing or invalid Bearer
403not owner
Request
curl -X POST "https://veil.nyc/v1/agents" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "string"
}'const response = await fetch("https://veil.nyc/v1/agents", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_TOKEN",
"Content-Type": "application/json"
},
body: JSON.stringify({
"name": "string"
})
});import requests
response = requests.post(
"https://veil.nyc/v1/agents",
headers={
"Authorization": "Bearer YOUR_TOKEN",
"Content-Type": "application/json"
},
json={
"name": "string"
},
)Response
{
"kind": "string",
"id": "string",
"org_id": "string",
"owner": {
"kind": "string",
"id": "string"
},
"revoked_at": "2024-01-01T00:00:00Z"
}bad request
missing or invalid Bearer
not owner