Saltar al contenido principal
DocumentaciónMemoria · console.latam.ccsio.ai

Memory entries

Store, query and read memory entries, promote an entry, and erase it.

Menú de la documentación

Las descripciones de las operaciones y los campos son las del contrato, en inglés.

GET/memory/v1/entries

Query visible memory facts

Credencial
API key
Permiso
memory.read

Lists the entries the query context sees, filtered by the optional resource and state and bounded by the limit. Visibility is the scope-lattice rule: an entry is visible iff the query is in its tenant and carries the subject identity of its scope kind.

curl
curl "https://console.latam.ccsio.ai/memory/v1/entries" \
  -H "Authorization: Bearer $CCSIO_API_KEY"

Parámetros

NombreEnDescripción
X-Request-ID
opcional
headerstring

Optional request ULID. A valid ULID (upper or lowercase) is honored; when the header is absent or invalid, the runtime mints the id. The response X-Request-ID header carries the canonical uppercase form.

X-Tenant
obligatorio
headerstring

The tenancy principal (c6 identifier). Direct-seam mount: required and read from this header (absent is 400 invalid-request; a pattern miss is 400 ref-invalid). Production control-role mount: the verified principal is authoritative for tenancy and this header is not read for it (a tenant conflict is refused 403 at the authz boundary before the handler). The credential is the document's security scheme (BearerAuth or ApiKeyAuth); this header is not a credential.

X-User
opcional
headerstring

The user subject the query carries at the user scope level (c6 identifier).

X-Team
opcional
headerstring

The team subject the query carries at the team scope level (c6 identifier).

X-Agent
opcional
headerstring

The agent subject the query carries at the agent scope level (c6 identifier).

X-Session
opcional
headerstring

The session subject the query carries at the session scope level (c6 identifier).

X-Project
opcional
headerstring

The project subject the query carries at the project scope level (c6 identifier).

resource_id
opcional
querystring

Filter by resource id (c6 identifier).

resource_version
opcional
querystring

Filter by resource version (c6 version).

state
opcional
querystring

Filter by entry state. The value is a raw string, not a closed set: an unknown value matches no stored entry and returns 200 {"entries": []}, never 400.

limit
opcional
queryinteger

The maximum number of entries to return. Digits only; absent or 0 is unbounded, with no upper bound.

Respuestas

  • 200

    The visible entries.

    Esquema
    MemoryQueryResponse
    • entriesarray of MemoryEntryViewobligatorio
      • tenantstringobligatorio

        pattern ^[a-z][a-z0-9._-]{0,127}$

      • resource_refstringobligatorio

        The resource reference as '<id>.<version>'.

      • fact_idstringobligatorio

        pattern ^[a-z][a-z0-9._-]{0,127}$

      • scope_kindstringobligatorio

        pattern ^[a-z][a-z0-9._-]{0,127}$

      • scope_subjectstringobligatorio

        pattern ^[a-z][a-z0-9._-]{0,127}$

      • statestringobligatorio

        The stored entry state, rendered verbatim. Deliberately not contract-pinned to a closed set: the runtime renders whatever state the row carries, including a value outside {proposed, active, erased} on a corrupted row.

      • revisionintegerobligatorio

        at least 0

      • created_atstring (utc-second)obligatorio

        pattern ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$

      • erased_atstring (utc-second)opcional

        The erase time, present only for tombstones (erased entries) and absent otherwise. The runtime renders no null (omitempty).

        pattern ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$

  • 400

    Client refusal unrelated to authentication, including malformed input, a denied or failed request.

  • 401

    The request carries no credential, more than one, or one the platform does not accept, and is refused before the operation runs; `error.code` says why. Supply exactly one credential. Codes: invalid-request (no credential, or both Authorization:

    Leer más

    Bearer and x-api-key), api-key-invalid (a value that is not a platform API key, or a key of a kind the platform does not accept), api-key-unknown, api-key-revoked, api-key-expired, bootstrap-disabled (the one-shot installation credential, once a key exists), token-malformed (a bearer token that is not a JWT), token-algorithm-unsupported, token-signature-invalid, token-claim-invalid, token-issuer-mismatch, token-audience-mismatch, token-expired, token-not-yet-valid, issuer-untrusted, issuer-residency-mismatch (the issuer belongs to another plane), issuer-resolution-unknown, jwks-unavailable, jwks-key-not-found, staff-token-inactive (a platform operator's token), staff-not-operator, staff-directory-unavailable, identity-not-provisioned (a verified identity with no account on this plane), organization-not-found (a verified identity or key whose organization this plane does not know), internal-error (a fault while the credential is checked is refused too, fail closed), context-cancelled

  • 402

    The organization has to pay first: its standing is payment_required.

    Leer más

    The request boundary applies this payment gate to every route except an organization's billing routes, the caller's own context, organization list, onboarding, session report and personal keys, the public routes, and the routes of platform operators, who administer an organization that has to pay. The operations the gate covers declare this response. On /v1 the refusal is rendered in the OpenAI error format. Code: payment-required

  • 403

    The credential is valid but may not do this here; the request is refused by the request boundary before the handler runs, and `error.code` says which refusal. An operation may add codes of its own.

    Leer más

    Codes: policy-denied (no role of the caller holds the permission the operation needs, or the credential class may not call it: a personal API key outside inference and MCP, a route that needs a signed-in person, the one-shot installation credential outside its three steps), tenant-mismatch (the organization a path, query, body or X-Tenant header names is not the caller's own), organization-provisioning, organization-suspended, organization-disabled, organization-deleted (the state of the caller's organization), user-disabled, residency-mismatch (the organization lives on another plane), organization-selection-required (a caller with more than one organization, or a platform operator, must name one in X-Organization-Id), organization-not-selectable, no-active-organization-membership, team-not-selectable (the X-Organization-Id or X-Team-Id the caller sent does not name an organization or team it may act in), identity-managed-by-provider (a person who is not a platform operator changes an organization's status, which belongs to the identity provider), support-session-required (a platform operator reads an organization's data without an open support session)

  • 405

    The path is claimed but the request method is not allowed. Go ServeMux returns its standard plain-text response and lists permitted methods in Allow.

  • 500

    Platform failure, rendered without internal cause details.

POST/memory/v1/entries

Store one memory fact

Credencial
API key
Permiso
memory.manage
Cuerpo de la solicitud
Cuerpo de hasta 1 MiB

Stores one experienced fact under a memory resource. Idempotent on (tenant, resource, fact) plus full content: a repeat returns the stored entry; the same key with different content is 400 entry-conflict. Under ZCR the store is a no-op success (persisted=false, no row, no event). An invalid fact_id renders ref-invalid (the domain wraps ErrInvalidRef). The request body is capped at 1048576 bytes; over-cap is 400 invalid-request, never 413.

curl
curl -X POST "https://console.latam.ccsio.ai/memory/v1/entries" \
  -H "Authorization: Bearer $CCSIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "tenant": "string",
  "resource_id": "string",
  "resource_version": "string",
  "fact_id": "string",
  "scope_kind": "string",
  "scope_subject": "string",
  "payload": "string",
  "created_at": "2026-10-01T00:00:00Z"
}'
Construido con los campos obligatorios del esquema: reemplaza los valores.

Parámetros

NombreEnDescripción
X-Request-ID
opcional
headerstring

Optional request ULID. A valid ULID (upper or lowercase) is honored; when the header is absent or invalid, the runtime mints the id. The response X-Request-ID header carries the canonical uppercase form.

Cuerpo de la solicitud application/json

MemoryStoreRequest
  • tenantstringobligatorio

    pattern ^[a-z][a-z0-9._-]{0,127}$

  • resource_idstringobligatorio

    pattern ^[a-z][a-z0-9._-]{0,127}$

  • resource_versionstringobligatorio

    pattern ^(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})$

  • fact_idstringobligatorio

    pattern ^[a-z][a-z0-9._-]{0,127}$

  • scope_kindstringobligatorio

    pattern ^[a-z][a-z0-9._-]{0,127}$

  • scope_subjectstringobligatorio

    pattern ^[a-z][a-z0-9._-]{0,127}$

  • contentobjectopcional

    The c6 content reference profile: the schema const, the resource it names, the revision, the readiness flag, and at most 128 chunks. No text — the experienced text is the entry payload. camelCase per contracts/c6/v1/content.schema.json.

    • schemaVersionanyopcional

      always "c6/v1"

    • resourceRefobjectobligatorio
      • idstringobligatorio

        pattern ^[a-z][a-z0-9._-]{0,127}$

      • versionstringobligatorio

        pattern ^(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})$

    • revisionintegerobligatorio

      1 to 9007199254740991

    • readybooleanobligatorio
    • chunksarray of MemoryChunkopcional

      at most 128 items

      • refMemoryResourceRefViewobligatorio
      • citationRefMemoryResourceRefViewobligatorio
      • sourceRefMemoryResourceRefViewobligatorio
      • classificationstringobligatorio

        Valores permitidos: "public""internal""restricted"

  • retentionobjectopcional

    An entry's explicit retention: a behavior, and for a ttl a deadline (strictly after creation).

    • behaviorstringobligatorio

      Valores permitidos: "retain""ttl"

    • untilstring (utc-second)opcional

      pattern ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$

  • payloadstringobligatorio

    The experienced text, base64-encoded (standard encoding).

  • created_atstring (date-time)obligatorio

    RFC 3339; decoded to UTC and truncated to the second.

Respuestas

  • 200

    The stored entry (or the ZCR no-op).

    Esquema
    MemoryStoreResponse

    The store outcome: whether a row was persisted (false under ZCR), the entry view, and the outbox event id (empty when suppressed).

  • 400

    Client refusal unrelated to authentication, including malformed input, a denied or failed request.

  • 401

    The request carries no credential, more than one, or one the platform does not accept, and is refused before the operation runs; `error.code` says why. Supply exactly one credential. Codes: invalid-request (no credential, or both Authorization:

    Leer más

    Bearer and x-api-key), api-key-invalid (a value that is not a platform API key, or a key of a kind the platform does not accept), api-key-unknown, api-key-revoked, api-key-expired, bootstrap-disabled (the one-shot installation credential, once a key exists), token-malformed (a bearer token that is not a JWT), token-algorithm-unsupported, token-signature-invalid, token-claim-invalid, token-issuer-mismatch, token-audience-mismatch, token-expired, token-not-yet-valid, issuer-untrusted, issuer-residency-mismatch (the issuer belongs to another plane), issuer-resolution-unknown, jwks-unavailable, jwks-key-not-found, staff-token-inactive (a platform operator's token), staff-not-operator, staff-directory-unavailable, identity-not-provisioned (a verified identity with no account on this plane), organization-not-found (a verified identity or key whose organization this plane does not know), internal-error (a fault while the credential is checked is refused too, fail closed), context-cancelled

  • 402

    The organization has to pay first: its standing is payment_required.

    Leer más

    The request boundary applies this payment gate to every route except an organization's billing routes, the caller's own context, organization list, onboarding, session report and personal keys, the public routes, and the routes of platform operators, who administer an organization that has to pay. The operations the gate covers declare this response. On /v1 the refusal is rendered in the OpenAI error format. Code: payment-required

  • 403

    The credential is valid but may not do this here; the request is refused by the request boundary before the handler runs, and `error.code` says which refusal. An operation may add codes of its own.

    Leer más

    Codes: policy-denied (no role of the caller holds the permission the operation needs, or the credential class may not call it: a personal API key outside inference and MCP, a route that needs a signed-in person, the one-shot installation credential outside its three steps), tenant-mismatch (the organization a path, query, body or X-Tenant header names is not the caller's own), organization-provisioning, organization-suspended, organization-disabled, organization-deleted (the state of the caller's organization), user-disabled, residency-mismatch (the organization lives on another plane), organization-selection-required (a caller with more than one organization, or a platform operator, must name one in X-Organization-Id), organization-not-selectable, no-active-organization-membership, team-not-selectable (the X-Organization-Id or X-Team-Id the caller sent does not name an organization or team it may act in), identity-managed-by-provider (a person who is not a platform operator changes an organization's status, which belongs to the identity provider), support-session-required (a platform operator reads an organization's data without an open support session)

  • 405

    The path is claimed but the request method is not allowed. Go ServeMux returns its standard plain-text response and lists permitted methods in Allow.

  • 500

    Platform failure, rendered without internal cause details.

GET/memory/v1/entries/{fact}

Read one memory fact

Credencial
API key
Permiso
memory.read

Reads one entry by its fact id and resource. An unknown entry is 404 entry-not-found.

curl
curl "https://console.latam.ccsio.ai/memory/v1/entries/{fact}?resource_id=<resource_id>&resource_version=<resource_version>" \
  -H "Authorization: Bearer $CCSIO_API_KEY"

Parámetros

NombreEnDescripción
X-Request-ID
opcional
headerstring

Optional request ULID. A valid ULID (upper or lowercase) is honored; when the header is absent or invalid, the runtime mints the id. The response X-Request-ID header carries the canonical uppercase form.

fact
obligatorio
pathstring

The fact id path segment. It is free-form and not pattern-validated by the runtime: a value outside the c6 identifier pattern is looked up as-is and, if no entry matches, renders 404 entry-not-found, never 400.

X-Tenant
obligatorio
headerstring

The tenancy principal (c6 identifier). Direct-seam mount: required and read from this header (absent is 400 invalid-request; a pattern miss is 400 ref-invalid). Production control-role mount: the verified principal is authoritative for tenancy and this header is not read for it (a tenant conflict is refused 403 at the authz boundary before the handler). The credential is the document's security scheme (BearerAuth or ApiKeyAuth); this header is not a credential.

X-User
opcional
headerstring

The user subject the query carries at the user scope level (c6 identifier).

X-Team
opcional
headerstring

The team subject the query carries at the team scope level (c6 identifier).

X-Agent
opcional
headerstring

The agent subject the query carries at the agent scope level (c6 identifier).

X-Session
opcional
headerstring

The session subject the query carries at the session scope level (c6 identifier).

X-Project
opcional
headerstring

The project subject the query carries at the project scope level (c6 identifier).

resource_id
obligatorio
querystring

The resource id (c6 identifier) the get and promote ops bind a specific resource by. Required here — distinct from the query-entries optional filter of the same wire name: the required flag is part of the component, so the two roles cannot share one.

resource_version
obligatorio
querystring

The resource version (c6 version) the get and promote ops bind a specific resource by. Required here — distinct from the query-entries optional filter.

Respuestas

  • 200

    The entry view.

    Esquema
    MemoryEntryView
    • tenantstringobligatorio

      pattern ^[a-z][a-z0-9._-]{0,127}$

    • resource_refstringobligatorio

      The resource reference as '<id>.<version>'.

    • fact_idstringobligatorio

      pattern ^[a-z][a-z0-9._-]{0,127}$

    • scope_kindstringobligatorio

      pattern ^[a-z][a-z0-9._-]{0,127}$

    • scope_subjectstringobligatorio

      pattern ^[a-z][a-z0-9._-]{0,127}$

    • statestringobligatorio

      The stored entry state, rendered verbatim. Deliberately not contract-pinned to a closed set: the runtime renders whatever state the row carries, including a value outside {proposed, active, erased} on a corrupted row.

    • revisionintegerobligatorio

      at least 0

    • created_atstring (utc-second)obligatorio

      pattern ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$

    • erased_atstring (utc-second)opcional

      The erase time, present only for tombstones (erased entries) and absent otherwise. The runtime renders no null (omitempty).

      pattern ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$

  • 400

    Client refusal unrelated to authentication, including malformed input, a denied or failed request.

  • 401

    The request carries no credential, more than one, or one the platform does not accept, and is refused before the operation runs; `error.code` says why. Supply exactly one credential. Codes: invalid-request (no credential, or both Authorization:

    Leer más

    Bearer and x-api-key), api-key-invalid (a value that is not a platform API key, or a key of a kind the platform does not accept), api-key-unknown, api-key-revoked, api-key-expired, bootstrap-disabled (the one-shot installation credential, once a key exists), token-malformed (a bearer token that is not a JWT), token-algorithm-unsupported, token-signature-invalid, token-claim-invalid, token-issuer-mismatch, token-audience-mismatch, token-expired, token-not-yet-valid, issuer-untrusted, issuer-residency-mismatch (the issuer belongs to another plane), issuer-resolution-unknown, jwks-unavailable, jwks-key-not-found, staff-token-inactive (a platform operator's token), staff-not-operator, staff-directory-unavailable, identity-not-provisioned (a verified identity with no account on this plane), organization-not-found (a verified identity or key whose organization this plane does not know), internal-error (a fault while the credential is checked is refused too, fail closed), context-cancelled

  • 402

    The organization has to pay first: its standing is payment_required.

    Leer más

    The request boundary applies this payment gate to every route except an organization's billing routes, the caller's own context, organization list, onboarding, session report and personal keys, the public routes, and the routes of platform operators, who administer an organization that has to pay. The operations the gate covers declare this response. On /v1 the refusal is rendered in the OpenAI error format. Code: payment-required

  • 403

    The credential is valid but may not do this here; the request is refused by the request boundary before the handler runs, and `error.code` says which refusal. An operation may add codes of its own.

    Leer más

    Codes: policy-denied (no role of the caller holds the permission the operation needs, or the credential class may not call it: a personal API key outside inference and MCP, a route that needs a signed-in person, the one-shot installation credential outside its three steps), tenant-mismatch (the organization a path, query, body or X-Tenant header names is not the caller's own), organization-provisioning, organization-suspended, organization-disabled, organization-deleted (the state of the caller's organization), user-disabled, residency-mismatch (the organization lives on another plane), organization-selection-required (a caller with more than one organization, or a platform operator, must name one in X-Organization-Id), organization-not-selectable, no-active-organization-membership, team-not-selectable (the X-Organization-Id or X-Team-Id the caller sent does not name an organization or team it may act in), identity-managed-by-provider (a person who is not a platform operator changes an organization's status, which belongs to the identity provider), support-session-required (a platform operator reads an organization's data without an open support session)

  • 404

    The requested resource or path was not found.

  • 405

    The path is claimed but the request method is not allowed. Go ServeMux returns its standard plain-text response and lists permitted methods in Allow.

  • 500

    Platform failure, rendered without internal cause details.

POST/memory/v1/entries/{fact}/promote

Promote a proposed entry to active

Credencial
API key
Permiso
memory.manage

Moves a PROPOSED entry to ACTIVE (the consented-append / governed-update path).

Leer más

Declared-vs-reachable: the 200 is reachable only as the idempotent already_active duplicate of a pre-stored ACTIVE entry (already_active=true, no event); its state-changing form is currently unreachable, and so is a genuine PROPOSED-to-ACTIVE transition — the surviving runtime defect (the pg SaveEntry reports key existence before the state save; the erase side of the same existence report is resolved), recorded for a separate follow-up change, promote-only. The reachable outcomes today are promote of an existing PROPOSED entry (400 entry-exists), of an ERASED entry (400 entry-erased), or of a corrupted-state row (400 entry-illegal-transition). An unknown entry is 404 entry-not-found.

curl
curl -X POST "https://console.latam.ccsio.ai/memory/v1/entries/{fact}/promote?resource_id=<resource_id>&resource_version=<resource_version>" \
  -H "Authorization: Bearer $CCSIO_API_KEY"

Parámetros

NombreEnDescripción
X-Request-ID
opcional
headerstring

Optional request ULID. A valid ULID (upper or lowercase) is honored; when the header is absent or invalid, the runtime mints the id. The response X-Request-ID header carries the canonical uppercase form.

fact
obligatorio
pathstring

The fact id path segment. It is free-form and not pattern-validated by the runtime: a value outside the c6 identifier pattern is looked up as-is and, if no entry matches, renders 404 entry-not-found, never 400.

X-Tenant
obligatorio
headerstring

The tenancy principal (c6 identifier). Direct-seam mount: required and read from this header (absent is 400 invalid-request; a pattern miss is 400 ref-invalid). Production control-role mount: the verified principal is authoritative for tenancy and this header is not read for it (a tenant conflict is refused 403 at the authz boundary before the handler). The credential is the document's security scheme (BearerAuth or ApiKeyAuth); this header is not a credential.

X-User
opcional
headerstring

The user subject the query carries at the user scope level (c6 identifier).

X-Team
opcional
headerstring

The team subject the query carries at the team scope level (c6 identifier).

X-Agent
opcional
headerstring

The agent subject the query carries at the agent scope level (c6 identifier).

X-Session
opcional
headerstring

The session subject the query carries at the session scope level (c6 identifier).

X-Project
opcional
headerstring

The project subject the query carries at the project scope level (c6 identifier).

resource_id
obligatorio
querystring

The resource id (c6 identifier) the get and promote ops bind a specific resource by. Required here — distinct from the query-entries optional filter of the same wire name: the required flag is part of the component, so the two roles cannot share one.

resource_version
obligatorio
querystring

The resource version (c6 version) the get and promote ops bind a specific resource by. Required here — distinct from the query-entries optional filter.

Respuestas

  • 200

    The entry after the promote.

    Esquema
    MemoryPromoteResponse
    • entryobjectobligatorio

      The wire projection of a stored entry. resource_ref renders as '<id>.<version>'; times are UTC second precision.

      • tenantstringobligatorio

        pattern ^[a-z][a-z0-9._-]{0,127}$

      • resource_refstringobligatorio

        The resource reference as '<id>.<version>'.

      • fact_idstringobligatorio

        pattern ^[a-z][a-z0-9._-]{0,127}$

      • scope_kindstringobligatorio

        pattern ^[a-z][a-z0-9._-]{0,127}$

      • scope_subjectstringobligatorio

        pattern ^[a-z][a-z0-9._-]{0,127}$

      • statestringobligatorio

        The stored entry state, rendered verbatim. Deliberately not contract-pinned to a closed set: the runtime renders whatever state the row carries, including a value outside {proposed, active, erased} on a corrupted row.

      • revisionintegerobligatorio

        at least 0

      • created_atstring (utc-second)obligatorio

        pattern ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$

      • erased_atstring (utc-second)opcional

        The erase time, present only for tombstones (erased entries) and absent otherwise. The runtime renders no null (omitempty).

        pattern ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$

    • event_idstringobligatorio
    • already_activebooleanobligatorio
  • 400

    Client refusal unrelated to authentication, including malformed input, a denied or failed request.

  • 401

    The request carries no credential, more than one, or one the platform does not accept, and is refused before the operation runs; `error.code` says why. Supply exactly one credential. Codes: invalid-request (no credential, or both Authorization:

    Leer más

    Bearer and x-api-key), api-key-invalid (a value that is not a platform API key, or a key of a kind the platform does not accept), api-key-unknown, api-key-revoked, api-key-expired, bootstrap-disabled (the one-shot installation credential, once a key exists), token-malformed (a bearer token that is not a JWT), token-algorithm-unsupported, token-signature-invalid, token-claim-invalid, token-issuer-mismatch, token-audience-mismatch, token-expired, token-not-yet-valid, issuer-untrusted, issuer-residency-mismatch (the issuer belongs to another plane), issuer-resolution-unknown, jwks-unavailable, jwks-key-not-found, staff-token-inactive (a platform operator's token), staff-not-operator, staff-directory-unavailable, identity-not-provisioned (a verified identity with no account on this plane), organization-not-found (a verified identity or key whose organization this plane does not know), internal-error (a fault while the credential is checked is refused too, fail closed), context-cancelled

  • 402

    The organization has to pay first: its standing is payment_required.

    Leer más

    The request boundary applies this payment gate to every route except an organization's billing routes, the caller's own context, organization list, onboarding, session report and personal keys, the public routes, and the routes of platform operators, who administer an organization that has to pay. The operations the gate covers declare this response. On /v1 the refusal is rendered in the OpenAI error format. Code: payment-required

  • 403

    The credential is valid but may not do this here; the request is refused by the request boundary before the handler runs, and `error.code` says which refusal. An operation may add codes of its own.

    Leer más

    Codes: policy-denied (no role of the caller holds the permission the operation needs, or the credential class may not call it: a personal API key outside inference and MCP, a route that needs a signed-in person, the one-shot installation credential outside its three steps), tenant-mismatch (the organization a path, query, body or X-Tenant header names is not the caller's own), organization-provisioning, organization-suspended, organization-disabled, organization-deleted (the state of the caller's organization), user-disabled, residency-mismatch (the organization lives on another plane), organization-selection-required (a caller with more than one organization, or a platform operator, must name one in X-Organization-Id), organization-not-selectable, no-active-organization-membership, team-not-selectable (the X-Organization-Id or X-Team-Id the caller sent does not name an organization or team it may act in), identity-managed-by-provider (a person who is not a platform operator changes an organization's status, which belongs to the identity provider), support-session-required (a platform operator reads an organization's data without an open support session)

  • 404

    The requested resource or path was not found.

  • 405

    The path is claimed but the request method is not allowed. Go ServeMux returns its standard plain-text response and lists permitted methods in Allow.

  • 500

    Platform failure, rendered without internal cause details.

POST/memory/v1/entries/erase

Erase a memory fact (terminal)

Credencial
API key
Permiso
memory.manage
Cuerpo de la solicitud
Cuerpo de hasta 1 MiB

Erases an entry to the terminal erased tombstone, purging the payload bytes while preserving the row's metadata and retention, and appends the validated dispatch to the deletion journal. The dispatch's operationId is the idempotency key.

Leer más

The 200 is reachable: erasing an existing PROPOSED or ACTIVE entry renders 200 with state "erased", a non-empty event_id, and the owner-scoped journal_head (the dispatching owner's own head — an independent sequence space per (tenant, project) under the shared journal id); the zero-trust tenant/project checks remain authoritative — the dispatch owner must match the journal tenant and the entry's project, and a mismatch is 400 dispatch-invalid before any side effect. Erasing an ERASED entry is 400 entry-erased (the tombstone never moves again); erasing a corrupted-state row is 400 entry-illegal-transition. An unknown entry is 404 entry-not-found. A GET to this path is claimed by the {fact} wildcard and answers 400 (missing resource query parameters), never 405. The request body is capped at 1048576 bytes; over-cap is 400 invalid-request, never 413. The dispatch is a JSON string decoded as the untagged domain.ErasureDispatch, which renders PascalCase on the wire; the canonical camelCase fixture (contracts/context-erasure/v1/fixtures/memory-dispatch.json) does not conform to that spelling — posting it verbatim is rejected (400 dispatch-invalid): its camelCase fields decode case-insensitively but the owner object (tenantId/projectId) does not match the wire's PascalCase owner (Tenant/Project), so the recomputed tombstone digest fails to verify. The recorded defect is the fixture's camelCase spelling, not the wire.

curl
curl -X POST "https://console.latam.ccsio.ai/memory/v1/entries/erase" \
  -H "Authorization: Bearer $CCSIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "tenant": "string",
  "resource_id": "string",
  "resource_version": "string",
  "fact_id": "string",
  "dispatch": "string"
}'
Construido con los campos obligatorios del esquema: reemplaza los valores.

Parámetros

NombreEnDescripción
X-Request-ID
opcional
headerstring

Optional request ULID. A valid ULID (upper or lowercase) is honored; when the header is absent or invalid, the runtime mints the id. The response X-Request-ID header carries the canonical uppercase form.

Cuerpo de la solicitud application/json

MemoryEraseRequest
  • tenantstringobligatorio

    pattern ^[a-z][a-z0-9._-]{0,127}$

  • resource_idstringobligatorio

    pattern ^[a-z][a-z0-9._-]{0,127}$

  • resource_versionstringobligatorio

    pattern ^(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})$

  • fact_idstringobligatorio

    pattern ^[a-z][a-z0-9._-]{0,127}$

  • dispatchstringobligatorio

    The context-erasure-dispatch/v1 command, JSON-encoded as a string.

Respuestas

  • 200

    The erased entry and the journal head reached.

    Esquema
    MemoryEraseResponse
    • entryobjectobligatorio

      The wire projection of a stored entry. resource_ref renders as '<id>.<version>'; times are UTC second precision.

      • tenantstringobligatorio

        pattern ^[a-z][a-z0-9._-]{0,127}$

      • resource_refstringobligatorio

        The resource reference as '<id>.<version>'.

      • fact_idstringobligatorio

        pattern ^[a-z][a-z0-9._-]{0,127}$

      • scope_kindstringobligatorio

        pattern ^[a-z][a-z0-9._-]{0,127}$

      • scope_subjectstringobligatorio

        pattern ^[a-z][a-z0-9._-]{0,127}$

      • statestringobligatorio

        The stored entry state, rendered verbatim. Deliberately not contract-pinned to a closed set: the runtime renders whatever state the row carries, including a value outside {proposed, active, erased} on a corrupted row.

      • revisionintegerobligatorio

        at least 0

      • created_atstring (utc-second)obligatorio

        pattern ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$

      • erased_atstring (utc-second)opcional

        The erase time, present only for tombstones (erased entries) and absent otherwise. The runtime renders no null (omitempty).

        pattern ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$

    • journal_headobjectobligatorio

      A {JournalID, Sequence, ChainDigest} position in the deletion chain as the untagged domain.JournalHead renders on the wire (the erase's journal_head and the page's From/Head). Sequence zero is the explicit genesis.

      • JournalIDstringobligatorio

        pattern ^[a-z][a-z0-9._-]{0,127}$

      • Sequenceintegerobligatorio

        at least 0

      • ChainDigeststringobligatorio

        pattern ^sha256:[0-9a-f]{64}$

    • event_idstringobligatorio
  • 400

    Client refusal unrelated to authentication, including malformed input, a denied or failed request.

  • 401

    The request carries no credential, more than one, or one the platform does not accept, and is refused before the operation runs; `error.code` says why. Supply exactly one credential. Codes: invalid-request (no credential, or both Authorization:

    Leer más

    Bearer and x-api-key), api-key-invalid (a value that is not a platform API key, or a key of a kind the platform does not accept), api-key-unknown, api-key-revoked, api-key-expired, bootstrap-disabled (the one-shot installation credential, once a key exists), token-malformed (a bearer token that is not a JWT), token-algorithm-unsupported, token-signature-invalid, token-claim-invalid, token-issuer-mismatch, token-audience-mismatch, token-expired, token-not-yet-valid, issuer-untrusted, issuer-residency-mismatch (the issuer belongs to another plane), issuer-resolution-unknown, jwks-unavailable, jwks-key-not-found, staff-token-inactive (a platform operator's token), staff-not-operator, staff-directory-unavailable, identity-not-provisioned (a verified identity with no account on this plane), organization-not-found (a verified identity or key whose organization this plane does not know), internal-error (a fault while the credential is checked is refused too, fail closed), context-cancelled

  • 402

    The organization has to pay first: its standing is payment_required.

    Leer más

    The request boundary applies this payment gate to every route except an organization's billing routes, the caller's own context, organization list, onboarding, session report and personal keys, the public routes, and the routes of platform operators, who administer an organization that has to pay. The operations the gate covers declare this response. On /v1 the refusal is rendered in the OpenAI error format. Code: payment-required

  • 403

    The credential is valid but may not do this here; the request is refused by the request boundary before the handler runs, and `error.code` says which refusal. An operation may add codes of its own.

    Leer más

    Codes: policy-denied (no role of the caller holds the permission the operation needs, or the credential class may not call it: a personal API key outside inference and MCP, a route that needs a signed-in person, the one-shot installation credential outside its three steps), tenant-mismatch (the organization a path, query, body or X-Tenant header names is not the caller's own), organization-provisioning, organization-suspended, organization-disabled, organization-deleted (the state of the caller's organization), user-disabled, residency-mismatch (the organization lives on another plane), organization-selection-required (a caller with more than one organization, or a platform operator, must name one in X-Organization-Id), organization-not-selectable, no-active-organization-membership, team-not-selectable (the X-Organization-Id or X-Team-Id the caller sent does not name an organization or team it may act in), identity-managed-by-provider (a person who is not a platform operator changes an organization's status, which belongs to the identity provider), support-session-required (a platform operator reads an organization's data without an open support session)

  • 404

    The requested resource or path was not found.

  • 405

    The path is claimed but the request method is not allowed. Go ServeMux returns its standard plain-text response and lists permitted methods in Allow.

  • 500

    Platform failure, rendered without internal cause details.

Generado a partir de los contratos de la plataforma en el commit 5f833620.

Explora la plataforma

Obtén tu primera key API

El registro está abierto. Cuatro pasos hasta tu primera llamada: crea tu cuenta, crea tu organización, crea tu API key y empieza a usarla.

  1. 01Crea tu cuenta
  2. 02Crea tu organización
  3. 03Crea tu API key
  4. 04Empieza a usarla