API reference
Authenticate and call the Prolifto admin API.
The Prolifto API is a REST/OpenAPI surface generated from the admin's oRPC router. This reference is generated from the same spec the admin app serves.
Base URL
http://localhost:3000/apiIn production, use your admin app URL followed by /api:
https://admin.example.com/apiMost store-scoped endpoints include the organization slug:
/api/{organizationSlug}/productsSome endpoints operate on the organization resolved from the API key or session instead of a slug. Check each operation's path.
Authentication
Send the store API key in the ApiKey header:
curl https://admin.example.com/api/my-store/products \
-H "ApiKey: sk_live_..."- Create keys in Settings → API.
- The key is shown once; copy it immediately.
- The key must belong to the organization in the path.
- Keys are limited to 100 requests per minute.
- API access depends on the store's plan; the Free plan has no API keys.
Session cookies also work for requests made from the admin app, but external integrations should use API keys.
Common inputs
List endpoints accept:
| Parameter | Meaning |
|---|---|
page | Page number, starting at 1 |
limit | Page size, up to 100 |
search | Free-text search where supported |
orderBy | Ordering, e.g. created_desc |
Endpoints that create or update records validate input with Zod. Required fields, formats, and limits are shown in each operation.
Errors
Errors return a non-2xx status and a JSON body:
{
"message": "Unauthorized"
}Common statuses:
| Status | Meaning |
|---|---|
400 | Validation error or invalid state transition |
401 | Missing or invalid session/API key |
403 | The key or user lacks permission |
404 | Store, order, product, or other entity not found |
409 | Conflict, such as a locked invoice |
500 | Unexpected server error |
Pagination and ordering
Responses return the requested page and pagination metadata from the query
layer. Use page and limit together and keep orderBy stable for consistent
pages.
Modules
| Area | Endpoints |
|---|---|
| Catalog | Products, Variants, Options, Categories, Collections, Media, Inventory, Product information, Product categories, Product collections, Billboards |
| Sales | Orders, Invoices, Receipts, Shipping |
| Customers and marketing | Customers, Addresses, Coupons, Notifications |
| Store and platform | Stores, Storefront domains, Members, Currencies, Analytics, Search, Billing, Integrations, Phone verification, Social |
Generated operation reference
The pages in this section are generated from apps/docs/openapi.json. Do not
edit them by hand.
To refresh them:
pnpm docs:sync-apiConventions
- Currency amounts are strings or numbers depending on the endpoint; check the schema.
- Dates use ISO 8601 strings.
- IDs are opaque strings; do not parse them.
- Financial documents and payments are never deleted in place; use void or refund flows.
- Internal-only operations such as database seeding and setup are excluded from this reference.
SDK
For TypeScript integrations, prefer @prolifto/sdk. See
API and SDK.