> ## Documentation Index
> Fetch the complete documentation index at: https://modulate.aurorapayments.net/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

> Make your first API call in under 2 minutes

## 1. Get your API key

API keys are created in the Modulate admin UI under **Organization detail > API Keys**. Your key will look like:

```
pk_live_6475dfd7...
```

<Warning>
  Store your API key securely. It grants read access to your entire merchant portfolio.
</Warning>

## 2. Make your first request

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET "https://modulate.aurorapayments.net/api/partner/merchants?page=1&page_size=5" \
    -H "X-Partner-API-Key: pk_live_YOUR_KEY_HERE"
  ```

  ```python Python theme={null}
  import requests

  url = "https://modulate.aurorapayments.net/api/partner/merchants"
  headers = {"X-Partner-API-Key": "pk_live_YOUR_KEY_HERE"}
  params = {"page": 1, "page_size": 5}

  response = requests.get(url, headers=headers, params=params)
  data = response.json()
  print(f"Found {data['meta']['pagination']['total_count']} merchants")
  ```

  ```javascript Node.js theme={null}
  const response = await fetch(
    "https://modulate.aurorapayments.net/api/partner/merchants?page=1&page_size=5",
    { headers: { "X-Partner-API-Key": "pk_live_YOUR_KEY_HERE" } }
  );
  const { data, meta } = await response.json();
  console.log(`Found ${meta.pagination.total_count} merchants`);
  ```

  ```go Go theme={null}
  req, _ := http.NewRequest("GET",
      "https://modulate.aurorapayments.net/api/partner/merchants?page=1&page_size=5", nil)
  req.Header.Set("X-Partner-API-Key", "pk_live_YOUR_KEY_HERE")
  resp, _ := http.DefaultClient.Do(req)
  ```
</CodeGroup>

## 3. Understand the response

Every response follows the same envelope:

```json theme={null}
{
  "data": [
    {
      "merchant_id": "1234567890",
      "dba_name": "Coffee Shop Downtown",
      "status": "active",
      "volume_last_month": "45230.50"
    }
  ],
  "meta": {
    "request_id": "req_abc123",
    "api_version": "v2",
    "source": "risecrm",
    "as_of": "2026-02-09T04:00:00Z",
    "pagination": {
      "page": 1,
      "page_size": 5,
      "total_count": 6153,
      "total_pages": 1231
    }
  },
  "errors": []
}
```

Key fields:

* **`data`** — The payload (object or array depending on endpoint)
* **`meta.as_of`** — When the underlying data was last refreshed
* **`meta.pagination`** — Present on all list endpoints
* **`errors`** — Empty on success; contains error details on failure

## Next steps

* [Authentication](/authentication) — API key management and scopes
* [Response Format](/response-format) — Pagination, money formatting, timestamps
* [Sync Merchants](/guides/sync-merchants) — Build an incremental sync pipeline
