---
title: "List a table's enrichment audit trail"
method: GET
path: "/tables/{table_id}/enrichment-audit-logs/"
tags: ["table-enrichment-audit-logs"]
---

# List a table's enrichment audit trail

`GET /tables/{table_id}/enrichment-audit-logs/`

## Request

- Base URL: `https://api.getoneprofile.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.getoneprofile.ai/tables/{table_id}/enrichment-audit-logs/`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

List the durable audit trail of the table's enrichment actions (configured, edited, run at a scope, cancelled, and the settled per-column cost), newest first. Optionally scoped to one column. Kept indefinitely: the retention policy that strips verbose run records never touches this trail.

A change the AI Assistant made through a granted workspace action lands as `assistant_applied`, naming the proposal it came from, so the change and the card that asked for it read together.

## Path parameters

- `table_id` string, uuid, required

## Query parameters

- `column_id` string, uuid, nullable: Restrict to one column's entries.
- `limit` integer: The number of items to return.
- `order_by` 'created_at'
- `order_direction` 'asc' | 'desc'
- `cursor` string, nullable: Set the cursor to the next or previous page. You can get the cursor from the previous page's response.

## Response `200`

Successful Response

- PaginatedResponseEnrichmentAuditLogReadSchema
  - `data` EnrichmentAuditLogReadSchema[]: The list of ResponseItems.
    - `action` 'configured' | 'edited' | 'run_requested' | 'run_cancelled' | 'cost_incurred' | 'assistant_applied' | 'assistant_undone', required: Action types for enrichment audit logs. Beyond the usual created/updated pair, enrichment actions spend organisational money, so run requests, cancellations and the settled cost each get their own entry.
    - `actor` string, required
    - `actor_display_name` string, nullable
    - `actor_type` 'user' | 'api' | 'system', required: Who authorised an action.
    - `column_id` string, uuid, nullable, required
    - `context` union, required
      - EnrichmentConfiguredContextSchema: Context for an enrichment column's creation.
        - `action_key` string, required
        - `column_display_name` string, required
        - `model_key` string, nullable
        - `output_mode` string, required
        - `type` 'configured'
      - EnrichmentEditedContextSchema: Context for an enrichment column's edit.
        - `changes` EnrichmentAuditFieldChangeSchema[], required
          - `field` string, required
          - `new_value` unknown, required
          - `old_value` unknown, required
        - `column_display_name` string, required
        - `type` 'edited'
      - EnrichmentRunRequestedContextSchema: Context for a run requested at a given scope.
        - `column_display_name` string, required
        - `credits_estimated` number, nullable
        - `run_id` string, uuid, nullable
        - `scope` string, required
        - `type` 'run_requested'
      - EnrichmentRunCancelledContextSchema: Context for a run cancellation.
        - `run_ids` string[], required
        - `type` 'run_cancelled'
      - EnrichmentCostIncurredContextSchema: Context for a run's settled per-column cost.
        - `cells_failed` integer, required
        - `cells_no_data` integer, required
        - `cells_skipped` integer, required
        - `cells_succeeded` integer, required
        - `credits_charged` number, required
        - `run_id` string, uuid, required
        - `run_status` string, required
        - `type` 'cost_incurred'
      - ExportConfiguredContextSchema: Context for an export column's creation or reconfiguration.
        - `batched` boolean
        - `column_display_name` string
        - `export_action` string
        - `integration_id` string, uuid, nullable
        - `integration_type` string
        - `record_type` string
        - `type` 'export_configured'
      - ExportRunRequestedContextSchema: Context for an export run requested at a given scope.
        - `column_display_name` string
        - `integration_type` string
        - `record_type` string
        - `run_id` string, uuid, nullable
        - `scope` string
        - `type` 'export_run_requested'
      - ExportFileDownloadedContextSchema: Context for a table's file download.
        - `filename` string
        - `format` string
        - `scope` string
        - `table_display_name` string
        - `type` 'file_exported'
      - AssistantAppliedContextSchema: Context for a change the AI Assistant made through a granted workspace action.
        - `column_display_name` string
        - `proposal_id` string, uuid, nullable
        - `summary` string
        - `type` 'assistant_applied'
        - `verb` string
      - AssistantUndoneContextSchema: Context for the reversal of an assistant's change to the table. History only: undo was taken out of the assistant and nothing writes this any more. It stays so trails written before that still read back.
        - `proposal_id` string, uuid, nullable
        - `summary` string
        - `type` 'assistant_undone'
        - `verb` string
      - UnrecognisedEnrichmentContextSchema: A context this build cannot parse. Read-side only: nothing ever writes it. The trail is append-only and kept forever, so it will always outlive the code that wrote it: a row from a newer deploy during a rollout, or one whose model later grew a field without a default, would otherwise raise and take the whole page with it. A feed that says "something happened here" beats a feed that 500s.
        - `recorded_type` string
        - `type` 'unrecognised'
    - `created_at` string, date-time, required
    - `id` string, uuid, required
    - `proposal_id` string, uuid, nullable
    - `table_id` string, uuid, required
  - `next_page_cursor` string, nullable: The cursor to the next page. If there are no more pages, this is None.
  - `previous_page_cursor` string, nullable: The cursor to the previous page. If there are no previous pages, this is None.

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Table not found
- `422`: Invalid request made to the API.
- `500`: Internal server error.
- `502`: Bad gateway error.
- `503`: Service unavailable.

---

[API](https://skmtc.dev/getoneprofile/apis/api-reference-oneprofile.md) · [All operations](https://skmtc.dev/getoneprofile/apis/api-reference-oneprofile/llms.txt) · [OpenAPI document](https://skmtc.dev/getoneprofile/apis/api-reference-oneprofile/revisions/dc5ac3c84444?raw)
