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

# REST API

> Programmatically manage Proceeds services and paywalls over a REST API authenticated with API keys.

The Proceeds REST API lets you manage your **services** and **paywalls** programmatically, and read your **transactions** and **events**. It's organized around REST: resource-oriented URLs, JSON request and response bodies, and standard HTTP status codes.

This is the management API. It is distinct from the **payment URLs** your paywalls expose to buyers — see the callout below.

## Base URL

```
https://api.myproceeds.xyz
```

All endpoints live under the `/v1` path, for example `GET /v1/services`.

## Authentication

Every endpoint except the unauthenticated health check requires an API key generated from your dashboard, sent as a header. See [Authentication](/api-reference/authentication) for key format, header options, and scopes.

## Response envelope

Successful responses wrap the result in a `data` field alongside a `meta` object:

```json theme={null}
{
  "data": { },
  "meta": {
    "requestId": "req_...",
    "timestamp": "2026-01-01T00:00:00.000Z"
  }
}
```

List endpoints add pagination to `meta`:

```json theme={null}
{
  "data": [ ],
  "meta": {
    "requestId": "req_...",
    "timestamp": "2026-01-01T00:00:00.000Z",
    "pagination": { "total": 42, "limit": 20, "offset": 0, "hasMore": true }
  }
}
```

## Conventions

| Topic              | Behavior                                                                                                                                                                                                               |
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Pagination**     | List endpoints accept `limit` (1–100, default 20) and `offset` (default 0). Check `meta.pagination.hasMore` to page.                                                                                                   |
| **Secret masking** | Service `authConfig` values and paywall custom header values are always returned as `"***"`. Field names are visible; plaintext is never exposed. See [Authentication](/api-reference/authentication#secret-handling). |
| **Request IDs**    | Every response includes `meta.requestId`. Quote it when contacting support.                                                                                                                                            |
| **Errors**         | Failures return a structured error body with a machine-readable `code`. See [Errors & rate limits](/api-reference/errors-and-rate-limits).                                                                             |

<Note>
  The REST API documents management endpoints under `api.myproceeds.xyz`. The **payment URLs** your buyers call (`myproceeds.xyz/api/x402/pay/...` and `/api/mpp/pay/...`) follow the x402 and MPP standards instead — see [Payment URLs](/standards/payment-urls).
</Note>

## Next steps

<CardGroup cols={2}>
  <Card title="Authentication" icon="key" href="/api-reference/authentication">
    Create an API key, choose a header, and scope it correctly.
  </Card>

  <Card title="Errors & rate limits" icon="triangle-exclamation" href="/api-reference/errors-and-rate-limits">
    Error codes, the response shape, and the 1000 req/min limit.
  </Card>

  <Card title="Add payments to your API" icon="layer-group" href="/quickstart/add-payments-to-your-api">
    Create a service and paywall, then manage them via the API.
  </Card>

  <Card title="Payment URLs" icon="credit-card" href="/standards/payment-urls">
    The buyer-facing x402 and MPP endpoints each paywall exposes.
  </Card>
</CardGroup>
