REST API Overview
The Estuary REST API lets you manage characters, read conversation history, and query the memory system programmatically. All endpoints return JSON.
Base URL
https://api.estuary-ai.com
Authentication
Authenticate every request with an X-API-Key header:
curl https://api.estuary-ai.com/api/v1/characters \
-H "X-API-Key: est_your_api_key"
Generate API keys from the Estuary Dashboard under Settings > API Keys. See Authentication for details.
Player Scoping
The Characters and Character Generation APIs accept an optional X-Player-Id header. When present, operations are scoped to characters owned by that player. See Characters API -- Authentication & Player Scoping for the full rules.
Permanent Shares
The Shares API lets you mint permanent or expiring shareable links for a character. Permanent shares are designed for physical carriers (NFC tags, QR codes, print) and never expire. Once a recipient calls POST /api/v1/share/{id}/open, they receive a short-lived session token (sst_...) that the SDK uses in place of an API key.
Endpoints
:::info agent_id = character_id
The Conversations and Memories APIs use agent_id in the URL path. This is the same ID returned as id by the Characters API.
:::
Pagination
List endpoints support limit and offset query parameters:
curl "https://api.estuary-ai.com/api/v1/characters?limit=10&offset=20" \
-H "X-API-Key: est_your_api_key"
Paginated responses include total, limit, and offset fields.
Errors
Error responses use standard HTTP status codes with a JSON body:
{
"detail": "Character not found"
}
| Status | Meaning |
|---|---|
400 | Bad request -- invalid parameters |
401 | Unauthorized -- missing or invalid API key |
404 | Not found -- resource doesn't exist or isn't owned by this account |
500 | Server error |