How to Access Order Data Using the Zepio Developer API
Written by Saurabh
Updated 2 weeks ago
Updated 2 weeks ago
Creating API Key
The Customers API allows you to read customer details from your Zepio store using a secure API key.
Create API Key
- Login to your Zepio Admin Dashboard.
- Go to: Settings > Developer API
- Create a new API key and select this ability: Read orders
Use this API key when making requests to the Customers API.
Base URL
https://yourwebsite.com/api/developer/v1
Replace yourwebsite.com with your store domain.
Authentication
Send your API key as a Bearer Token in the request header.
Authorization: Bearer YOUR_API_KEY
Accept: application/json
Endpoints
| Method | Endpoint | Description |
|---|---|---|
| GET | /orders |
Get a paginated list of orders |
| GET | /orders/{id} |
Get details of a single order |
Get Orders
Returns a list of orders from your store.
GET /api/developer/v1/orders
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
per_page |
integer | No | Number of orders to return per request. Maximum: 100. Default: 25 |
cursor |
string | No | Cursor value for loading the next or previous page |
search |
string | No | Search order by order ID |
order_status |
string | No | Filter orders by order status |
customer_id |
integer | No | Filter orders by customer ID |
branch_id |
integer | No | Filter orders by branch ID |
Example Request
curl -X GET "https://yourwebsite.com/api/developer/v1/orders?per_page=10" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
Filter by Order Status
curl -X GET "https://yourwebsite.com/api/developer/v1/orders?order_status=completed" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
Filter by Customer
curl -X GET "https://yourwebsite.com/api/developer/v1/orders?customer_id=12" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
Search by Order ID
curl -X GET "https://yourwebsite.com/api/developer/v1/orders?search=1024" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
Example Response
{
"success": true,
"message": "OK",
"data": [
{
"id": 1024,
"user_id": 12,
"branch_id": 3,
"order_status": "completed",
"payment_status": "paid",
"payment_method": "online",
"grand_total": 850,
"created_at": "2026-06-08T10:30:00.000000Z",
"updated_at": "2026-06-08T10:45:00.000000Z",
"items_count": 2,
"user": {
"id": 12,
"name": "Rahul Sharma",
"email": "rahul@example.com",
"phone": "9876543210"
},
"branch": {
"id": 3,
"name": "Main Branch",
"slug": "main-branch"
},
"items": [
{
"id": 501,
"order_id": 1024,
"product_id": 88,
"variant_id": null,
"product_name": "Fresh Apples",
"variant_name": null,
"quantity": 2,
"unit_price": 120,
"total_price": 240,
"product_sku_code": "APL-001"
}
]
}
],
"meta": {
"next_cursor": "eyJpZCI6MTAyMywiX3BvaW50c1RvTmV4dEl0ZW1zIjp0cnVlfQ",
"prev_cursor": null,
"next_page_url": "https://yourwebsite.com/api/developer/v1/orders?cursor=eyJpZCI6MTAyMywiX3BvaW50c1RvTmV4dEl0ZW1zIjp0cnVlfQ",
"prev_page_url": null,
"per_page": 10
}
}
Pagination
This API uses cursor based pagination.
To load the next page, use the next_cursor value from the response and pass it in the next request.
curl -X GET "https://yourwebsite.com/api/developer/v1/orders?per_page=10&cursor=NEXT_CURSOR_VALUE" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
Get Single Order
Returns full details of a single order by order ID.
GET /api/developer/v1/orders/{id}
Example Request
curl -X GET "https://yourwebsite.com/api/developer/v1/orders/1024" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
Example Response
{
"success": true,
"data": {
"id": 1024,
"order_status": "completed",
"payment_status": "paid",
"payment_method": "online",
"grand_total": 850,
"created_at": "2026-06-08T10:30:00.000000Z",
"user": {
"id": 12,
"name": "Rahul Sharma",
"email": "rahul@example.com",
"phone": "9876543210"
},
"branch": {
"id": 3,
"name": "Main Branch",
"slug": "main-branch"
},
"delivery_user": {
"id": 7,
"name": "Amit Kumar",
"phone": "9876500000"
},
"items": [
{
"id": 501,
"product_id": 88,
"variant_id": null,
"product_name": "Fresh Apples",
"variant_name": null,
"quantity": 2,
"unit_price": 120,
"total_price": 240,
"product_sku_code": "APL-001"
}
],
"additional_fees": [
{
"name": "Delivery Fee",
"amount": 40
}
]
}
}
Response Fields
| Field | Description |
|---|---|
id |
Order ID |
user_id |
Customer ID |
branch_id |
Branch ID |
order_status |
Current order status |
payment_status |
Current payment status |
payment_method |
Payment method used for the order |
grand_total |
Final payable order amount |
created_at |
Date and time when the order was placed |
updated_at |
Date and time when the order was last updated |
items_count |
Number of items in the order |
user |
Customer details |
branch |
Branch details |
items |
Products/items included in the order |
delivery_user |
Assigned delivery user details. Available in single order API when assigned |
additional_fees |
Extra fees applied to the order |
Notes
- Only orders from your store are returned.
- The API key must have
Read ordersability. - Maximum
per_pagevalue is100. - Use cursor pagination for loading more orders.
-
searchcurrently supports searching by order ID. - Use
order_status,customer_id, andbranch_idfilters to get specific orders. - The single order endpoint returns more detailed order information than the order list endpoint.