---
title: "Get participant transaction history"
method: GET
path: "/v1/participants/{participant_id}/activity/history"
tags: ["Participants"]
---

# Get participant transaction history

`GET /v1/participants/{participant_id}/activity/history`

## Request

- Base URL: `https://api.scrip.dev`
- URL: `https://api.scrip.dev/v1/participants/{participant_id}/activity/history`
- Auth: HTTP bearer

Retrieve transaction history for a participant.

## Path parameters

- `participant_id` string, required

## Query parameters

- `limit` integer
- `cursor` string
- `asset_id` string, uuid
- `bucket` 'AVAILABLE' | 'HELD' | 'DEFERRED'
- `created_after` string, date-time
- `created_before` string, date-time
- `occurred_after` string, date-time
- `occurred_before` string, date-time

## Response `200`

Transaction history

- TransactionListResponse: One page of ledger transactions, with the pagination details for the next page.
  - `data` TransactionResponse[]: The ledger transactions on this page.
    - `action_type` 'CREDIT' | 'DEBIT' | 'TRANSFER' | 'HOLD' | 'RELEASE' | 'FORFEIT' | 'EXPIRATION' | 'REDEMPTION' | 'REVERSAL' | 'BURN' | 'FUND' | 'ADJUSTMENT' | 'MATURITY' | 'VOID_PENDING': The kind of ledger action behind the transaction. A manual adjustment is a `CREDIT` or `DEBIT`; no operation creates `ADJUSTMENT` entries.
    - `amount` string: Transaction amount, negative for debits
    - `asset_id` string, uuid: Asset involved in this transaction
    - `bucket` 'AVAILABLE' | 'HELD' | 'DEFERRED': The balance bucket the transaction affected.
    - `created_at` string, date-time: When this transaction was recorded
    - `created_by_api_key_id` string, uuid: API key that initiated this transaction, if via API
    - `description` string: Operation summary
    - `event_id` string, uuid: Event that triggered this transaction, if any
    - `event_timestamp` string, date-time: When the originating event occurred (from event_timestamp), if event-driven
    - `journal_entry_id` string, uuid: Ledger journal entry for this transaction
  - `pagination` PaginationResponse: Cursor details for a list. `has_more` says whether another page exists, and `next_cursor` is the value to send to get it.
    - `has_more` boolean, required: Whether more results are available beyond this page
    - `next_cursor` string, nullable, required: Cursor to fetch the next page. Null on the last page

## Other responses

- `400`: Invalid query parameters (code: validation_error)
- `401`: The API key is missing or not valid. See [Authentication](https://docs.scrip.dev/authentication).
- `404`: Participant not found (code: participant_not_found)
- `429`: Too many requests. Wait the number of seconds in the `Retry-After` header, then retry. See [Limits and durations](https://docs.scrip.dev/limits#rate-limits).
- `500`: Something failed on Scrip's side. Retry the request, and quote `request_id` if it keeps failing. [Errors](https://docs.scrip.dev/errors) lists every code, and the [API introduction](https://docs.scrip.dev/api-reference/introduction) describes the error format.

---

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