API Documentation
PRE-RELEASE WARNING: This API is currently in pre-release and undergoing rapid development. Breaking changes are occurring frequently as we work toward a stable v1 release. Please use caution when building production systems against this API during the pre-release period.
The Easel API is a powerful, RESTful HTTP API that gives you programmatic access to your e-commerce store. With the API, you can build custom applications, integrate with third-party services, automate business processes, and create unique shopping experiences.
What can you do with the API?
- Manage your catalog: Create, update, and organize products and variants
- Process orders: Handle order fulfillment, track shipments, and manage returns
- Customer management: Store customer information, manage addresses, and track purchase history
- Inventory control: Monitor stock levels, set up automatic reordering, and manage multiple locations
Why use the API?
- Automate repetitive tasks: Save time by automating inventory updates, order processing, and customer communications
- Scale your business: Handle high-volume operations that would be impractical through manual processes
- Custom workflows: Implement business logic that's specific to your industry or operational needs
- Real-time data: Keep all your systems in sync with up-to-date information
- Flexibility: Build exactly what you need without being limited by standard interface constraints
Base URL
/api/v1/
Authentication
All API endpoints require authentication using Bearer tokens. See the Authentication documentation for details.
Response Format
All API responses use JSON format with consistent structure:
Success Responses
{
"id": "prd_123",
"name": "Example Product",
"status": "active",
"created_at": "2023-01-01T00:00:00Z"
}
List Responses
List endpoints return paginated results:
{
"products": [
{
"id": "prd_123",
"name": "Example Product"
}
],
"pagination": {
"has_next_page": true,
"has_previous_page": false,
"next_cursor": 456
}
}
Error Responses
Error responses include a descriptive message and error code:
{
"error": "Product not found",
"code": "NOT_FOUND"
}
Pagination
List endpoints support cursor-based pagination using the after
query parameter:
after
: Return results after this ID (cursor)- Results are ordered by ID
- Maximum page size is determined by
domain.PageLimit
Example:
GET /api/v1/products?after=123
HTTP Status Codes
200 OK
- Request successful400 Bad Request
- Invalid request data401 Unauthorized
- Authentication required or invalid403 Forbidden
- Insufficient permissions404 Not Found
- Resource not found429 Too Many Requests
- Rate limit exceeded500 Internal Server Error
- Server error
Rate Limiting
API requests are rate limited per store. Rate limit information is returned in response headers:
X-Ratelimit-Limit
: Total requests allowed per windowX-Ratelimit-Remaining
: Requests remaining in current windowX-Ratelimit-Reset
: Unix timestamp when the rate limit resets
Data Types
Timestamps
All timestamps are returned in RFC3339 format (ISO 8601):
2023-01-01T00:00:00Z
IDs
Public IDs are used for all external-facing identifiers:
- Products:
prd_123abc
- Orders:
ord_456def
- Customers:
cus_789ghi
Monetary Values
All monetary values are represented as integers in the smallest currency unit (e.g., cents for USD):
{
"price": 1999, // $19.99
"total": 2599 // $25.99
}
API Reference
Resource | Description |
---|---|
Authentication | API key authentication and permissions |
Products | Manage your product catalog, including creating, updating, and organizing products |
Product Variants | Handle product variations like size, color, and other options |
Orders | Process and manage customer orders, fulfillment, and order history |
Customers | Store and manage customer information and purchase history |
Customer Addresses | Manage shipping and billing addresses for customers |