Skip to content
Developer API · v1

Slider API

Add on-demand delivery to your website or app. Send orders to Slider's rider network through a simple REST API — your brand, your customer, our delivery.

The Slider API lets any business create deliveries programmatically. When your customer places an order on your platform, send it to Slider and our rider network handles pickup, delivery, and live tracking. Orders appear in your Slider dashboard, and you manage everything through your account wallet.

Base URLs:
Production: https://api.slider-app.com/v1
Sandbox: https://api-sandbox.slider-app.com/v1

All requests use HTTPS. All request and response bodies are JSON.

Authentication

Every request must include your API key in the X-Slider-Key header. You can get your API key from your Slider dashboard under API Credentials → API Keys.

X-Slider-Key:sk_live_your_api_key_here
Keep your key secret. Never expose it in client-side code or public repositories. All calls must be made from your server.

Create a Delivery

POST/deliveries

Creates a new delivery order. Slider assigns the nearest available rider and begins pickup. Returns a delivery object with a tracking ID.

Example request

# Create a delivery — rider is assigned instantly
curl -X POST https://api.slider-app.com/v1/deliveries \
  -H "X-Slider-Key: sk_live_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "order_id": "12345678",
    "account_id": "67aad895d28efa2a4aa35263",
    "display_order_id": "SDNN-9970",
    "vehicle_type": "bike",
    "schedule_at": "2026-07-28T16:31:36Z",
    "driver_tip": 0,
    "pickup": {
      "address": "12 Al Feehah St - Mohamed Bin Zayed City - Abu Dhabi",
      "latitude": 25.2048,
      "longitude": 55.2708,
      "directions": "Shop 12, Ground Floor, Marina Mall",
      "contact_number": "+971501234567"
    },
    "dropoff": {
      "address": "Dalma Mall",
      "latitude": 25.1972,
      "longitude": 55.2744,
      "directions": "Villa 7, Street 3, Jumeirah 1",
      "contact_number": "+971507654321"
    },
    "payment_on_delivery": {
      "type": "cash",
      "amount": 120.00
    }
  }'

Example response

{
  "order_number": 61841588,
  "order_id": "12345678",
  "status": "searching_rider",
  "vehicle_type": "bike",
  "fare": 10,
  "currency": "AED",
  "distance_km": 1.67,
  "tracking_url": "https://slider-app.com/t/90fo-hzv6.aPtdkiDcKW89",
  "created_at": "2026-08-03T08:47:12+00:00"
}

Parameters

Top-level fields

FieldTypeRequiredDescription
order_idstringrequiredUnique order ID from your client server. Used for reference and reconciliation. Will be included in webhook payloads.
account_idstringrequiredThe unique identifier of your client account in Slider. Found in your dashboard under Customer Accounts → Account ID.
display_order_idstringoptionalA human-readable reference number displayed to the rider and customer (e.g. "SDNN-9970"). Useful for logistics tracking and driver communication at pickup/dropoff.
vehicle_typestringrequiredVehicle for this delivery. Options: "bike", "car", or "any". See Vehicle Selection section.
driver_tipnumberoptionalTip amount in AED for the rider. Adds to fare and incentivizes faster delivery. Default: 0.
schedule_atstring / nulloptionalISO 8601 timestamp (UTC) for scheduled dispatch. Null or omitted = immediate. Minimum 30 minutes in the future. See Scheduling section.

Pickup object required

FieldTypeRequiredDescription
latitudenumberrequiredPickup latitude (decimal degrees)
longitudenumberrequiredPickup longitude (decimal degrees)
directionsstringoptionalText directions for the rider — building, floor, unit, landmark
contact_numberstringrequiredPhone number at pickup, E.164 format (e.g. +9715XXXXXXXX)

Dropoff object required

FieldTypeRequiredDescription
latitudenumberrequiredDrop-off latitude (decimal degrees)
longitudenumberrequiredDrop-off longitude (decimal degrees)
directionsstringoptionalText directions for the rider — building, floor, unit, landmark
contact_numberstringrequiredPhone number at drop-off, E.164 format

Vehicle Selection

The vehicle_type field controls which vehicle handles the delivery. Three options:

ValueDescription
"bike"Motorbike. Faster in traffic, lower cost. Maximum distance 35 km.
"car"Car. For larger items or longer distances. No distance cap.
"any"Let Slider choose the best available vehicle based on distance, item, and supply. Recommended default.
Tip: If you don't have a strong preference, send "vehicle_type": "any" and Slider optimises the assignment for speed and cost. Use "bike" or "car" only when the item requires a specific vehicle.

Scheduling

By default, deliveries are dispatched immediately. To schedule a delivery for a future time, set the schedule_at field to an ISO 8601 timestamp in UTC. Leave it null (or omit it) for instant dispatch.

// Immediate delivery
"schedule_at": null

// Scheduled for a specific time (ISO 8601, UTC)
"schedule_at": "2026-07-28T16:31:36Z"
FieldTypeRequiredDescription
schedule_atstring / nulloptionalISO 8601 timestamp in UTC (e.g. "2026-07-28T16:31:36Z") for future dispatch. Null or omitted = immediate. Must be at least 30 minutes in the future.

Cash / Card on Delivery

If your customer pays on delivery rather than prepaying on your site, use the payment_on_delivery object. The rider collects the amount and it is reconciled to your wallet. Omit this object entirely if the customer has already paid you online.

FieldTypeRequiredDescription
typestringrequiredEither "cash" or "card"
amountnumberrequiredAmount the rider collects from the customer, in AED
Collection limits:
• Cash on delivery — maximum AED 350 per order
• Card on delivery — maximum AED 500 per order
Requests above these limits are rejected with a 422 error.
// Cash on delivery, rider collects AED 120
"payment_on_delivery": {
  "type": "cash",
  "amount": 120.00
}
 
// Card on delivery, rider collects AED 480 via card machine
"payment_on_delivery": {
  "type": "card",
  "amount": 480.00
}
 
// Customer already paid online — omit the object entirely

Response

The API returns a delivery object with status, vehicle assignment, and tracking information.

Success Response (200 OK)

{
  "order_number": 61841588,
  "order_id": "12345684",
  "status": "searching_rider",
  "vehicle_type": "bike",
  "fare": 10,
  "currency": "AED",
  "distance_km": 1.67,
  "tracking_url": "https://slider-app.com/t/90fo-hzv6.aPtdkiDcKW89",
  "created_at": "2026-08-03T08:47:12+00:00"
}
FieldTypeDescription
order_numbernumberInternal order number assigned by Slider. Used for tracking.
order_idstringThe order ID you provided in the request. Used for reconciliation.
statusstringCurrent delivery status. Initial value: "searching_rider". Other values: "rider_assigned", "heading_to_pickup", "at_pickup", "picked_up", "in_transit", "delivered", "cancelled".
vehicle_typestringVehicle assigned for this delivery: "bike" or "car".
farenumberDelivery fare in AED.
currencystringCurrency code. Always "AED".
distance_kmnumberTotal delivery distance in kilometers.
tracking_urlstringPublic tracking URL. Share with customer to monitor delivery progress in real-time.
created_atstringISO 8601 timestamp (UTC) when the delivery was created.

Get Delivery Status

GET/deliveries/{order_number}

Retrieve the current status, driver location, and delivery details for an order.

Example response

{
  "order_number": 20969271,
  "order_id": "12345685",
  "status": "in_transit",
  "order_time": "2026-08-03T08:58:03+00:00",
  "vehicle_type": "bike",
  "fare": 10,
  "distance": 1.67,
  "driver": {
    "name": "Slider hero 2",
    "phone_number": "+971588496496",
    "latitude": 24.33163521,
    "longitude": 54.5171723,
    "vehicle": "Car"
  },
  "tracking_url": "https://slider-app.com/t/90fp-hzv8.SYhReGPNVtD5"
}

Response fields

FieldTypeDescription
order_numbernumberInternal order number assigned by Slider
order_idstringYour order reference ID from the creation request
statusstringCurrent delivery status (see Status values below)
order_timestring ISO 8601 timestamp (UTC) of when delivery should/did start. Scheduled time if provided, otherwise order creation time.
vehicle_typestringVehicle assigned: "bike" or "car"
farenumberDelivery fare in AED
distancenumberTotal delivery distance in kilometers
driverobjectDriver information with name, phone_number,latitude, longitude, and vehicle. Null if no driver assigned yet.
tracking_urlstringPublic tracking URL for customer real-time updates

Status values

searching_riderrider_assignedheading_to_pickupat_pickuppicked_upin_transitdeliveredreturn_trip_startedcancelled

Cancel Delivery

DELETE/deliveries/{order_number}

Cancel a delivery order. Only pending deliveries can be cancelled. Completed or already cancelled orders cannot be modified.

Example response

{
  "order_number": 20969271,
  "order_id": "12345685",
  "status": "cancelled",
  "cancelled_at": "2026-08-03T10:30:00+00:00"
}

Webhooks

Instead of polling for status, register a webhook URL in your dashboard to receive real-time updates. Slider sends a POST request to your URL every time a delivery's status changes.

Webhook payload

{
  "order_number": 20969271,
  "order_id": "12345685",
  "status": "rider_assigned",
  "estimated_delivery_time": 15,
  "tracking_link": "https://slider-app.com/t/4osd-9ary.lO_6-WOHpCmg",
  "driver_info": {
    "name": "Slider Driver",
    "phone_number": "+971502012345",
    "latitude": 24.33163521,
    "longitude": 54.5171723,
    "vehicle": "Car"
  },
  "timestamp": "2026-08-03T09:15:00+00:00"
}

Webhook fields

FieldTypeDescription
order_numbernumberInternal order number assigned by Slider
order_idstringYour order reference ID from the creation request
statusstringCurrent delivery status: searching_rider, rider_assigned, heading_to_pickup, at_pickup, picked_up, in_transit, delivered, return_trip_started, cancelled
estimated_delivery_timenumberEstimated minutes until delivery (null if not applicable)
tracking_linkstringPublic tracking URL for customer real-time updates
driver_infoobjectDriver details: name, phone_number, latitude, longitude, vehicle. Null if no driver assigned.
timestampstringISO 8601 timestamp (UTC) when webhook was triggered

Webhook events

Webhooks are sent for the following status changes:

EventDescription
rider_assignedA rider has been assigned to the delivery
heading_to_pickupRider is heading to pickup location
at_pickupRider arrived at pickup location
picked_upOrder picked up from location
in_transitOrder in transit to dropoff location
deliveredOrder successfully delivered
return_trip_startedRider returning item to pickup (failed delivery)
cancelledDelivery cancelled
Respond quickly. Return a 2xx status within a few seconds. Queue any slow work on your side — Slider retries deliveries that do not acknowledge.

Limits & Rules

RuleLimit
Bike maximum distance35 km — requests beyond this with "bike" are rejected. Use "car" or "any".
Car maximum distanceNo fixed cap
Cash on delivery maximumAED 350 per order
Card on delivery maximumAED 500 per order
Scheduling minimum lead time30 minutes in the future
WalletMust hold sufficient balance to cover the fare at creation

Error Codes

Status CodeErrorDescription
400Bad RequestMissing required field or invalid format (e.g., bad coordinates)
401UnauthorizedInvalid or missing X-Slider-Key header
402Payment RequiredInsufficient wallet balance
403ForbiddenCustomer account does not belong to your vendor or order does not belong to customer
404Not FoundDelivery not found
422Unprocessable EntityValidation failed (e.g., COD amount exceeds limit, scheduled time too soon, service not available in area)
500Internal Server ErrorUnexpected server error

Example error response

{
  "success": false,
  "message": "Order could not be processed due to insufficient wallet balance."
}
Slider Developer API · v1 · For support contact info@slider-app.com · Back to the developer portal