API
API Reference
Orbit exposes the same core loop in SDK and REST form: ingest, retrieve, feedback, status.
Authentication
All protected endpoints require Authorization: Bearer <token> (JWT or Orbit API key).
For Orbit Cloud, create/manage API keys in Dashboard. API key material is shown once at creation/rotation.
Required JWT claims: sub, iat, exp, iss, aud. POST endpoints support idempotency via Idempotency-Key. Dashboard key endpoints require write scope (or keys:write).
SDK methods
Sync client: MemoryEngine. Async client: AsyncMemoryEngine with async equivalents.
Method
Returns
Description
ingest(content, event_type?, metadata?, entity_id?)IngestResponseWrite one memory event
retrieve(query, limit?, entity_id?, event_type?, time_range?)RetrieveResponseFetch ranked memory context
feedback(memory_id, helpful, outcome_value?)FeedbackResponseSend outcome signal for learning
status()StatusResponseUsage, storage, quota status
ingest_batch(events)list[IngestResponse]Batch ingest for throughput
feedback_batch(feedback)list[FeedbackResponse]Batch feedback writes
REST endpoints
Method
Path
Description
POST
/v1/ingestStore one memory event
GET
/v1/retrieveRetrieve ranked memories
POST
/v1/feedbackStore feedback signal
POST
/v1/ingest/batchBatch event ingest
POST
/v1/feedback/batchBatch feedback ingest
GET
/v1/statusQuota and storage visibility
GET
/v1/healthHealth/liveness check
GET
/v1/metricsPrometheus metrics
GET
/v1/memoriesList stored memories
POST
/v1/auth/validateJWT validation endpoint
POST
/v1/dashboard/keysIssue API key (returns plaintext once)
GET
/v1/dashboard/keysList keys (paginated)
POST
/v1/dashboard/keys/{key_id}/revokeRevoke one key
POST
/v1/dashboard/keys/{key_id}/rotateRotate key (create new + revoke old)
Rate limit and idempotency headers
>
X-RateLimit-Limit>
X-RateLimit-Remaining>
X-RateLimit-Reset>
Retry-After (on 429)>
X-Idempotency-Replayed (true|false)Inference metadata in retrieval responses
For inferred facts and conflict guards, Orbit includes both provenance and normalized fact metadata in memory.metadata.
metadata = {
"intent": "inferred_user_fact_conflict",
"inference_provenance": {
"inference_type": "fact_conflict_guard_v1",
"clarification_required": true,
"conflicts_with_memory_ids": ["<memory-id>"]
},
"fact_inference": {
"fact_key": "allergy:pineapple",
"fact_type": "constraint",
"status": "contested",
"clarification_required": true
}
}Next
SDK Methods ->