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
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" ]
}
}
}
Status Type Code Description 400 invalid_request_errorparameter_missingA required parameter is missing 401 invalid_request_errorauthentication_requiredInvalid or missing API token 404 invalid_request_errorresource_missingResource not found 422 validation_errorvalidation_failedRequest failed validation 500 api_error— Internal server error
SDKs
TypeScript
Install the official 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.