Skip to content

Reference

HTTP API v1

The HTTP API is the canonical wire contract beneath the Palo SDK and CLI. Requests are JSON. Responses include an explicit contract version and operation state. Tenant and user scope come from the verified credential context.

Base URL
https://api.mpalo.com
Contract
v1
Content type
application/json
Request identity
X-Request-Id and Idempotency-Key where supported.

Authentication and headers

Send an API key as a bearer credential or in the API-key header accepted by the deployment. Read-only infrastructure routes also accept a signed browser session. Memory operations and metered smoke tests require an API key and an active executable storage connection. A configured BYO connection is rejected before the current runtime can touch data or ledgers.

Authorization: Bearer $PALO_API_KEY
Content-Type: application/json
X-Request-Id: request-optional-client-id
Idempotency-Key: logical-write-event-42

Do not send session cookies or API keys to third-party logging services. The server must return neutral authentication failures and must not reveal internal identifiers or stack traces.

Memory endpoints

The memory endpoints run the reference runtime: submitted text is stored encrypted, recall ranks stored memories by word overlap with the cue, and the rendered context is the selected memories' own text. No model runs, and responses say so in provenance and data_policy. They require an API key. A write returns not_retained until the account owner turns on Store memories sent through the API in Mind settings.

MethodPathPurposeRetry noteStatus
POST/api/v1/memory/writeAccept one memory event when storage, consent, and policy allow.Use the same idempotency key for an uncertain retry.Available
POST/api/v1/memory/recallRetrieve and render related memories for a cue.Retry according to retryable response and timeout policy.Available
DELETE/api/v1/memoryDelete retained private-memory state for one namespace.Confirm the namespace in the caller's workflow.Available
curl -X POST https://api.mpalo.com/api/v1/memory/write \\
  -H "Authorization: Bearer $PALO_API_KEY" \\
  -H "Content-Type: application/json" \\
  -H "Idempotency-Key: conversation-42-message-7" \\
  -d '{
    "contract_version": "v1",
    "operation": "memory.write",
    "namespace": "conversation",
    "idempotency_key": "conversation-42-message-7",
    "event": {
      "event_id": "message_7",
      "content": {"text": "The appointment moved to Monday."},
      "source": {"type": "external_application", "id": "conversation-42-message-7"}
    }
  }'

Infrastructure endpoints

Not available yet. The infrastructure endpoints are part of contract v1 and described here so integrations can be built against it, but the hosted API does not serve them today. Calls return an error. Each row changes to Available when its route ships.

MethodPathPurposeStatus
GET/api/v1/infrastructure/capabilitiesReturn enabled operations, guarantees, and limitations.Not available yet
GET/api/v1/infrastructure/healthReturn required service readiness and the provider, model, deployment, and environment identity that produced the check.Not available yet
GET/api/v1/infrastructure/statusReturn combined health, monitoring, anomaly, and consent state.Not available yet
GET/api/v1/infrastructure/eventsReturn redacted event history with limit and offset.Not available yet
GET/api/v1/infrastructure/usageReturn request volume, operations, charges, and source-of-truth metadata.Not available yet
GET/api/v1/infrastructure/exportReturn a JSON export for the selected namespace.Not available yet

The health response requires provider, model_version, deployment_version (which may be null when no deployment identifier is available), and environment. Consumers should fail closed when any of these identity fields is missing or malformed.

curl "https://api.mpalo.com/api/v1/infrastructure/status" \\
  -H "Authorization: Bearer $PALO_API_KEY"

curl "https://api.mpalo.com/api/v1/infrastructure/events?limit=100&offset=100" \\
  -H "Authorization: Bearer $PALO_API_KEY"

Responses and errors

Success responses contain operation-specific payload keys. v1 failure responses use error, code, request_id, retryable, and bounded details together with the correct HTTP status. Error bodies do not contain stack traces, secrets, or internal database identifiers.

{
  "error": "Authentication required. Provide an API Key or session token.",
  "code": "AUTHENTICATION_REQUIRED",
  "request_id": "req_123",
  "retryable": false,
  "details": {}
}
State is part of the contract.

A 200 response may be retained, not_retained, or no_data. Check the operation state, provenance, and usage before treating the call as complete.

OpenAPI and schemas

Use the published OpenAPI document to generate clients or validate requests. The document and response schemas are versioned with the infrastructure contract.