Base URL
All API requests are made to:Authentication
Authenticate every request by including your API token in theAuthorization header:
| Permission | Description |
|---|---|
read | Read balances, transactions, and deposit addresses |
pay | Send payments via USDC, fiat, or unified pay |
x402 | Make x402 protocol payments to URLs |
Content Type
All requests and responses use JSON:Monetary Values
Unwall uses integer representations for all monetary values to avoid floating-point precision issues.| Currency | Unit | Example |
|---|---|---|
| USD | Cents | 5000 = $50.00 |
| USDC | Micro-USDC | 1000000 = 1.00 USDC |
Pagination
List endpoints support pagination withlimit and offset parameters.
Number of results to return. Min 1, max 200.
Number of results to skip before returning.
Whether there are more results beyond the current page.
Total number of matching results.
Idempotency
To safely retry requests without duplicating side effects, include anidempotency_key in the request body of any write operation.
A unique key to prevent duplicate operations. Alphanumeric characters plus
_, -, :, and . are allowed. Max 255 characters.Rate Limits
API requests are rate-limited to 100 requests per minute per token. When the rate limit is exceeded, the API returns HTTP429 Too Many Requests with a Retry-After header indicating how many seconds to wait before retrying.
Error Format
All errors return a JSON object with adetail field containing a human-readable error message:
Status Codes
| Code | Description |
|---|---|
200 | OK — Request succeeded |
201 | Created — Resource created successfully |
400 | Bad Request — Invalid parameters or missing required fields |
401 | Unauthorized — Missing or invalid API token |
403 | Forbidden — Token lacks the required permission |
404 | Not Found — Resource does not exist |
429 | Too Many Requests — Rate limit exceeded |
502 | Bad Gateway — Upstream service error (retry with backoff) |