# 

## Prerequisites

* A valid API key — see [Obtain API credentials](/docs/how-tos/setup/obtain-credentials)


## Step 1: Choose your filters

`GET /v1/transactions` accepts the following query parameters.

| Parameter | Type | Description | Default |
|  --- | --- | --- | --- |
| `skip` | string | Number of records to skip (offset) | `0` |
| `take` | string | Number of records to return (page size) | API default |
| `sort_column` | string | Column to sort by (for example, `transaction_date`) | API default |
| `sort_order` | string | `asc` or `desc` | `desc` |
| `search_text` | string | Free-text search across transaction fields | — |
| `term` | string | Filter term (for example, a transaction state or type) | — |


## Step 2: Send the request

### Basic list (most recent first)

curl
```shell
curl -X GET \
  "https://api.dev.paradisegateway.net/v1/transactions?skip=0&take=25&sort_order=desc" \
  -H "APIKEY: YOUR-API-KEY"
```

Python
```python
import requests

resp = requests.get(
    "https://api.dev.paradisegateway.net/v1/transactions",
    headers={"APIKEY": "YOUR-API-KEY"},
    params={"skip": "0", "take": "25", "sort_order": "desc"},
)
data = resp.json()
for txn in data.get("items", []):
    print(txn["id"], txn["type"], txn["transaction_state"], txn["amount"])
```

JavaScript
```javascript
const params = new URLSearchParams({
  skip: "0",
  take: "25",
  sort_order: "desc",
});
const resp = await fetch(
  `https://api.dev.paradisegateway.net/v1/transactions?${params}`,
  { headers: { "APIKEY": "YOUR-API-KEY" } }
);
const data = await resp.json();
console.log(data);
```

C#
```csharp
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("APIKEY", "YOUR-API-KEY");
var resp = await client.GetStringAsync(
    "https://api.dev.paradisegateway.net/v1/transactions?skip=0&take=25&sort_order=desc");
Console.WriteLine(resp);
```

Java
```java
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create(
        "https://api.dev.paradisegateway.net/v1/transactions?skip=0&take=25&sort_order=desc"))
    .header("APIKEY", "YOUR-API-KEY")
    .GET().build();
HttpResponse<String> resp = HttpClient.newHttpClient().send(request,
    HttpResponse.BodyHandlers.ofString());
System.out.println(resp.body());
```

Go
```go
req, _ := http.NewRequest("GET",
    "https://api.dev.paradisegateway.net/v1/transactions?skip=0&take=25&sort_order=desc",
    nil)
req.Header.Set("APIKEY", "YOUR-API-KEY")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
```

PHP
```php
$ch = curl_init(
    "https://api.dev.paradisegateway.net/v1/transactions?skip=0&take=25&sort_order=desc");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ["APIKEY: YOUR-API-KEY"],
]);
echo curl_exec($ch); curl_close($ch);
```

Ruby
```ruby
require "net/http"
uri = URI("https://api.dev.paradisegateway.net/v1/transactions?skip=0&take=25&sort_order=desc")
req = Net::HTTP::Get.new(uri, { "APIKEY" => "YOUR-API-KEY" })
resp = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }
puts resp.body
```

### Filtered search

Search for transactions matching a specific term.

```shell
curl -X GET \
  "https://api.dev.paradisegateway.net/v1/transactions?search_text=Spock&take=10&sort_order=desc" \
  -H "APIKEY: YOUR-API-KEY"
```

### Filter by term

Use `term` to narrow results by a specific value (for example, a transaction state).

```shell
curl -X GET \
  "https://api.dev.paradisegateway.net/v1/transactions?term=authorized&take=50" \
  -H "APIKEY: YOUR-API-KEY"
```

## Step 3: Paginate through results

Use `skip` and `take` together to page through large result sets.

| Page | `skip` | `take` |
|  --- | --- | --- |
| 1 | `0` | `25` |
| 2 | `25` | `25` |
| 3 | `50` | `25` |


```shell
# Page 2
curl -X GET \
  "https://api.dev.paradisegateway.net/v1/transactions?skip=25&take=25&sort_order=desc" \
  -H "APIKEY: YOUR-API-KEY"
```

## Step 4: Read the response

The response contains a list of transaction objects.

```json
{
  "items": [
    {
      "id": "TRANSACTION-01JMRSPCK7XVNP3KS8F2W4T6Y",
      "type": "card_sale",
      "transaction_state": "authorized",
      "amount": 15000,
      "transaction_date": "2026-01-15T14:30:00Z"
    },
    {
      "id": "TRANSACTION-02KNUHURA8YWP4LT9G3X5V7Z0",
      "type": "card_auth",
      "transaction_state": "authorized",
      "amount": 25000,
      "transaction_date": "2026-01-15T15:00:00Z"
    }
  ],
  "correlation_id": "c3d4e5f6-a7b8-9012-cdef-123456789abc"
}
```

## Common filter patterns

| Goal | Parameters |
|  --- | --- |
| Most recent 50 transactions | `?take=50&sort_order=desc` |
| Search by cardholder name | `?search_text=Spock` |
| Only authorized transactions | `?term=authorized` |
| Oldest first | `?sort_order=asc` |
| Sort by amount | `?sort_column=amount&sort_order=desc` |


## Next steps

* [Retrieve transaction details](/docs/how-tos/manage-transactions/retrieve-transaction-details) — get full details for a single transaction
* [Close a batch manually](/docs/how-tos/manage-transactions/close-batch-manually) — trigger settlement
* [About the transaction lifecycle](/docs/concepts/transactions/transaction-lifecycle)