List products
Lists products with search and filters. Supports: - Active filter (`active=true/false`) - Metadata filter (JSON string) - Search in `name`, `description`, and `unitLabel` fields - Pagination
Lists products with search and filters.
Supports:
- Active filter (
active=true/false) - Metadata filter (JSON string)
- Search in
name,description, andunitLabelfields - Pagination
Authorization
api-key API key for merchant integrations. Send as Authorization: Bearer <your key>.
In: header
Query Parameters
Page number (1-based)
1 <= value <= 21474836471Number of items per page
1 <= value <= 10020Filter by active status
Search name, description, or unit label (comma-separated terms)
Metadata filter as JSON string (e.g. {"tier":"premium"})
Response Body
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/products"{ "data": [ { "id": "prod_abc123", "name": "Premium Plan", "description": "Premium subscription plan", "image": "https://example.com/image.jpg", "unitLabel": "month", "active": true, "isSystemCreated": false, "metadata": { "category": "subscription" }, "prices": [ null ], "createdAt": "2024-01-01T00:00:00.000Z", "updatedAt": "2024-01-01T00:00:00.000Z" } ], "totalCount": 42, "page": 1, "limit": 20, "totalPages": 3}Delete product DELETE
Deletes a product and cascade-deletes all of its prices in one transaction. Fails if any of the product's prices have ever been referenced by a line item — in that case the product must be archived instead.
Create a product POST
Creates a new product. Optionally includes: - An image URL (use the `/upload-url` endpoint to get a one-time upload URL first) - A default price object which will be set as the default price for this product