Skip to main content
POST
/
api
/
v1
/
x402
/
sessions
Create x402 Session
curl --request POST \
  --url https://api.agentwallex.com/api/v1/x402/sessions \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <api-key>' \
  --data '
{
  "agent_id": "agent_abc123",
  "budget_limit": "100.00",
  "chain": "eip155:84532",
  "ttl_seconds": 3600,
  "allowed_urls": [
    "https://paid-api.example.com/v1/data"
  ]
}
'
{
  "id": "sess_xyz789",
  "agent_id": "agent_abc123",
  "budget_limit": "100.00",
  "budget_spent": "0.00",
  "budget_remaining": "100.00",
  "chain": "eip155:84532",
  "status": "active",
  "expires_at": "2025-06-15T15:30:00Z",
  "created_at": "2025-06-15T14:30:00Z"
}
Sessions let you pre-authorize a spending budget for repeated x402 API calls. Payments within a session are deducted from the session budget without requiring individual approval for each call.

Request Body

agent_id
string
required
The agent whose wallet funds the session.
budget_limit
string
required
Maximum total amount the session can spend (e.g., "100.00").
chain
string
required
CAIP-2 chain identifier for settlement (e.g., eip155:84532).
ttl_seconds
integer
required
Session time-to-live in seconds. The session expires after this duration.
allowed_urls
string[]
Optional list of URLs this session is authorized to pay. If omitted, all x402-enabled URLs are allowed.

Example

curl -X POST https://api.agentwallex.com/api/v1/x402/sessions \
  -H "X-API-Key: awx_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "agent_id": "agent_abc123",
    "budget_limit": "100.00",
    "chain": "eip155:84532",
    "ttl_seconds": 3600,
    "allowed_urls": ["https://paid-api.example.com/v1/data"]
  }'
Response
{
  "id": "sess_xyz789",
  "agent_id": "agent_abc123",
  "budget_limit": "100.00",
  "budget_spent": "0.00",
  "budget_remaining": "100.00",
  "chain": "eip155:84532",
  "status": "active",
  "expires_at": "2025-06-15T15:30:00Z",
  "created_at": "2025-06-15T14:30:00Z"
}

Authorizations

X-API-Key
string
header
required

API key authentication. Keys are prefixed with awx_.

Body

application/json
agent_id
string
required

The agent whose wallet funds the session.

budget_limit
string
required

Maximum total amount the session can spend (e.g., "100.00").

chain
string
required

CAIP-2 chain identifier for settlement (e.g., eip155:84532).

ttl_seconds
integer
required

Session time-to-live in seconds. The session expires after this duration.

allowed_urls
string<uri>[]

Optional list of URLs this session is authorized to pay. If omitted, all x402-enabled URLs are allowed.

Response

Session created successfully.

An x402 payment session with a pre-authorized spending budget.

id
string

Unique session identifier (e.g., sess_xyz789).

agent_id
string

Agent whose wallet funds the session.

budget_limit
string

Maximum total amount the session can spend.

budget_spent
string

Total amount spent so far.

budget_remaining
string

Remaining budget available.

chain
string

CAIP-2 chain identifier for settlement.

status
enum<string>

Session status.

Available options:
active,
expired,
deleted
allowed_urls
string<uri>[]

URLs this session is authorized to pay.

expires_at
string<date-time>

ISO 8601 expiration timestamp.

created_at
string<date-time>

ISO 8601 creation timestamp.