---
title: "List a sequence's activity"
method: GET
path: "/sequences/{sequence_id}/audit-logs/"
tags: ["sequences"]
---

# List a sequence's activity

`GET /sequences/{sequence_id}/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/sequences/{sequence_id}/audit-logs/`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

Who created, edited, launched, paused and resumed this sequence, newest first. A pause carries its reason, so an automatic stop (no sender could send, the balance ran out, too many bounced) explains itself.

Kept indefinitely, and deliberately not tied to the sequence by a foreign key, so the record of a deletion outlives what it describes.

A roster 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

- `sequence_id` string, uuid, required

## Query parameters

- `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

- PaginatedResponseSequenceAuditLogReadSchema
  - `data` SequenceAuditLogReadSchema[]: The list of ResponseItems.
    - `action` 'created' | 'edited' | 'launched' | 'paused' | 'resumed' | 'deleted' | 'trashed' | 'restored' | 'purged' | 'assistant_applied' | 'assistant_undone' | 'unrecognised', required: What happened to a sequence. Named lifecycle events rather than a created/updated/deleted triad, because launch, pause and resume ARE the questions this trail exists to answer. Deriving them from a status field-change would make every reader re-infer intent, and an engine pause carries a reason that is not a field diff at all. One action means exactly one context shape here. That is the property the enrichment trail lost when three different things all came to be stored as ``run_requested``, which is why its ``action`` can no longer tell a CSV download from an enrichment run. Keep it one-to-one.
    - `actor` string, required
    - `actor_display_name` string, nullable
    - `actor_type` 'user' | 'api' | 'system', required: Who authorised an action.
    - `context` union, required
      - SequenceCreatedContextSchema: Context for a sequence's creation.
        - `duplicated_from_name` string
        - `name` string
        - `source` 'new' | 'duplicate'
        - `type` 'created'
      - SequenceEditedContextSchema: Context for an edit to one surface of a sequence.
        - `changes` SequenceFieldChangeSchema[]
          - `after` unknown
          - `before` unknown
          - `field` string, nullable
          - `label` string, required
        - `fields` string[]
        - `name` string
        - `surface` string
        - `type` 'edited'
      - SequenceLaunchedContextSchema: Context for a launch.
        - `name` string
        - `type` 'launched'
      - SequencePausedContextSchema: Context for a pause, and why it happened.
        - `name` string
        - `reason` string
        - `type` 'paused'
      - SequenceResumedContextSchema: Context for a resume.
        - `name` string
        - `type` 'resumed'
      - SequenceDeletedContextSchema: Context for a deletion.
        - `name` string
        - `type` 'deleted'
      - SequenceTrashedContextSchema: Context for a move to Trash.
        - `name` string
        - `type` 'trashed'
      - SequenceRestoredContextSchema: Context for a restore from Trash, and how many contacts stayed stopped.
        - `contacts_held_elsewhere` integer
        - `name` string
        - `type` 'restored'
      - SequencePurgedContextSchema: Context for a deletion for good from Trash.
        - `name` string
        - `type` 'purged'
      - SequenceAssistantAppliedContextSchema: Context for a roster change an AI made through a granted workspace action.
        - `enrolled` integer
        - `name` string
        - `proposal_id` string, uuid, nullable
        - `summary` string
        - `type` 'assistant_applied'
        - `verb` string
      - SequenceAssistantUndoneContextSchema: Context for the reversal of an assistant's roster change. 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.
        - `name` string
        - `proposal_id` string, uuid, nullable
        - `removed` integer
        - `type` 'assistant_undone'
        - `verb` string
      - UnrecognisedSequenceContextSchema: A context this build cannot parse. Read-side only; nothing writes it.
        - `recorded_type` string
        - `type` 'unrecognised'
    - `created_at` string, date-time, required
    - `id` string, uuid, required
    - `proposal_id` string, uuid, nullable
    - `sequence_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`: Sequence 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/4a6bd71e3f02?raw)
