***

title: API Reference
subtitle: Prolifi Public API — programmatic access to billing, subscriptions, and entitlements
slug: api-reference
---------------------

For clean Markdown of any page, append .md to the page URL. For a complete documentation index, see https://docs.prolifi.io/llms.txt. For full documentation content, see https://docs.prolifi.io/llms-full.txt.

The Prolifi Public API lets you integrate subscription billing, customer management, usage metering, and entitlement checks directly into your application.

## Base URL

```
https://api.prolifi.co/api/v1/public
```

## Quick start

1. Generate API keys from the Prolifi dashboard (**Settings > API Keys**)
2. Use your secret key (`sk_test_*`) for server-side integrations
3. Make your first request:

```bash
curl https://api.prolifi.co/api/v1/public/plans \
  -H "Authorization: Bearer sk_test_your_key_here"
```

## Resources

<CardGroup cols={2}>
  <Card title="Authentication" icon="duotone key" href="/api-guides/authentication">
    API key types, environments, and security
  </Card>

  <Card title="Errors" icon="duotone triangle-exclamation" href="/api-guides/errors">
    Error format, types, and handling guidance
  </Card>

  <Card title="Pagination" icon="duotone list" href="/api-guides/pagination">
    Offset-based pagination for list endpoints
  </Card>

  <Card title="Rate Limiting" icon="duotone gauge-high" href="/api-guides/rate-limiting">
    Request limits, headers, and retry strategies
  </Card>

  <Card title="Idempotency" icon="duotone shield-check" href="/api-guides/idempotency">
    Safely retry requests without duplicating operations
  </Card>

  <Card title="IP Whitelisting" icon="duotone lock" href="/api-guides/ip-whitelisting">
    Restrict API access to specific IP addresses
  </Card>
</CardGroup>

## API endpoints

The API is organized around six resource types:

| Resource          | Endpoints                                                                   | Description                            |
| ----------------- | --------------------------------------------------------------------------- | -------------------------------------- |
| **Plans**         | `GET /plans`, `GET /plans/{id}`                                             | Browse the product catalog (read-only) |
| **Customers**     | `POST`, `GET`, `PATCH`, `DELETE /customers`                                 | Manage customer records                |
| **Subscriptions** | `POST`, `GET`, `PATCH`, `DELETE /subscriptions`                             | Create and manage subscriptions        |
| **Invoices**      | `GET /invoices`, `POST /invoices/{id}/finalize`, `POST /invoices/{id}/void` | Invoice management                     |
| **Usage Events**  | `POST /events`, `POST /events/batch`, `GET /customers/{id}/usage`           | Usage-based billing                    |
| **Entitlements**  | `POST /entitlements/check`, `GET /customers/{id}/entitlements`              | Feature access and metering            |

Browse the full endpoint reference in the sidebar, or refer to the [Developers getting started guide](/getting-started/developers) for integration architecture and webhook events.