REST API
Synchronex API
Programmatic access to Synchronex memory, scope, BYOK credentials, kernel exports, and AI cost telemetry.
8 min read
Base URL
Production requests use https://synchronex.ai/api/v1. Local development uses http://localhost:3010/api/v1.
Authenticate with Authorization: Bearer sx_live_YOUR_KEY or an OAuth access token beginning with sxo_.
Endpoints
/api/v1/memory/identityGet Identity Kernel
/api/v1/memory/identityUpdate Identity Kernel
/api/v1/memory/product/{name}/stateGet Product State
/api/v1/memory/product/{name}/stateUpdate Product State
/api/v1/memory/searchSearch memory and product state
/api/v1/memory/export-mifExport portable Memory Interchange Format
/api/v1/memory/import-mifImport portable Memory Interchange Format
/api/v1/memory/consolidateRun async memory consolidation
/api/v1/memory/decisions/searchSearch Decision Index
/api/v1/memory/decisionsCreate Decision
/api/v1/memory/decisions/{id}Delete Decision
/api/v1/ingest/{project_id}Ingest Project Signal
/api/v1/ai/costsGet AI Cost Summary
/api/v1/ai/costs/{product}Get Product AI Costs
/api/v1/byokList BYOK Credentials
/api/v1/byokCreate BYOK Credential
/api/v1/byok/{id}Delete BYOK Credential
/api/v1/kernel/exportExport Active Kernel
/api/v1/kernel/exportExport Active Kernel
/api/v1/scopeGet Active Scope
/api/v1/scopeSet Active Scope
First Read
curl https://synchronex.ai/api/v1/memory/identity \
-H "Authorization: Bearer sx_live_YOUR_KEY"const res = await fetch('https://synchronex.ai/api/v1/memory/identity', {
headers: { Authorization: 'Bearer sx_live_YOUR_KEY' },
})
const identity = await res.json()Write Schemas
POST and PUT endpoints accept JSON and return JSON unless the endpoint is an export route.
| Endpoint | Body shape |
|---|---|
| /memory/identity PUT | { identity?, products?, constraints?, model_preferences? } |
| /memory/product/{name}/state POST | { status?, what_works?, what_is_blocked?, open_questions?, next_session_starts_here? } |
| /memory/decisions POST | { decision, product_name, reasoning?, affects_products? } |
| /byok POST | { service, label, key } |
| /scope PATCH | { workspace_id: string | null } |
Pagination and Limits
List endpoints use bounded query parameters such as limit, offset, and days where applicable. Rate limit headers are included on authenticated API responses and reflect the active minute or day window.
| Header | Meaning |
|---|---|
| X-RateLimit-Limit | Maximum requests in the active window |
| X-RateLimit-Remaining | Requests remaining in the active window |
| X-RateLimit-Reset | Unix timestamp when the active window resets |
| Retry-After | Seconds to wait after a 429 response |
OpenAPI
Machine-readable OpenAPI 3.1 is served from /api/v1/openapi.json, /api/v1/openapi.yaml, and the root alias /openapi.yaml. Update src/lib/api/v1/openapi.ts in the same PR as any v1 route contract change so SDK generation stays aligned.
Error Response
{
"error": {
"code": "UNAUTHORIZED",
"message": "Missing, expired, or revoked bearer token."
}
}Common codes: UNAUTHORIZED, FORBIDDEN, NOT_FOUND, RATE_LIMITED, VALIDATION_ERROR, TIER_REQUIRED, INTERNAL_ERROR.
{
"error": "rate_limit_exceeded",
"retry_after": 30,
"limit": 60,
"remaining": 0,
"reset_at": "2026-05-03T12:01:00.000Z"
}