The Crevio API lets you programmatically manage your account’s products, orders, customers, checkouts, and more. Use it to build custom storefronts, sync data with external systems, or automate workflows.Documentation Index
Fetch the complete documentation index at: https://docs.crevio.co/llms.txt
Use this file to discover all available pages before exploring further.
What you can do with the API
- Products — Create, update, delete, list, and retrieve products.
- Price variants — Create, update, archive, list, and retrieve price variants for products.
- Orders — List and retrieve order details with expandable line items and customers.
- Order items — Retrieve individual order line items.
- Refunds — Create, list, and retrieve refund details for orders. Supports full and partial refunds.
- Customers — List, create, update, and retrieve customer records.
- Subscriptions — List and retrieve subscriptions. Cancel (
POST /subscriptions/{id}/cancel), pause (POST /subscriptions/{id}/pause), or resume (POST /subscriptions/{id}/resume) active subscriptions. - Invoices — Create, list, retrieve, and void (
POST /invoices/{id}/void) invoices. Pay invoices by creating a checkout with theinvoiceparameter. - Checkouts — Create checkout sessions, retrieve, and update checkout details. Create checkouts with line items or for paying an invoice.
- Checkout links — Full CRUD: create, update, delete, list, and retrieve shareable checkout links.
- Experiences — List and retrieve experiences and their content.
- Discounts — Create, update, delete, list, and retrieve discount codes.
- Blog posts — List and retrieve blog posts. Filter by status.
- Legal pages — List, retrieve, and update legal pages (Terms of Service, Privacy Policy, Refund Policy).
- Reviews — Full CRUD: create, update, delete, list, and retrieve product reviews. Reorder reviews via
POST /reviews/{id}/position. - Files — Upload, list, retrieve, and delete files. Supports both direct uploads and external URLs.
- Emails — Send transactional emails to customers.
- Webhook endpoints — Create, update, delete, list, and retrieve webhook subscriptions.
- Webhook events — List and retrieve webhook event delivery history.
- x402 Configuration — Get and update x402 crypto payment settings.
Authentication
All API requests are authenticated using Bearer tokens. Include your API token in theAuthorization header of every request:
401 Unauthorized response.
Base URL
All API endpoints use the following base URL:Creating API tokens
Create a new token
Click New API token and give it a descriptive name (e.g., “My integration” or “Storefront sync”).
Token management
- Tokens display their last used timestamp so you can identify stale tokens.
- You can delete a token at any time to revoke access immediately.
- Each account can have multiple active tokens.
Rate limiting
The API enforces rate limits to ensure fair usage and platform stability. If you exceed the rate limit, the API responds with a429 Too Many Requests status code. Wait for the period indicated in the response headers before retrying.
Conventions
snake_case keys
All API responses use snake_case keys, following Stripe conventions:Slug lookup
Products, blog posts, experiences, and legal pages can be retrieved by slug instead of ID. Any endpoint that accepts an ID for these resources also accepts a slug:IDs
All resource IDs are prefixed strings that encode the resource type:| Resource | Prefix | Example |
|---|---|---|
| Account | acct_ | acct_abc123 |
| Product | prod_ | prod_abc123 |
| Price Variant | price_ | price_abc123 |
| Order | ord_ | ord_abc123 |
| Order Item | ordi_ | ordi_abc123 |
| Charge | ch_ | ch_abc123 |
| Customer | cus_ | cus_abc123 |
| Checkout | co_ | co_abc123 |
| Checkout Link | cl_ | cl_abc123 |
| Invoice | inv_ | inv_abc123 |
| Subscription | sub_ | sub_abc123 |
| Discount | disc_ | disc_abc123 |
| Experience | exp_ | exp_abc123 |
| Blog Post | post_ | post_abc123 |
| Review | rev_ | rev_abc123 |
| File | file_ | file_abc123 |
| Webhook Endpoint | wh_ | wh_abc123 |
| Webhook Event | whev_ | whev_abc123 |
Object type discriminator
Every resource includes anobject field identifying its type:
List responses
List endpoints return a Stripe-style envelope with cursor-based pagination:Pagination parameters
| Parameter | Description |
|---|---|
limit | Number of items per page (1–100, default 20) |
starting_after | Cursor — the id of the last item from the previous page |
id as starting_after:
has_more is false, you’ve reached the last page.
Expandable fields
Many endpoints support anexpand query parameter to include related resources inline. Without expansion, related resources appear as collapsed IDs:
?expand=customer:
Delete responses
Delete endpoints return a Stripe-style confirmation:Error format
When a request fails, the API returns a JSON error response:| Field | Description |
|---|---|
type | Error category (e.g., invalid_request_error, validation_error, api_error) |
code | Machine-readable code (e.g., resource_missing, authentication_required, validation_failed) |
message | A human-readable description of what went wrong |
param | The parameter that caused the error (included for parameter errors) |
errors | Field-level validation errors (included for validation errors) |
Common error types
| Type | HTTP status | Description |
|---|---|---|
invalid_request_error | 400, 401, 404 | The request is invalid (missing params, bad auth, not found) |
validation_error | 422 | The request body contains invalid data |
api_error | 500 | An unexpected server error occurred |

