# List events

> Returns the events of your store in the environment of the key from the last 30 days, newest first.

Source: https://rais.app/docs/api/list-events

`GET /v1/events`

Required scope: `events:read`.

Filter with `type` (for instance `payment.succeeded`); page with `starting_after`.

## Request

### Query parameters

- `type` (string, optional): Only events of this type: `payment.succeeded`, `payment.failed`, `payment.cancelled`, `payment.reversed`, `refund.succeeded` or `refund.failed`. At most 64 characters.
- `limit` (integer, optional): How many objects to return: 1 to 100 (default 20). Between 1 and 100. Default `20`.
- `starting_after` (string, optional): The cursor of the page to return: pass the `next_cursor` of the previous page (the id of its last object). At most 100 characters.

### Example request

```bash
curl 'https://api.rais.app/v1/events?type=payment.succeeded&limit=3' \
  -H "Authorization: Bearer rais_sk_test_..."
```

## Response

### 200: A page of events.

- `object` (string): Always `list`. Always `list`.
- `data` (array of Event): The events of this page, newest first.
- `has_more` (boolean): True when there are older events.
- `next_cursor` (string, nullable): The value to pass as `starting_after` for the next page; null on the last page.

```json
{
  "object": "list",
  "data": [
    {
      "id": "evt_Qm9dMhJ0k8s2Wv7Yc3XnLpAb",
      "object": "event",
      "api_version": "2026-10-26",
      "created": 1793000300,
      "livemode": false,
      "type": "payment.succeeded",
      "data": {
        "object": {
          "id": "5b1c2f4e-9d3a-4c61-8a7e-0f2d6b9e1a33",
          "object": "payment",
          "status": "paid",
          "amount": 500000,
          "currency": "DZD"
        }
      }
    }
  ],
  "has_more": false,
  "next_cursor": null
}
```

## Errors

| Status | Code | Example message |
| --- | --- | --- |
| 400 | `invalid_parameter` | Invalid value. |
| 400 | `invalid_cursor` | No such payment: the starting_after cursor is unknown. |
| 401 | `invalid_api_key` | Invalid API key provided. |
| 403 | `insufficient_scope` | This API key does not have the 'payments:write' permission. |
| 403 | `account_disabled` | This store is suspended or disabled. |
| 403 | `live_mode_not_enabled` | Complete business verification to take live payments. |
| 429 | `rate_limit_exceeded` | Too many requests. Slow down and retry after the delay in the Retry-After header. |
| 500 | `internal_error` | Something went wrong on our side. Quote the request id to support. |

See [Errors](https://rais.app/docs/errors.md) for every code and how to react.

## Related guides

- [Webhooks](https://rais.app/docs/webhooks.md)
