Skip to content

Just Eat UK API

by just-eat.co.uk

API keyHTTPSShopping
Open documentation ↗

Overview

# Just Eat API Just Eat offers services for our various business partners and our consumer applications. How you interact with the API depends on the services you wish to interact with. ## Security ### HTTPS All api calls and callbacks require HTTPS. Your service will need a valid SSL certificate and be accessible via the standard SSL port (port 443). ## Making an API request Some API calls require an API key, to authenticate the partner calling the API. ``` PUT https://uk-partnerapi.just-eat.io/orders/abcd1234 HTTP/1.1 Authorization: JE-API-KEY abcd123456789 ``` Other calls require a user token in the form of a JWT. ``` GET https://uk.api.just-eat.io/consumer/me/orders/uk HTTP/1.1 Authorization: Bearer abcd123456789 ``` ## Date Formats ### Date and time formats All dates and times should use the [ISO 8601 standard for representation of dates and times](https://en.wikipedia.org/wiki/ISO_8601). #### For instance: * DueDateWithUtcOffset: `"2015-05-26T14:52:35.5444292+01:00"` - Local time: `14:52` - UTC time: `13:52` - UTC offset: `+1hr` (due to daylight time saving) * DueDateWithUtcOffset: `"2015-02-03T11:10:00.0000000+00:00"` - Local time: `11:10` - UTC time: `11:10` - UTC offset: `0` (no daylight time saving, local time is equivalent to UTC) Note that the offset may be for a timezone different to your own, so you should alway convert to your own local time for display purposes (e.g. on receipts and terminals). ### Callback timestamps Timestamps sent to Just Eat should be recorded as the current local time (including any changes needed to account for daylight saving) with an accompanying offset that shows the difference between the recorded local time and the current UTC time. If it is not possible to record timestamps in local time, timestamps may be recorded in UTC time with a 00:00 offset. ## Async Webhooks Some of the webhooks on the platform are configured as being 'async' webhooks. These are for long-running operations, and work as follows: 1. Your webhook is invoked with a `?callback={returnUrl}` query string parameter. The `returnUrl` is a unique URL that you will need to send the async response to. 2. Return an immediate `202 Accepted` response from the webhook endpoint, to indicate that you have received the request. 3. Perform the long-running operation. This can be deemed either a _success_; or a _failure_. 4. If the result is a _**success**_, return the following: ``` POST {returnUrl} HTTP/1.1 { "status": "Success", "message": "{successMessage}", "data": {} // webhook-specific response object } ``` 5. Otherwise, if the result is a _**failure**_, return the following: ``` POST {returnUrl} HTTP/1.1 { "status": "Failure", "message": "{failureMessage}", "data": {} // webhook-specific response object } ```

Just Eat UK is a shopping API from just-eat.co.uk. Requests are authenticated with an API key. It is served over HTTPS. Its OpenAPI description documents 98 endpoints.

At a glance

Authentication
API key
HTTPS
Yes
CORS
Unknown
Category
Shopping
Base URL
https://uk.api.just-eat.io
Version
1.0.0
Endpoints
98
Spec updated
2021-06-21

Make a first request

Replace the placeholders; the documentation says exactly where credentials go.

cURL
curl -X GET "https://uk.api.just-eat.io/delivery/pools" \
  -H "Accept: application/json" \
  -H "X-API-Key: YOUR_API_KEY"
JavaScript
const response = await fetch("https://uk.api.just-eat.io/delivery/pools", {
  method: "GET",
  headers: {
    "Accept": "application/json",
    "X-API-Key": "YOUR_API_KEY",
  },
});
const data = await response.json();
console.log(data);
Python
import requests

response = requests.request(
    "GET",
    "https://uk.api.just-eat.io/delivery/pools",
    headers={
    "Accept": "application/json",
    "X-API-Key": "YOUR_API_KEY",
    },
    timeout=30,
)
print(response.json())

Endpoints

MethodPathWhat it does
POST/acceptance-requestedAcceptance requested
PUT/attempted-delivery-query-resolvedAttempted delivery query resolved
GET/checkout/{tenant}/{checkoutId}Get Checkout
PATCH/checkout/{tenant}/{checkoutId}Update Checkout
GET/checkout/{tenant}/{checkoutId}/fulfilment/availabletimesGet Available Fulfilment Times
GET/consumers/{tenant}Get consumers details
POST/consumers/{tenant}Create consumer
GET/consumers/{tenant}/me/communication-preferencesGet communication preferences
GET/consumers/{tenant}/me/communication-preferences/{type}Get channel subscriptions for a given consumer's communication preference type
PUT/consumers/{tenant}/me/communication-preferences/{type}Set only the channel subscriptions for a given consumer's communication preference type
POST/consumers/{tenant}/me/communication-preferences/{type}/subscribedChannels/{channel}Subscribe to a specific communication preference channel
DELETE/consumers/{tenant}/me/communication-preferences/{type}/subscribedChannels/{channel}Remove subscription of a specific communication preference channel
PUT/delivery-failedDelivery Attempt Failed
GET/delivery-fees/{tenant}Get restaurant delivery fees
GET/delivery/estimatedeprecatedGet delivery estimate
GET/delivery/poolsGet your delivery pools
POST/delivery/poolsCreate a new delivery pool
GET/delivery/pools/{deliveryPoolId}Get an individual delivery pool
PUT/delivery/pools/{deliveryPoolId}Replace an existing delivery pool
PATCH/delivery/pools/{deliveryPoolId}Modify a delivery pool
DELETE/delivery/pools/{deliveryPoolId}Delete a delivery pool
GET/delivery/pools/{deliveryPoolId}/availability/relativeGet availability for pickup
PUT/delivery/pools/{deliveryPoolId}/availability/relativeSet availability for pickup
PUT/delivery/pools/{deliveryPoolId}/hoursSet the delivery pools daily start and end times
PUT/delivery/pools/{deliveryPoolId}/restaurantsAdd restaurants to an existing delivery pool
DELETE/delivery/pools/{deliveryPoolId}/restaurantsRemove restaurants from a delivery pool
PUT/driver-assigned-to-deliveryDriver Assigned to Delivery
PUT/driver-at-delivery-addressDriver at delivery address
PUT/driver-at-restaurantDriver at restaurant
PUT/driver-has-delivered-orderDriver has delivered order
PUT/driver-locationDriver Location
PUT/driver-on-their-way-to-delivery-addressDriver on their way to delivery address
POST/late-order-compensation-querylate order compensation query, restaurant response required
POST/late-order-querylate order query, restaurant response required
POST/menu-ingestion-completeMenu ingestion complete
POST/order-acceptedOrder accepted
POST/order-cancelledOrder cancelled
POST/order-eligible-for-restaurant-compensationOrder Eligible For Restaurant Compensation
PUT/order-is-ready-for-pickupOrder ready for pickup
POST/order-ready-for-preparation-asyncOrder ready for preparation (async)
POST/order-ready-for-preparation-syncOrder ready for preparation (sync)
POST/order-rejectedOrder rejected
PUT/order-requires-delivery-acceptanceOrder requires delivery acceptance
POST/order-time-updatedOrder time updated
POST/ordersCreate order
PUT/orders/deliverystate/driverlocationUpdate current driver locations (bulk upload)
PUT/orders/{orderId}/acceptAccept order
PUT/orders/{orderId}/cancelCancel order
POST/orders/{orderId}/completeComplete order
PUT/orders/{orderId}/deliverystate/atdeliveryaddressUpdate order with driver at delivery address details
PUT/orders/{orderId}/deliverystate/atrestaurantUpdate order with driver at restaurant details
PUT/orders/{orderId}/deliverystate/atrestaurantetaUpdate the driver's estimated time to arrive at the Restaurant
PUT/orders/{orderId}/deliverystate/deliveredUpdate order with delivered details
PUT/orders/{orderId}/deliverystate/driverassignedUpdate order with driver assigned details
PUT/orders/{orderId}/deliverystate/driverlocationUpdate the driver's current location
PUT/orders/{orderId}/deliverystate/driverunassignedUpdate order with driver unassigned details
PUT/orders/{orderId}/deliverystate/onitswayUpdate order with driver on its way details
PUT/orders/{orderId}/duedateUpdate order ETA
PUT/orders/{orderId}/ignoreIgnore order
POST/orders/{orderId}/readyforcollectionMark order as ready for collection
PUT/orders/{orderId}/rejectReject order
POST/orders/{tenant}/{orderId}/consumerqueries/lateorder/restaurantresponseResponse to Late Order Update Request
POST/orders/{tenant}/{orderId}/consumerqueries/lateordercompensation/restaurantresponseUpdate late order compensation request with Restaurant response
POST/orders/{tenant}/{orderId}/restaurantqueries/compensationCreate Compensation requests
PUT/redelivery-requestedCustomer Requested Redelivery
PUT/restaurant-offline-statusRestaurant Offline Status
PUT/restaurant-online-statusRestaurant Online Status
GET/restaurants/bylatlongGet restaurants by location
GET/restaurants/bypostcode/{postcode}Get restaurants by postcode
PUT/restaurants/driver/etaSet ETA for pickup
GET/restaurants/{tenant}/{restaurantId}/catalogueGet product catalogue
GET/restaurants/{tenant}/{restaurantId}/catalogue/availabilitiesGet all availabilities
GET/restaurants/{tenant}/{restaurantId}/catalogue/categoriesGet all categories
GET/restaurants/{tenant}/{restaurantId}/catalogue/categories/{categoryId}/itemsGet all category item IDs
GET/restaurants/{tenant}/{restaurantId}/catalogue/itemsGet all menu items
GET/restaurants/{tenant}/{restaurantId}/catalogue/items/{itemId}/dealgroupsGet all menu item deal groups
GET/restaurants/{tenant}/{restaurantId}/catalogue/items/{itemId}/dealgroups/{dealGroupId}/dealitemvariationsGet all deal item variations for a deal group
GET/restaurants/{tenant}/{restaurantId}/catalogue/items/{itemId}/modifiergroupsGet all menu item modifier groups
GET/restaurants/{tenant}/{restaurantId}/catalogue/items/{itemId}/variationsGet all menu item variations
GET/restaurants/{tenant}/{restaurantId}/customerclaimsGet claims
GET/restaurants/{tenant}/{restaurantId}/customerclaims/{id}Get order claim
POST/restaurants/{tenant}/{restaurantId}/customerclaims/{id}/restaurantresponseSubmit a restaurant response for the claim
PUT/restaurants/{tenant}/{restaurantId}/customerclaims/{id}/restaurantresponse/justificationAdd reason and comments to the response
GET/restaurants/{tenant}/{restaurantId}/feesGet Restaurant Fees
PUT/restaurants/{tenant}/{restaurantId}/feesCreate or Update Restaurant Fees
GET/restaurants/{tenant}/{restaurantId}/menuGet the latest version of the restaurant's full menu
PUT/restaurants/{tenant}/{restaurantId}/menuCreate or update a menu
GET/restaurants/{tenant}/{restaurantId}/ordertimesGet the restaurant's delivery and collection lead times
PUT/restaurants/{tenant}/{restaurantId}/ordertimes/{dayOfWeek}/{serviceType}Update the restaurant's delivery and collection lead times
GET/restaurants/{tenant}/{restaurantId}/servicetimesGet service times
PUT/restaurants/{tenant}/{restaurantId}/servicetimesCreate or update service times
GET/search/autocomplete/{tenant}Get auto-completed search terms
GET/search/restaurants/{tenant}Search restaurants
POST/send-to-pos-failedSend to POS failed
POST/v1/{tenant}/restaurants/event/offlineCreate Offline Event
DELETE/v1/{tenant}/restaurants/{id}/event/offlineDelete Offline Event
POST/{tenant}/orders/{orderId}/queries/attempteddeliveryDelivery Attempt Failed
POST/{tenant}/orders/{orderId}/queries/attempteddelivery/resolution/redeliverorderRequest Redelivery of the Order

Questions

Does the Just Eat UK API need an API key?

Yes. The Just Eat UK API uses API key authentication; the documentation explains how to get credentials.

Does the Just Eat UK API support HTTPS?

Yes, the Just Eat UK API is served over HTTPS.

How many endpoints does the Just Eat UK API have?

Its OpenAPI description lists 98 endpoints in version 1.0.0. All of them are shown on this page.

What are alternatives to the Just Eat UK API?

Other Shopping APIs include Etsy, eBay, Flipkart Marketplace, Inventory Management, Intel Product Catalogue Service.

Compare alternatives →

Listed from APIs.guru (CC0).