Drone API Reference
The Drone API provides specialized endpoints for in-store operations, such as picking, packing, and fulfillment. It's designed to be used by store associates and in-store systems.
Key Features
- Product Information: Access product details with comprehensive image support
- Order Management: Handle orders with visual product identification
- In-Store Operations: Support picking, packing, and fulfillment workflows
- Image Support: Product responses include image metadata and URLs for visual identification
⚠️ Important: Picking App Scope Restrictions
The picking app has limited status control scope for system integrity:
Allowed Status Changes for Picking App
The picking app can ONLY set these statuses via /dts/drone/order/set_status:
| Status Code | Status Name | Description |
|---|---|---|
2 | picking (STATE_COLLECTING) | Start picking process |
3 | picked (STATE_COLLECTED) | Complete picking process |
6 | cancelled (STATE_CANCELLED) | Cancel order during picking |
Read-Only Statuses for Picking App
These statuses can be READ but NOT SET by the picking app:
| Status Code | Status Name | Responsibility |
|---|---|---|
1 | pending (STATE_OPEN) | Order management systems |
4 | shipped (STATE_DELIVERING) | Logistics/shipping systems |
5 | completed (STATE_DELIVERED) | Delivery/collection systems |
Valid Transitions for Picking App
pending→picking✅ (start picking)pending→cancelled✅ (cancel before picking)processing→picking✅ (start picking from processing)processing→cancelled✅ (cancel before picking)picking→picked✅ (complete picking)picking→cancelled✅ (cancel during picking)picked→cancelled✅ (cancel after picking)
❌ Invalid transitions (will return HTTP 422 error):
- Any transition to
shipped,completed, orpendingfrom other statuses - Any transition from terminal states like
completedorshipped
Error Handling
When the picking app attempts invalid status changes, the API returns:
{
"responseType": "failure",
"status": 422,
"message": {
"error": "Picking app transition not allowed: ...",
"data": {
"current_status": "picked",
"requested_status": "shipped",
"allowed_transitions": ["cancelled"],
"error_code": "PICKING_APP_TRANSITION_NOT_ALLOWED"
}
}
}
API Endpoints Overview
Health Endpoints
| Endpoint | Method | Description |
|---|---|---|
/dts/drone/health | GET | Health check endpoint |
Places Endpoints
| Endpoint | Method | Description |
|---|---|---|
/dts/drone/places | GET | Get places with optional filtering |
Orders Endpoints
| Endpoint | Method | Description |
|---|---|---|
/dts/drone/orders | GET | Get orders with filtering |
/dts/drone/order/info | GET | Get details for a specific order |
/dts/drone/order/products | GET | Get products for a specific order (includes image data and substitutes) |
/dts/drone/order/set_storage_locations | POST | Assign storage locations to items in an order |
/dts/drone/order/set_picking_status | POST | Update the picking status of items in an order |
/dts/drone/order/picking_packages | POST | Manage picking packages for an order |
/dts/drone/order/set_status | GET | 🔒 Restricted: Update order status (picking app scope limited) |
/dts/drone/order/set_num_bags | GET | Set the number of bags for an order |
/dts/drone/order/picking_validate | POST | Validate orders for picking |
/dts/drone/order/set_failed | GET | Mark an order as failed |
/dts/drone/order/set_printed | GET | Mark an order as printed |
/dts/drone/order/set_suspended | GET | Suspend an order |
/dts/drone/order/unset_suspended | GET | Remove suspension from an order |
/dts/drone/order/add_message | GET | Add a message to an order |
/dts/drone/order/capture_payment | POST | Capture payment for an order |
/dts/drone/order/add_product | GET | Add a product to an order |
/dts/drone/order/send_order_to_pos | POST | Send order to POS system |
/dts/drone/order/set_codes | POST | Set special codes for an order |
Storage Location Endpoints
| Endpoint | Method | Description |
|---|---|---|
/dts/drone/storage_location/list | GET | Get storage locations for a store |
Product Endpoints
| Endpoint | Method | Description |
|---|---|---|
/dts/drone/product/search | GET | Search for products by barcode/EAN |
Store Endpoints
| Endpoint | Method | Description |
|---|---|---|
/dts/drone/stores | GET | Get a list of available stores |
/dts/drone/store/get_aisle_sorting | GET | Get aisle sorting for store items |
Delivery Endpoints
| Endpoint | Method | Description |
|---|---|---|
/dts/drone/delivery/list | GET | Get delivery options for a store |
Substitution Endpoints
| Endpoint | Method | Description |
|---|---|---|
/dts/drone/substitution/info | GET | Get substitution information for a product |
Authentication
All endpoints require authentication using an API key in the Authorization header:
Authorization: Bearer YOUR_API_KEY
For more details on authentication, see the Authentication Guide.
Response Format
Drone API responses follow a consistent format:
{
"responseType": "success",
"status": 200,
"message": {
"error": null,
"message": null,
"data": {
// The response data, varies by endpoint
}
}
}
For errors:
{
"responseType": "failure",
"status": 400,
"message": {
"error": "Error message",
"message": null
}
}
⚠️ API Format Updates
Substitution Products Format (Updated 2025-08-15)
Important Change: The substitution products format has been updated for consistency:
- Substitute products now use
eaninstead ofbarcodefor product identification - Added
image_guidstructure to substitute products (consistent with main products) - Backward compatibility: Main products continue to include both
barcodeandeanfields - Recommendation: Use the
eanfield as the standardized identifier
Example of Updated Substitution Format:
{
"allowed_substitutions": [
{
"ean": "5053990139545",
"product": {
"name": "Substitute Product",
"ean": "5053990139545",
"images": 0,
"image_guid": []
}
}
]
}
For detailed information, see the /dts/drone/order/products documentation.
Product Image Support
The Drone API provides comprehensive image support for products:
- Image Count: Each product includes an
imagesfield indicating the number of available images - Image Metadata: Products include detailed image information with URLs, dimensions, and metadata
- Visual Identification: Images support visual product identification during picking and packing
- Format Support: Supports common image formats (JPEG, PNG) with metadata
Image Response Structure
Product responses include image data in the following format:
{
"id": "product-123",
"name": "Product Name",
"images": 1,
"image_guid": [{
"id": "img-product-123",
"url": "https://example.com/product-image.jpg",
"width": 1024,
"height": 1024,
"mime_type": "image/png",
"media_type_code": "PICTURE",
"file_size": 0,
"created_at": "2023-12-07T10:00:00Z",
"updated_at": "2023-12-07T10:00:00Z"
}]
}
Common Use Cases
Picking Process with Visual Identification
- Get a list of orders for a store using
/dts/drone/orders - Get order details using
/dts/drone/order/info - Get order products with image data and substitute options using
/dts/drone/order/products - Use product images for visual identification during picking
- Assign storage locations using
/dts/drone/order/set_storage_locations - Update picking status using
/dts/drone/order/set_picking_status - Set the number of bags using
/dts/drone/order/set_num_bags - Update order status using
/dts/drone/order/set_status
Product Search with Images
- Search for products by barcode using
/dts/drone/product/search - View product images for verification
- Get substitution options using
/dts/drone/substitution/infoor from order products - Compare substitution product images using the new
image_guidstructure in substitutes
Order Management
- Mark an order as printed using
/dts/drone/order/set_printed - Suspend an order using
/dts/drone/order/set_suspended - Resume an order using
/dts/drone/order/unset_suspended - Add a message to an order using
/dts/drone/order/add_message
Image-Enhanced Workflows
- Visual Product Verification: Use images to verify correct products during picking
- Training and Guidance: Display product images to help new staff identify items
- Quality Control: Visual comparison of picked items against product images
- Customer Communication: Include product images in communication workflows