Skip to main content
This page lists what POST /otel/v1/traces accepts, why it refuses a batch, and the two privacy controls that act after a trace arrives: the organization’s content policy and content deletion. To keep content from leaving your process in the first place, follow Control trace privacy.

Ingest limits

Limits apply to each request. These are the service defaults. The atlanai SDK splits its exports into payloads of at most 1 MiB by default. See ATLAN_MAX_PAYLOAD_BYTES in Configuration.

Rejected batches

A refused request stores nothing: the whole batch is rejected, not individual spans. The response is an application/problem+json body whose code names the cause. A 200 means the batch was accepted and durably queued. The trace becomes readable after processing; see Imported trace not found. After a timeout or 5xx, follow Import outcome unknown.

Organization content policy

A trace has two parts. Its structure is the timeline, span names, timings, models, token counts, and costs. Its content is the prompts, responses, tool arguments and results, and title. The organization’s content policy decides whether Atlan stores the content part of new traces. Usage analytics are always stored.
  • Who can read it: every member of the organization, with GET /registry/v1/organisations/trace-content-policy.
  • Who can change it: organization admins with settings access, with PUT /registry/v1/organisations/trace-content-policy. Others get 403. The change is audited.
  • What it can’t do: the policy only narrows. It cannot store content that a sender already dropped, such as with trace_content=False in the SDK. Changing it does not recover dropped content or erase stored content.
In the app, open Settings → Personal → Trace privacy, select Organization settings, and review Store session content. See Manage trace privacy.
The response is the saved policy, with capture, updated_at, and updated_by. A value other than store, drop, or null is refused with 400.

Delete a trace’s content

DELETE /registry/v1/users/{user_id}/traces/{trace_id}/content?workspace_id=... permanently removes one trace’s stored content.
  • Who can delete: the trace’s creator, or an organization admin with settings access. An admin addresses the trace under its creator’s user_id.
  • What it removes: prompts, responses, tool arguments and results, and the trace title. The structure, including token counts and costs, stays.
  • When: reads return structure only from the moment the request succeeds. Stored copies are then removed in the background.
  • Permanence: content arriving later for a deleted trace is refused, and turning storage back on does not restore it.
With the SDK, call client.users.traces.delete_content(user_id, trace_id) with a workspace set on the client. See Users.

Retention

The trace store has no automatic expiry. Deleting content removes only the content; there is no public operation that deletes a trace’s structure.