---
api: 'Revolut X Crypto Exchange REST API'
---

# Get transactions

Retrieve a list of account transactions for the authenticated client.
The user context is resolved based on the provided API key.

#### Rate limits

| Limit | Total tokens | Refresh rate | Token cost rule |
| :--- | ---: | :--- | :--- |
| **Per-second limit** | 100 | 100 tokens / second | 1 token / day in requested range |
| **Per-minute limit** | 1,000 | 1,000 tokens / minute | 1 token / day in requested range |

For retry guidance, see the `429 Rate Limit Exceeded` response below. The `Retry-After` header specifies the delay in milliseconds.

## Endpoint

GET `/1.0/transactions`

## Parameters

### header parameters

- `X-Revx-Timestamp` (integer, required)
  Current timestamp in Unix epoch milliseconds. 
  Used to prevent replay attacks and construct the signature.
  Provided with other authentication headers.

- `X-Revx-Signature` (string, required)
  The Ed25519 signature of the request. 
  Provided with other authentication headers.
  
  :::tip
  See **Authentication headers: Signing a request** for details on how to generate this.
  :::

### query parameters

- `start_date` (integer, optional)
  Start timestamp for the query range in Unix epoch milliseconds.
  
  :::note
  If `start_date` is omitted, it defaults to 7 days prior to `end_date`.
  The difference between `start_date` and `end_date` must be <= 30 days.
  :::

- `end_date` (integer, optional)
  End timestamp for the query range in Unix epoch milliseconds.
  
  :::note
  If `end_date` is omitted, it defaults to `start_date` + 7 days (if `start_date` is provided) or the current date (if `start_date` is missing).
  The duration between `start_date` and `end_date` must not exceed 30 days.
  :::

- `types` (array of enum, optional)
  Filter transactions by specific types (comma-separated).

- `statuses` (array of enum, optional)
  Filter transactions by specific statuses (comma-separated).

- `currencies` (array of string, optional)
  Filter transactions by specific currencies (comma-separated).

- `cursor` (string, optional)
  Pagination cursor obtained from the [`metadata.next_cursor`](https://developer.revolut.com/docs/api/revolut-x-crypto-exchange#get-transactions) property of the previous response.

- `limit` (integer, optional)
  Maximum number of records to return.

## Returns

### 200

OK

The list of transactions.

#### Response attributes

- `data` (array of object)
  - `data[].id` (string)
      Unique identifier for the transaction.
  - `data[].status` (enum)
      Status of the transaction.
      Possible enum values:

      - `pending`
      - `completed`
      - `cancelled`
      - `failed`
      - `reverted`
  - `data[].type` (enum)
      Type of the transaction.
      
      | Value | Description |
      | --- | --- |
      | **`buy`** | Purchase of an asset |
      | **`sell`** | Sale of an asset |
      | **`receive`** | Incoming transfer of an asset |
      | **`send`** | Outgoing transfer of an asset |
      | **`stake`** | Staking of an asset |
      | **`un_stake`** | Unstaking of a staked asset |
      | **`reward`** | External reward |
      Possible enum values:

      - `buy`
      - `sell`
      - `receive`
      - `send`
      - `stake`
      - `un_stake`
      - `reward`
  - `data[].source` (object, optional)
      Source (billing) side of the transaction — the amount and currency that were debited from your account.
      
      At least one of source or destination is present.
    - `data[].source.amount` (string)
        Net amount for this leg of the transaction.
        
        Returned as a string to prevent rounding errors.
    - `data[].source.currency` (string)
        Currency for this leg of the transaction.
  - `data[].destination` (object, optional)
      Destination side of the transaction — the amount and currency that were credited to your account.
      
      At least one of source or destination is present.
    - `data[].destination.amount` (string)
        Net amount for this leg of the transaction.
        
        Returned as a string to prevent rounding errors.
    - `data[].destination.currency` (string)
        Currency for this leg of the transaction.
  - `data[].created_date` (integer)
      Timestamp when the transaction was created, in Unix epoch milliseconds.
  - `data[].processed_date` (integer, optional)
      Timestamp when the transaction was processed, in Unix epoch milliseconds.
      
      Absent while the transaction is still `pending`.
- `metadata` (object)
  - `metadata.timestamp` (integer)
      Timestamp in Unix epoch milliseconds.
  - `metadata.next_cursor` (string, optional)
      Cursor used to retrieve the next page of results.
      
      To continue paginating through the results, make a new request and pass this value in the [`cursor`](https://developer.revolut.com/docs/api/revolut-x-crypto-exchange#get-transactions) query parameter.
      An empty string indicates no more results are available.

## Error responses

| HTTP status code | Description |
| --- | --- |
| 400 | Bad request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 409 | Conflict |
| 429 | Rate Limit Exceeded |
| 5XX | Server Error |
