Agents — Core API
Agent identity management endpoints. Agents are non-human identities within an Issuer, used for automated processes, bots, and machine-to-machine communication. Each agent can have wallet (CAIP-2) or secret verifiers for authentication.
Base URL: https://api.authpi.com — explore every endpoint in the
interactive Core API reference.
GET/v1/accounts/{account_id}/issuers/{issuer_id}/agents
List Agents
Lists all agents for an issuer with cursor-based pagination.
Agents are non-human identities within an issuer, used for automated processes, bots, and machine-to-machine communication. Each agent can have wallet or secret verifiers for authentication.
Filtering:
status- Filter by agent status (active, suspended, blocked)model- Filter by model name (exact match)provider- Filter by provider name (exact match)has_verifiers- Filter by whether the agent has any verifiers configuredlimit- Number of results per page (1-100, default 50)cursor- Cursor from previous response for next page
Each agent in the response includes a verifiers array listing which verifier types are configured (e.g. ["wallet", "secret"]).
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
account_id | string | Required | The unique identifier of the account |
issuer_id | string | Required | The unique identifier of the issuer |
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
limit | integer | Optional | Maximum number of items to return (1-100, default: 50) |
cursor | string | Optional | Pagination cursor from a previous response |
status | active | suspended | blocked | Optional | Filter by agent status |
model | string | Optional | Filter by model name (exact match) |
provider | string | Optional | Filter by provider name (exact match) |
has_verifiers | true | false | Optional | Filter by whether the agent has any verifiers configured |
Responses
| Code | Description | Schema |
|---|---|---|
| 200 | Agents retrieved successfully | object |
| 401 | Unauthorized - Authentication is required or has failed. | ApiError |
| 403 | Forbidden - You don't have permission to perform this action. | ApiError |
POST/v1/accounts/{account_id}/issuers/{issuer_id}/agents
Create Agent
Creates a new agent identity under an issuer.
Agents are non-human identities used for automated processes, bots, and machine-to-machine communication. After creation, add verifiers (wallet or secret) to enable authentication.
Agent fields:
name(required) - Human-readable name for the agentdescription- What the agent doesmodel- AI model identifier (e.g., "gpt-4", "claude-3")provider- Model provider (e.g., "openai", "anthropic")version- Agent version stringmetadata- Arbitrary key-value metadata
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
account_id | string | Required | The unique identifier of the account |
issuer_id | string | Required | The unique identifier of the issuer |
Request body
Content type: application/json
| Property | Type | Required | Description |
|---|---|---|---|
name | string | Required | A name for the resource. |
description | string | null | Optional | A description for the resource. Markdown supported. |
model | string | null | Optional | |
provider | string | null | Optional | |
version | string | null | Optional | |
scopes | string[] | Optional | |
metadata | Metadata | Optional |
Responses
| Code | Description | Schema |
|---|---|---|
| 201 | Agent created successfully | object |
| 400 | Bad Request - The request is malformed or contains invalid data. | ApiError |
| 401 | Unauthorized - Authentication is required or has failed. | ApiError |
| 403 | Forbidden - You don't have permission to perform this action. | ApiError |
GET/v1/accounts/{account_id}/issuers/{issuer_id}/agents/{agent_id}
Get Agent
Retrieves a single agent by ID.
Returns the agent's profile, status, and metadata. Use the agent verifiers endpoints to manage authentication credentials.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
account_id | string | Required | The unique identifier of the account |
issuer_id | string | Required | The unique identifier of the issuer |
agent_id | string | Required | The unique identifier of the agent |
Responses
| Code | Description | Schema |
|---|---|---|
| 200 | Agent retrieved successfully | object |
| 401 | Unauthorized - Authentication is required or has failed. | ApiError |
| 403 | Forbidden - You don't have permission to perform this action. | ApiError |
| 404 | Not Found - The requested resource does not exist. | ApiError |
PATCH/v1/accounts/{account_id}/issuers/{issuer_id}/agents/{agent_id}
Update Agent
Updates an existing agent's profile or status.
All fields are optional — only provided fields are updated. You can update the agent's name, description, model info, metadata, or status.
Status transitions:
active→suspended(requiresstatus_reason)active→blocked(requiresstatus_reason)suspended→active
Suspended or blocked agents cannot authenticate or have verifiers modified.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
account_id | string | Required | The unique identifier of the account |
issuer_id | string | Required | The unique identifier of the issuer |
agent_id | string | Required | The unique identifier of the agent |
Request body
Content type: application/json
| Property | Type | Required | Description |
|---|---|---|---|
name | string | Optional | A name for the resource. |
description | string | null | Optional | A description for the resource. Markdown supported. |
model | string | null | Optional | |
provider | string | null | Optional | |
version | string | null | Optional | |
status | active | suspended | blocked | Optional | |
status_reason | string | null | Optional | |
scopes | string[] | Optional | |
metadata | Metadata | Optional |
Responses
| Code | Description | Schema |
|---|---|---|
| 200 | Agent updated successfully | object |
| 400 | Bad Request - The request is malformed or contains invalid data. | ApiError |
| 401 | Unauthorized - Authentication is required or has failed. | ApiError |
| 403 | Forbidden - You don't have permission to perform this action. | ApiError |
| 404 | Not Found - The requested resource does not exist. | ApiError |
| 412 | Precondition Failed - The resource has been modified since the provided ETag. | PreconditionFailedError |
DELETE/v1/accounts/{account_id}/issuers/{issuer_id}/agents/{agent_id}
Delete Agent
Permanently deletes an agent and all its verifiers.
This action is irreversible. All associated data is removed:
- Agent profile and metadata
- All verifiers (wallet and secret)
- KV cache entries (agent and wallet reverse lookups)
- D1 listing index entry
Before deleting:
- Remove the agent from any organizations it belongs to
- Revoke any active credentials or integrations using this agent
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
account_id | string | Required | The unique identifier of the account |
issuer_id | string | Required | The unique identifier of the issuer |
agent_id | string | Required | The unique identifier of the agent |
Responses
| Code | Description | Schema |
|---|---|---|
| 204 | No Content - The operation completed successfully with no response body. | — |
| 401 | Unauthorized - Authentication is required or has failed. | ApiError |
| 403 | Forbidden - You don't have permission to perform this action. | ApiError |
| 404 | Not Found - The requested resource does not exist. | ApiError |
| 412 | Precondition Failed - The resource has been modified since the provided ETag. | PreconditionFailedError |
GET/v1/accounts/{account_id}/issuers/{issuer_id}/agents/{agent_id}/verifiers
List Agent Verifiers
Lists all verifiers attached to an agent.
Returns wallet and secret verifiers. For secret verifiers, only the algorithm is shown — the hash is never exposed.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
account_id | string | Required | The unique identifier of the account |
issuer_id | string | Required | The unique identifier of the issuer |
agent_id | string | Required | The unique identifier of the agent |
Responses
| Code | Description | Schema |
|---|---|---|
| 200 | Verifiers retrieved successfully | object |
| 401 | Unauthorized - Authentication is required or has failed. | ApiError |
| 403 | Forbidden - You don't have permission to perform this action. | ApiError |
| 404 | Not Found - The requested resource does not exist. | ApiError |
POST/v1/accounts/{account_id}/issuers/{issuer_id}/agents/{agent_id}/verifiers
Add Agent Verifier
Adds an authentication verifier to an agent.
Verifier types:
wallet - Links a blockchain wallet address (CAIP-2 format) for x402 payment authentication. Requires
addressandnetworkfields. A KV reverse lookup is created for wallet-to-agent resolution.secret - Generates a high-entropy client secret for Client Credentials authentication. The plaintext secret is returned once in the response — store it securely. The secret is SHA-256 hashed before storage and cannot be retrieved again.
Limits: Maximum 20 verifiers per agent.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
account_id | string | Required | The unique identifier of the account |
issuer_id | string | Required | The unique identifier of the issuer |
agent_id | string | Required | The unique identifier of the agent |
Request body
Content type: application/json
One of the following variants:
| Property | Type | Required | Description |
|---|---|---|---|
type | wallet | Required | |
name | string | null | Required | A name for the resource. |
address | string | Required | |
network | string | Required |
| Property | Type | Required | Description |
|---|---|---|---|
type | secret | Required | |
name | string | null | Required | A name for the resource. |
Responses
| Code | Description | Schema |
|---|---|---|
| 201 | Verifier added successfully | object |
| 400 | Bad Request - The request is malformed or contains invalid data. | ApiError |
| 401 | Unauthorized - Authentication is required or has failed. | ApiError |
| 403 | Forbidden - You don't have permission to perform this action. | ApiError |
| 404 | Not Found - The requested resource does not exist. | ApiError |
DELETE/v1/accounts/{account_id}/issuers/{issuer_id}/agents/{agent_id}/verifiers/{verifier_id}
Remove Agent Verifier
Removes an authentication verifier from an agent.
For wallet verifiers, the KV reverse lookup entry is also cleaned up. For secret verifiers, the stored hash is deleted.
This action is immediate and irreversible.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
account_id | string | Required | The unique identifier of the account |
issuer_id | string | Required | The unique identifier of the issuer |
agent_id | string | Required | The unique identifier of the agent |
verifier_id | string | Required | The unique identifier of the verifier |
Responses
| Code | Description | Schema |
|---|---|---|
| 204 | No Content - The operation completed successfully with no response body. | — |
| 401 | Unauthorized - Authentication is required or has failed. | ApiError |
| 403 | Forbidden - You don't have permission to perform this action. | ApiError |
| 404 | Not Found - The requested resource does not exist. | ApiError |