> For the complete documentation index, see [llms.txt](https://docs.cooler.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cooler.dev/api-reference/transactions.md).

# Transactions

You can retrieve a one or more footprinted transactions using the *Transaction* and *Transactions* endpoints. Let’s start by fetching a single transaction.\
\
Note: make sure you use an actual transaction id, which you can get by footprinting a product.

### Get a Specific Transaction <a href="#get-a-specific-transaction" id="get-a-specific-transaction"></a>

**Parameters**

| KEY | TYPE   | DESCRIPTION    |
| --- | ------ | -------------- |
| id  | string | transaction id |

#### **Response**

```json
{
  "id": "0f958fc5-e786-4d81-88ea-9bd8811d39e4",
  "items": [
    {
      "id": "b4435ef8-f17e-480e-b247-3394f4befa78",
      "submission": {
        "id": "e30191b7-15fe-4dcd-aeaf-d9f5d96d61fa",
        "zip": "02062",
        "sku": null,
        "currency": "USD",
        "manufacturer": null,
        "title": "Samsung A7 Galaxy",
        "price": 500,
        "category": null,
        "description": "Samsung A7 Galaxy",
        "isUsed": false
      },
      "footprint": {
        "id": "27eb7a5c-10d2-4549-9abb-5a8142ff3e47",
        "currency": "USD",
        "expiresAt": "2025-01-15T21:11:19.401Z",
        "carbonFootprint": 108,
        "carbonFootprintSavings": null
      }
    }
  ],
  "dateCreated": "2025-01-08T21:11:19.114Z",
  "dateUpdated": "2025-01-08T21:11:19.114Z"
}

```

### **Code Examples**

**Javascript**

```javascript
// Define the API endpoint and headers
const transactionId = "e03304b0-ba04-4a28-b66e-dcfbc1a62c22"; // Replace with your own transaction ID
const apiUrl = `https://api.cooler.dev/v1/transactions/${transactionId}`;
const headers = {
  "Cooler-Api-Key": "cooler_test_acaf38b8-5d04-4aa4-87fe-91a67fc13a05",
};

// Make the GET request using fetch
fetch(apiUrl, {
  method: "GET",
  headers: headers,
})
  .then((response) => response.json()) // Parse the JSON response
  .then((data) => console.log(data)) // Log the response data
  .catch((error) => console.error("Error:", error)); // Log any errors
```

**Curl**

```shell
curl -X 'GET' \
  'https://api.cooler.dev/v1/transactions/0f958fc5-e786-4d81-88ea-9bd8811d39e4' \
  -H 'accept: */*' \
  -H 'COOLER-API-KEY: cooler_test_acaf38b8-5d04-4aa4-87fe-91a67fc13a05'
```

#### Get Multiple Transactions <a href="#get-multiple-transactions" id="get-multiple-transactions"></a>

Get one or more transactions.

**Parameters**

| KEY   | TYPE   | DESCRIPTION                                                      |
| ----- | ------ | ---------------------------------------------------------------- |
| skip  | number | the number of transactions to skip before returning transactions |
| limit | number | the maximum number of transactions to return                     |
| env   | string | dev environment; either “sandbox” or “production”                |

**Response**

**Code Examples**

```javascript
// Define the API endpoint and headers
const apiUrl = "https://api.cooler.dev/v1/transactions";
const headers = {
  "Cooler-Api-Key": "cooler_test_acaf38b8-5d04-4aa4-87fe-91a67fc13a05",
};

// Define query parameters
const queryParams = new URLSearchParams({
  skip: 0, // Number of records to skip (pagination)
  limit: 10, // Number of records to return
  env: "sandbox", // Environment filter (optional)
}).toString();

// Make the GET request using fetch
fetch(`${apiUrl}?${queryParams}`, {
  method: "GET",
  headers: headers,
})
  .then((response) => response.json()) // Parse the JSON response
  .then((data) => console.log("Transactions:", data)) // Log the response data
  .catch((error) => console.error("Error:", error)); // Log any errors
```

Let’s try that in curl:

```sh
curl -X GET "https://api.cooler.dev/v1/transactions?skip=0&limit=10&env=sandbox" \
     -H "Cooler-Api-Key: cooler_test_acaf38b8-5d04-4aa4-87fe-91a67fc13a05"
```
