Skip to content

API reference

Agent tokens

3 operations, each with its parameters, curl and TypeScript examples ready to copy, and its errors.

Every example assumes a signed-in session; how to get one is in Authentication

issueAgentToken

POST/api/agent-tokens/issue

Firm memberPermission: api-access:write

issueAgentToken

Parameters of issueAgentToken
NameInTypeRequired
nameBodystring 1–100Yes
orgIdBodystring (uuid)Yes
scopesBodyarray of string 1–40give between 1 and 10 scopesYes
ttlDaysBody30 | 90 | 365Yes
curl
curl -X POST 'https://www.notificado.co/api/agent-tokens/issue' \
  -b cookies.txt \
  -H 'origin: https://www.notificado.co' \
  -H 'content-type: application/json' \
  -d '{"name":"<name>","orgId":"<orgId>","scopes":[],"ttlDays":30}'
TypeScript
const response = await fetch('https://www.notificado.co/api/agent-tokens/issue', {
  method: 'POST',
  headers: { 'content-type': 'application/json', origin: 'https://www.notificado.co', cookie: sessionCookie },
  body: JSON.stringify({
    "name": "<name>",
    "orgId": "<orgId>",
    "scopes": [],
    "ttlDays": 30
  }),
});
const result = await response.json();
Example response
200
{
  "summary": {
    "createdAt": "2026-09-25T15:00:00Z",
    "createdAtBogota": "<createdAtBogota>",
    "expiresAt": "2026-09-25T15:00:00Z",
    "expiresAtBogota": "<expiresAtBogota>",
    "id": "<id>",
    "lastUsedAt": "2026-09-25T15:00:00Z",
    "lastUsedAtBogota": "<lastUsedAtBogota>",
    "name": "<name>",
    "prefix": "<prefix>",
    "revokedAt": "2026-09-25T15:00:00Z",
    "revokedAtBogota": "<revokedAtBogota>",
    "scopes": [
      "cases:read"
    ],
    "status": "active",
    "userId": "<userId>"
  },
  "token": "<token>"
}

Errors

  • 400 X_INPUT_INVALID
  • 403 policy denied
  • 422 X_BODY_INVALID

listAgentTokens

POST/api/agent-tokens/list

Firm memberPermission: api-access:read

listAgentTokens

Parameters of listAgentTokens
NameInTypeRequired
orgIdBodystring (uuid)Yes
curl
curl -X POST 'https://www.notificado.co/api/agent-tokens/list' \
  -b cookies.txt \
  -H 'origin: https://www.notificado.co' \
  -H 'content-type: application/json' \
  -d '{"orgId":"<orgId>"}'
TypeScript
const response = await fetch('https://www.notificado.co/api/agent-tokens/list', {
  method: 'POST',
  headers: { 'content-type': 'application/json', origin: 'https://www.notificado.co', cookie: sessionCookie },
  body: JSON.stringify({
    "orgId": "<orgId>"
  }),
});
const result = await response.json();
Example response
200
{
  "tokens": [
    {
      "createdAt": "2026-09-25T15:00:00Z",
      "createdAtBogota": "<createdAtBogota>",
      "expiresAt": "2026-09-25T15:00:00Z",
      "expiresAtBogota": "<expiresAtBogota>",
      "id": "<id>",
      "lastUsedAt": "2026-09-25T15:00:00Z",
      "lastUsedAtBogota": "<lastUsedAtBogota>",
      "name": "<name>",
      "prefix": "<prefix>",
      "revokedAt": "2026-09-25T15:00:00Z",
      "revokedAtBogota": "<revokedAtBogota>",
      "scopes": [
        "cases:read"
      ],
      "status": "active",
      "userId": "<userId>"
    }
  ]
}

Errors

  • 400 X_INPUT_INVALID
  • 403 policy denied
  • 422 X_BODY_INVALID

revokeAgentToken

POST/api/agent-tokens/revoke

Firm memberPermission: api-access:write

revokeAgentToken

Parameters of revokeAgentToken
NameInTypeRequired
orgIdBodystring (uuid)Yes
tokenIdBodystring (uuid)Yes
curl
curl -X POST 'https://www.notificado.co/api/agent-tokens/revoke' \
  -b cookies.txt \
  -H 'origin: https://www.notificado.co' \
  -H 'content-type: application/json' \
  -d '{"orgId":"<orgId>","tokenId":"<tokenId>"}'
TypeScript
const response = await fetch('https://www.notificado.co/api/agent-tokens/revoke', {
  method: 'POST',
  headers: { 'content-type': 'application/json', origin: 'https://www.notificado.co', cookie: sessionCookie },
  body: JSON.stringify({
    "orgId": "<orgId>",
    "tokenId": "<tokenId>"
  }),
});
const result = await response.json();
Example response
200
{
  "createdAt": "2026-09-25T15:00:00Z",
  "createdAtBogota": "<createdAtBogota>",
  "expiresAt": "2026-09-25T15:00:00Z",
  "expiresAtBogota": "<expiresAtBogota>",
  "id": "<id>",
  "lastUsedAt": "2026-09-25T15:00:00Z",
  "lastUsedAtBogota": "<lastUsedAtBogota>",
  "name": "<name>",
  "prefix": "<prefix>",
  "revokedAt": "2026-09-25T15:00:00Z",
  "revokedAtBogota": "<revokedAtBogota>",
  "scopes": [
    "cases:read"
  ],
  "status": "active",
  "userId": "<userId>"
}

Errors

  • 400 X_INPUT_INVALID
  • 403 policy denied
  • 422 X_BODY_INVALID