<!-- ZenPays documentation · https://docs.zenpayz.com/docs/rest-api/endpoints/ramp/list-ramp-intents -->

# List Ramp Intents

Retrieve a paginated list of ramp intents for your merchant account. Supports filtering by status, type, and text search across intent IDs and customer emails.

<EndpointHeader verb="GET" path="/payment/api/v1/ramp-intents" />

## Request

### Headers

<ParamTable
  label="Header"
  rows={[
    { name: "Authorization", required: true, desc: "`Bearer {api_key}`" },
    { name: "x-merchant-id", required: true, desc: "Your merchant ID" },
    { name: "x-request-id", required: true, desc: "Unique request ID for tracing" },
  ]}
/>

:::caution Authenticated Endpoint
This endpoint requires API key authentication. Only intents belonging to the authenticated merchant are returned.
:::

### Query Parameters

<ParamTable
  rows={[
    { name: "page", type: "number", default: "1", desc: "Page number" },
    { name: "limit", type: "number", default: "20", desc: "Results per page (max 100)" },
    { name: "status", type: "string", default: "—", desc: "Filter by status: `created`, `active`, `completed`, `expired`, `cancelled`" },
    { name: "type", type: "string", default: "—", desc: "Filter by type: `buy` or `sell`" },
    { name: "search", type: "string", default: "—", desc: "Search by intent ID or customer email (partial match)" },
  ]}
/>

## Response

### Success (200 OK)

```json
{
  "success": true,
  "data": {
    "data": [
      {
        "id": "a1b2c3d4-uuid",
        "intentId": "ri_1710345678000_a1b2c3d4e5f6g7h8",
        "type": "buy",
        "fiatCurrency": "USD",
        "cryptoCurrency": "eth_ethereum",
        "amount": 100,
        "status": "completed",
        "customerEmail": "customer@example.com",
        "wallets": [
          { "network": "ethereum", "address": "0x742d35Cc..." }
        ],
        "expiresAt": "2026-03-15T10:00:00.000Z",
        "completedAt": "2026-03-15T09:45:00.000Z",
        "createdAt": "2026-03-15T09:00:00.000Z",
        "updatedAt": "2026-03-15T09:45:00.000Z"
      }
    ],
    "meta": {
      "total": 42,
      "page": 1,
      "limit": 20,
      "totalPages": 3
    }
  },
  "message": "Ramp intents retrieved"
}
```

### Response Fields

#### Intent Object

<ParamTable
  rows={[
    { name: "intentId", type: "string", desc: "Unique intent identifier" },
    { name: "type", type: "string", desc: "`buy` or `sell`" },
    { name: "fiatCurrency", type: "string", desc: "Fiat currency code" },
    { name: "cryptoCurrency", type: "string | null", desc: "Crypto identifier" },
    { name: "amount", type: "number | null", desc: "Amount" },
    { name: "status", type: "string", desc: "Current status" },
    { name: "customerEmail", type: "string | null", desc: "Customer email" },
    { name: "wallets", type: "array", desc: "Wallet addresses" },
    { name: "depositCharges", type: "object | null", desc: "Fee breakdown for deposit phase (sell intents)" },
    { name: "payoutCharges", type: "object | null", desc: "Fee breakdown for payout phase (sell intents)" },
    { name: "expiresAt", type: "string", desc: "Expiry timestamp" },
    { name: "completedAt", type: "string | null", desc: "Completion timestamp" },
    { name: "createdAt", type: "string", desc: "Creation timestamp" },
    { name: "updatedAt", type: "string", desc: "Last update timestamp" },
  ]}
/>

#### Meta Object

<ParamTable
  rows={[
    { name: "total", type: "number", desc: "Total matching intents" },
    { name: "page", type: "number", desc: "Current page" },
    { name: "limit", type: "number", desc: "Results per page" },
    { name: "totalPages", type: "number", desc: "Total pages" },
  ]}
/>

<CodeRail>

## Examples

<Tabs groupId="language">
  <TabItem value="curl" label="cURL" default>

```bash
# List all intents (page 1)
curl https://api.zenpayz.com/payment/api/v1/ramp-intents \
  -H "Authorization: Bearer zp_test_your_api_key" \
  -H "x-merchant-id: merch_abc123" \
  -H "x-request-id: req_list_001"

# Filter by status and type
curl "https://api.zenpayz.com/payment/api/v1/ramp-intents?status=completed&type=sell&page=1&limit=10" \
  -H "Authorization: Bearer zp_test_your_api_key" \
  -H "x-merchant-id: merch_abc123" \
  -H "x-request-id: req_list_002"

# Search by email
curl "https://api.zenpayz.com/payment/api/v1/ramp-intents?search=customer@example.com" \
  -H "Authorization: Bearer zp_test_your_api_key" \
  -H "x-merchant-id: merch_abc123" \
  -H "x-request-id: req_list_003"
```

  </TabItem>
  <TabItem value="javascript" label="JavaScript">

```javascript
const params = new URLSearchParams({
  status: 'completed',
  type: 'sell',
  page: '1',
  limit: '10',
});

const response = await fetch(
  `https://api.zenpayz.com/payment/api/v1/ramp-intents?${params}`,
  {
    headers: {
      'Authorization': 'Bearer zp_test_your_api_key',
      'x-merchant-id': 'merch_abc123',
      'x-request-id': `req_${Date.now()}`,
    },
  }
);

const { data } = await response.json();
const { data: intents, meta } = data;

console.log(`Page ${meta.page} of ${meta.totalPages} (${meta.total} total)`);
intents.forEach((intent) => {
  console.log(`${intent.intentId} | ${intent.type} | ${intent.status}`);
});
```

  </TabItem>
  <TabItem value="python" label="Python">

```python
import requests

response = requests.get(
    "https://api.zenpayz.com/payment/api/v1/ramp-intents",
    headers={
        "Authorization": "Bearer zp_test_your_api_key",
        "x-merchant-id": "merch_abc123",
        "x-request-id": "req_list_001",
    },
    params={
        "status": "completed",
        "type": "sell",
        "page": 1,
        "limit": 10,
    },
)

result = response.json()["data"]
intents = result["data"]
meta = result["meta"]

print(f"Page {meta['page']} of {meta['totalPages']} ({meta['total']} total)")
for intent in intents:
    print(f"{intent['intentId']} | {intent['type']} | {intent['status']}")
```

  </TabItem>
</Tabs>

</CodeRail>

## Next Steps

- [Get Ramp Intent](/docs/rest-api/endpoints/ramp/get-ramp-intent) — Retrieve full details for a specific intent
- [Create Ramp Intent](/docs/rest-api/endpoints/ramp/create-ramp-intent) — Create a new ramp intent
- [Update Ramp Intent Status](/docs/rest-api/endpoints/ramp/update-ramp-intent-status) — Manually update intent status
