Skip to main content

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.

The Crevio API lets you manage products, pricing, checkouts, orders, customers, invoices, subscriptions, and more. All endpoints return JSON with snake_case keys following Stripe conventions.

Base URL

https://api.crevio.co/v1
For local development:
https://api.crevio.dev/v1

Authentication

All API requests require a Bearer token in the Authorization header.
curl https://api.crevio.co/v1/products \
  -H "Authorization: Bearer YOUR_API_TOKEN"
Generate API tokens from Settings > Developer > API tokens in your dashboard.
Keep your API tokens secure. Do not expose them in client-side code or public repositories.

Object types

Every API resource includes an object field that identifies the resource type:
{
  "id": "prod_abc123",
  "object": "product",
  "name": "My Course",
  "slug": "my-course"
}
All IDs are prefixed strings that encode the resource type (e.g., prod_abc123, cus_ghi789).

Slug lookup

Products, blog posts, experiences, and legal pages can be retrieved by slug instead of ID:
curl https://api.crevio.co/v1/products/my-course \
  -H "Authorization: Bearer YOUR_API_TOKEN"
This works anywhere an ID is accepted for these resources.

List responses

List endpoints return a Stripe-style envelope:
{
  "object": "list",
  "data": [
    { "id": "prod_abc123", "object": "product", "name": "My Course" },
    { "id": "prod_def456", "object": "product", "name": "Templates Pack" }
  ],
  "has_more": true,
  "url": "/v1/products"
}
Use starting_after and limit query parameters to paginate. Pass the id of the last item to fetch the next page:
curl "https://api.crevio.co/v1/products?starting_after=prod_abc123&limit=20" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
Default limit is 20, maximum is 100.

Expandable fields

Some endpoints support an expand query parameter to include related data inline. Pass a comma-separated list of fields:
curl "https://api.crevio.co/v1/orders?expand=line_items,customer"
Without expand, related resources appear as collapsed IDs:
{ "customer": "cust_abc123" }
With expand, they become full objects:
{
  "customer": {
    "id": "cust_abc123",
    "object": "customer",
    "email": "jane@example.com",
    "name": "Jane Doe"
  }
}

Delete responses

Delete endpoints return a Stripe-style confirmation:
{
  "id": "disc_abc123",
  "object": "discount",
  "deleted": true
}

Errors

All errors follow this format:
{
  "error": {
    "type": "validation_error",
    "code": "validation_failed",
    "message": "Email can't be blank",
    "errors": {
      "email": ["can't be blank"]
    }
  }
}
StatusTypeCodeDescription
400invalid_request_errorparameter_missingA required parameter is missing
401invalid_request_errorauthentication_requiredInvalid or missing API token
404invalid_request_errorresource_missingResource not found
422validation_errorvalidation_failedRequest failed validation
500api_errorInternal server error

SDKs

TypeScript

Install the official SDK:
npm install @crevio/sdk
import { Crevio } from "@crevio/sdk";

const crevio = new Crevio({
  apiKeyAuth: "YOUR_API_TOKEN",
});

const products = await crevio.products.list();

Full endpoint reference

Browse all available endpoints below.