The API Reference covers operations typically used during setup, bulk loading, and administrative tasks. For real-time agent interactions (conversation ingestion, context fetch, compaction), use the Python SDK which handles authentication, retries, streaming, and the full agent loop automatically.
Authentication
Synap uses API key authentication for all REST API calls. Your API key is generated when you create an instance in the Synap Dashboard.See Authentication for a detailed walkthrough of the bootstrap flow and credential lifecycle.
API Versioning
Synap uses URL-path versioning for SDK-facing endpoints and a separate namespace for dashboard operations:| Prefix | Purpose | Example |
|---|---|---|
/v1/ | SDK and programmatic access | POST /v1/memories |
/dashboard/ | Dashboard and admin operations | GET /dashboard/instances |
/instances/ | Instance-scoped configuration | POST /instances/{id}/memory-architecture/init |
Request Format
All request bodies must be JSON with theContent-Type: application/json header.
Pagination
All list endpoints support cursor-based pagination with the following query parameters:Page number to retrieve. Defaults to
1.Number of items per page. Defaults to
20. Maximum 100.Rate Limiting
API requests are rate-limited per API key. When you exceed the limit, the API returns a429 Too Many Requests response.
| Tier | Requests per minute | Burst |
|---|---|---|
| Free | 60 | 10 |
| Pro | 600 | 50 |
| Enterprise | Custom | Custom |
| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests per window |
X-RateLimit-Remaining | Requests remaining in current window |
X-RateLimit-Reset | Unix timestamp when the window resets |
Retry-After | Seconds to wait before retrying (only on 429) |
Correlation IDs
Every API response includes anX-Correlation-Id header containing a unique identifier for that request. This ID is propagated through the entire request lifecycle, including background jobs like ingestion.
Always include the
X-Correlation-Id when contacting support. It allows the team to trace the exact request path and identify issues quickly.Response Format
Success Responses
Single resource responses return the resource directly:Error Responses
All errors follow a consistent format:error field contains a human-readable message. The code field contains a machine-readable error code suitable for programmatic handling. The details object provides additional context specific to the error.
See the Error Codes reference for a complete list.
HTTP Status Codes
| Status | Meaning |
|---|---|
200 OK | Request succeeded. Response body contains the requested resource. |
201 Created | Resource was created successfully. |
400 Bad Request | The request body or parameters are invalid. Check the details field. |
401 Unauthorized | Missing or invalid authentication credentials. |
403 Forbidden | Valid credentials but insufficient permissions for this operation. |
404 Not Found | The requested resource does not exist. |
409 Conflict | The request conflicts with the current state (e.g., applying an already-active config). |
429 Too Many Requests | Rate limit exceeded. Retry after the Retry-After period. |
500 Internal Server Error | An unexpected error occurred on Synap’s side. Contact support with the correlation ID. |
503 Service Unavailable | Synap is temporarily unavailable. Retry with exponential backoff. |
SDKs
The official Python SDK wraps all API endpoints and handles authentication, retries, and streaming automatically.See the Installation guide for full setup instructions for both SDKs.