Integrate EzyRunners delivery into your application seamlessly.
The EzyRunners API allows you to integrate our delivery services directly into your application. With our RESTful API, you can create deliveries, track orders in real-time, and receive webhook notifications.
https://api.ezyrunners.com/v1
All API requests require authentication using an API key. Include your API key in the request header:
Authorization: Bearer YOUR_API_KEY Content-Type: application/json
You can obtain your API key from the Enterprise Dashboard under Settings → API Keys.
| Environment | Base URL |
|---|---|
| Production | https://api.ezyrunners.com/v1 |
| Sandbox | https://sandbox.ezyrunners.com/v1 |
| Plan | Requests/Minute | Requests/Day |
|---|---|---|
| Starter | 30 | 1,000 |
| Growth | 60 | 5,000 |
| Business | 120 | 20,000 |
| Enterprise | Custom | Unlimited |
Create a new delivery request.
{
"pickup": {
"address": "123 Main Street, City",
"latitude": 17.4239,
"longitude": 78.4738,
"contact_name": "Store Manager",
"contact_phone": "+919876543210",
"instructions": "Ask for order #123"
},
"dropoff": {
"address": "456 Customer Lane, City",
"latitude": 17.4456,
"longitude": 78.4892,
"contact_name": "John Doe",
"contact_phone": "+919876543211",
"instructions": "Leave at door"
},
"package": {
"description": "Food order",
"weight_kg": 2.5,
"value": 450.00
},
"vehicle_type": "bike",
"payment_method": "prepaid",
"external_id": "ORDER-12345"
}
{
"success": true,
"delivery_id": "DEL-2026011012345",
"status": "pending",
"estimated_pickup": "2026-01-10T14:30:00Z",
"estimated_delivery": "2026-01-10T15:00:00Z",
"fare": {
"base": 25.00,
"distance": 40.00,
"total": 65.00
},
"tracking_url": "https://track.ezyrunners.com/DEL-2026011012345"
}
Retrieve details of a specific delivery.
{
"delivery_id": "DEL-2026011012345",
"status": "in_transit",
"runner": {
"id": "RUN-123",
"name": "Rahul K",
"phone": "+91987654****",
"rating": 4.8,
"vehicle": "Two Wheeler"
},
"pickup": { ... },
"dropoff": { ... },
"timeline": [
{ "status": "pending", "time": "2026-01-10T14:00:00Z" },
{ "status": "assigned", "time": "2026-01-10T14:05:00Z" },
{ "status": "picked_up", "time": "2026-01-10T14:25:00Z" }
]
}
Cancel a pending or assigned delivery.
{
"reason": "Customer cancelled order"
}
Get a list of all deliveries with optional filters.
| Parameter | Type | Description |
|---|---|---|
| status | string | Filter by status (pending, assigned, picked_up, delivered, cancelled) |
| from_date | string | Start date (ISO 8601) |
| to_date | string | End date (ISO 8601) |
| limit | integer | Results per page (max 100) |
| offset | integer | Pagination offset |
Get real-time tracking information for a delivery.
{
"delivery_id": "DEL-2026011012345",
"status": "in_transit",
"runner_location": {
"latitude": 17.4350,
"longitude": 78.4820,
"updated_at": "2026-01-10T14:45:00Z"
},
"eta_minutes": 8,
"distance_remaining_km": 1.5
}
Configure webhooks to receive real-time notifications about delivery status changes.
{
"url": "https://yourapp.com/webhooks/ezyrunners",
"events": ["delivery.assigned", "delivery.picked_up", "delivery.delivered"],
"secret": "your_webhook_secret"
}
| Event | Description |
|---|---|
delivery.created | New delivery request created |
delivery.assigned | Runner assigned to delivery |
delivery.picked_up | Package picked up by runner |
delivery.in_transit | Runner is en route to destination |
delivery.delivered | Package delivered successfully |
delivery.cancelled | Delivery cancelled |
delivery.failed | Delivery failed |
Get a price estimate without creating a delivery.
{
"pickup_lat": 17.4239,
"pickup_lng": 78.4738,
"dropoff_lat": 17.4456,
"dropoff_lng": 78.4892,
"vehicle_type": "bike"
}
{
"distance_km": 5.2,
"estimated_time_minutes": 18,
"fare": {
"base": 25.00,
"distance": 41.60,
"surge": 0.00,
"total": 66.60
},
"currency": "INR"
}