integrations.sh
← all integrations

Just Eat UK

OpenAPI apis-guru ecommerce

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.1Authorization: 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.1Authorization: Bearer abcd123456789

Date Formats

Date and time formats

All dates and times should use the .

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}
  1. Otherwise, if the result is a failure, return the following:
POST {returnUrl} HTTP/1.1
{      "status": "Failure",      "message": "{failureMessage}",      "data": {}   // webhook-specific response object}
Homepage
https://api.apis.guru/v2/specs/just-eat.co.uk/1.0.0.json
Provider
just-eat.co.uk
OpenAPI version
3.0.0
Spec (JSON)
https://api.apis.guru/v2/specs/just-eat.co.uk/1.0.0/openapi.json
Spec (YAML)
https://api.apis.guru/v2/specs/just-eat.co.uk/1.0.0/openapi.yaml

Tools (100)

Extracted live via the executor SDK.

  • attemptedDeliveryApi.postTenantOrdersOrderIdQueriesAttempteddelivery

    If the customer hasn't answered the door to collect the order, then an attempted delivery event can be created using this endpoint.

  • attemptedDeliveryApi.postTenantOrdersOrderIdQueriesAttempteddeliveryResolutionRedeliverorder

    If the customer responds, then you can trigger the redelivery of an order through this endpoint

  • attemptedDeliveryWebhooks.putAttemptedDeliveryQueryResolved

    This webhook will be invoked whenever an attempted delivery query has been resolved.

  • attemptedDeliveryWebhooks.putDeliveryFailed

    This webhook will be invoked whenever an attempted delivery event is created from the device.

  • checkout.getCheckoutTenantCheckoutId

    Get the details required to fulfil an order, which includes:

    • The restaurant selling the items to be purchased
    • The customer making the purchase
    • How, where and when the items will be received by the customer
    • Instructions about the order
  • checkout.getCheckoutTenantCheckoutIdFulfilmentAvailabletimes

    Gets a collection of times for when an order can be fulfilled.

  • checkout.patchCheckoutTenantCheckoutId

    Update the details required to fulfil an order, which includes:

    • The customer making the purchase
    • Where and when the items will be received by the customer
    • Instructions about the order
  • consumerQueries.postOrdersTenantOrderIdConsumerqueriesLateordercompensationRestaurantresponse

    If a customer has requested compensation for a late order, a restaurant response is given by calling this endpoint.

  • consumerQueries.postOrdersTenantOrderIdConsumerqueriesLateorderRestaurantresponse

    If a customer has requested an update on the status of a late order, a response can be given by calling this endpoint.

  • consumerQueriesWebhooks.postLateOrderCompensationQuery

    This webhook will be invoked when a late order compensation query has been raised and a restaurant response is required.

  • consumerQueriesWebhooks.postLateOrderQuery

    This webhook will be invoked when a late order query has been raised and a restaurant response is required.

  • consumers.deleteConsumersTenantMeCommunicationPreferencesTypeSubscribedChannelsChannel

    Remove subscription of a specific communication preference channel.

  • consumers.getConsumersTenant

    Currently this operation only supports retrieving a count of consumer accounts given an email address.

  • consumers.getConsumersTenantMeCommunicationPreferences

    Get all communication preferences for a given consumer.

  • consumers.getConsumersTenantMeCommunicationPreferencesType

    Get channel subscriptions for a given consumer's communication preference type

  • consumers.postConsumersTenant

    Creates a consumer for the given tenant.

  • consumers.postConsumersTenantMeCommunicationPreferencesTypeSubscribedChannelsChannel

    Subscribe to a specific communication preference channel.

  • consumers.putConsumersTenantMeCommunicationPreferencesType

    Set only the channel subscriptions for a given consumer's communication preference type. E.g., An empty list of subscribed Channels implies unsubscribe from all channels.

  • deliveryFee.getDeliveryFeesTenant

    Retrieve delivery fees for many restaurants. Returns fees and minimum order values required for delivery orders.

  • deliveryPoolsApi.deleteDeliveryPoolsDeliveryPoolId

    The restaurants will no longer be associated with the pool.

  • deliveryPoolsApi.deleteDeliveryPoolsDeliveryPoolIdRestaurants

    Remove restaurants from a delivery pool

  • deliveryPoolsApi.getDeliveryPools

    A delivery pool is a named group of drivers which deliver food for a set of restaurants.

  • deliveryPoolsApi.getDeliveryPoolsDeliveryPoolId

    A delivery pool is a named group of drivers which deliver food for a set of restaurants.

  • deliveryPoolsApi.getDeliveryPoolsDeliveryPoolIdAvailabilityRelative

    Get the current amount of time it will take a driver to collect a new order from a restaurant in the pool.

  • deliveryPoolsApi.patchDeliveryPoolsDeliveryPoolId

    Modify a delivery pool, changing its name, restaurants or both

  • deliveryPoolsApi.postDeliveryPools

    A delivery pool is a named group of drivers which deliver food for a set of restaurants.

  • deliveryPoolsApi.putDeliveryPoolsDeliveryPoolId

    Replace an existing delivery pool changing all of its properties

  • deliveryPoolsApi.putDeliveryPoolsDeliveryPoolIdAvailabilityRelative

    Set the average amount of time it will take a driver to collect a new order from a restaurant in the pool.

  • deliveryPoolsApi.putDeliveryPoolsDeliveryPoolIdHours

    Set the daily start and end times for a pool or set closed flag if the pool does not operate on that day. Start and end times for all days must be provided. Though the API accepts array of start and end times for each day, multiple start and end time for a day are not accepted. If the end time for a day is equal to or before start time, end time will be considered as time for the next day.

  • deliveryPoolsApi.putDeliveryPoolsDeliveryPoolIdRestaurants

    Add additional restaurants to a delivery pool

  • orderAcceptanceApi.postOrdersOrderIdComplete

    Call when an order is complete. An order can only be marked as complete if it hasn't already been marked as cancelled or complete.

  • orderAcceptanceApi.postOrdersOrderIdReadyforcollection

    Call when a collection order is ready to be collected by the customer. An order can only be marked as ready for collection if it is a collection order in the accepted state.

  • orderAcceptanceApi.putOrdersOrderIdAccept

    Call when an order has been accepted. An order can only be accepted if it hasn't previously been accepted, rejected, cancelled or ignored

  • orderAcceptanceApi.putOrdersOrderIdCancel

    Call when an order has been cancelled by Ops. Cancelling an order overrides any previous accept/reject calls. This should not be used for restaurant rejection but only from Ops involvement

  • orderAcceptanceApi.putOrdersOrderIdDuedate

    Use this to update the estimated time of arrival for an order (i.e. when you expect the customer to receive the food). NOTE: An initial estimate is given . This endpoint can be used to update that estimate.

  • orderAcceptanceApi.putOrdersOrderIdIgnore

    Call when an order has been ignored by restaurant. An order can only be ignored if it hasn't previously been accepted, rejected, cancelled or ignored

  • orderAcceptanceApi.putOrdersOrderIdReject

    Call when an order has been rejected. An order can only be rejected if it hasn't previously been accepted, rejected, cancelled or ignored

  • orderAcceptanceWebhooks.postAcceptanceRequested

    This webhook will be invoked whenever acceptance has been requested for the order.

  • orderAcceptanceWebhooks.postOrderAccepted

    This webhook will be invoked whenever the order was accepted.

  • orderAcceptanceWebhooks.postOrderCancelled

    This webhook will be invoked whenever the order was cancelled.

  • orderAcceptanceWebhooks.postOrderRejected

    This webhook will be invoked whenever the order was rejected.

  • orderAcceptanceWebhooks.putRedeliveryRequested

    This webhook will be invoked whenever the customer responds to the attempted delivery notification.

  • orderApi.postOrders

    Create order

  • orderDeliveryApi.getDeliveryEstimate

    Get delivery estimate

  • orderDeliveryApi.putOrdersDeliverystateDriverlocation

    Current driver location (bulk upload)

  • orderDeliveryApi.putOrdersOrderIdDeliverystateAtdeliveryaddress

    The _at delivery address_ callback should be sent when the driver thinks that they have arrived at the specified delivery address.

    NB; This callback should be distinct from the delivered callback, as Just Eat use this callback to understand how much time is spent locating the customer's address.

  • orderDeliveryApi.putOrdersOrderIdDeliverystateAtrestaurant

    The at restaurant callback should be sent when the driver arrives at the restaurant and is ready to collect the order.

  • orderDeliveryApi.putOrdersOrderIdDeliverystateAtrestauranteta

    In the UK, this endpoint updates the estimated arrival time at the restaurant. This value can be overridden from other endpoints like

    This endpoint should be used to set initial at restaurant ETAs prior to driver assignment where available. The earlier a delivery partner is able to provide an estimate of when the driver will arrive at the restaurant the more likely it is that driver arrival and order preparation will be aligned.

    In other tenants (Not UK):Note that if set for a given order, this Eta will NOT be overridden by any other at restaurant ETAs provided in `DriverAssigned` or `DriverLocation` requests

    This value is significant since it informs when a restaurant is instructed to start preparing food. When the time remaining between current time and the estimated time of arrival becomes less than the restaurant's configured preparation time, food preparation is initiated

  • orderDeliveryApi.putOrdersOrderIdDeliverystateDelivered

    The delivered callback should be sent when the driver has handed the food to the customer and completed the order.

  • orderDeliveryApi.putOrdersOrderIdDeliverystateDriverassigned

    The driver assigned callback should be sent when a driver is assigned to the order. It should communicate important details about the driver - and also an estimated time for the driver to arrive at the restaurant and delivery address.

  • orderDeliveryApi.putOrdersOrderIdDeliverystateDriverlocation

    Just Eat requires all delivery partners to send regular driver location callbacks, that record the GPS location of the drivers assigned to each order

    Partners should aim to supply this callback approximately every 10 seconds.

    Please provide an up-to-date ETA for when the driver will reach the restaurant in this request - this value is significant since it informs when a restaurant is instructed to start preparing food - when the time remaining between current time and the estimated time of arrival becomes less than the restaurant's configured preparation time, food preparation is initiated

    Note that at restaurant Eta provided in this request will NOT override any ETA set in the Driver At Restaurant Eta request

  • orderDeliveryApi.putOrdersOrderIdDeliverystateDriverunassigned

    The driver unassigned callback should be sent when a driver is unassigned from the order. It may details about the reason for cancelling the assignment, the driver details, and any newer at restaurant and customer estimations.

  • orderDeliveryApi.putOrdersOrderIdDeliverystateOnitsway

    The on its way callback should be sent when the driver departs the restaurant with the customer's order. It should contain an ETA that records when the driver expects to arrive at the customer's address.

  • orderDeliveryWebhooks.putDriverAssignedToDelivery

    Driver Assigned to Delivery

  • orderDeliveryWebhooks.putDriverAtDeliveryAddress

    Driver at delivery address

  • orderDeliveryWebhooks.putDriverAtRestaurant

    Driver at restaurant

  • orderDeliveryWebhooks.putDriverHasDeliveredOrder

    Driver has delivered order

  • orderDeliveryWebhooks.putDriverLocation

    Driver Location

  • orderDeliveryWebhooks.putDriverOnTheirWayToDeliveryAddress

    Driver on their way to delivery address

  • orderDeliveryWebhooks.putOrderIsReadyForPickup

    The "Ready for pickup" event lets the delivery partner know that the food has been cooked and is now ready for collection up from the restaurant.

    When this event is received, it is important that you let your driver know that the order should now be collected from inside the restaurant. For example, this driver notification could take the form of an in-app notification or an SMS message.

    This communication is needed to support restaurants who are unable to accommodate drivers inside their premises, as it allows restaurants to notify drivers waiting outside that they should come inside to collect their order.

    NB; This event can be sent by the restaurant at any point after the order is accepted by the restaurant (for instance, this event may be sent before the driver has arrived at the restaurant).

  • orderDeliveryWebhooks.putOrderRequiresDeliveryAcceptance

    This webhook will be invoked when we have determined that an order is required acceptance for delivery. Upon receiving the request, the order should be scheduled for pickup by a courier/driver. We expect an immediate 201 response from this webhook to denote that you have received the request.

  • orderWebhooks.postOrderReadyForPreparationAsync

    This webhook will be invoked when we have determined that an order is ready for preparation. Upon receiving the request, you should perform any preparation-related activities, such as sending the order to the POS system / kitchen screen. NOTE: This version of the webhook is asynchronous, and we expect a response in two parts:

    1. We expect an immediate 202 response from this webhook to denote that you have received the request;
    2. Following that, we expect an - indicating either success or failure of the operation. The body for the async callbacks are as below:

    Success callback

    {      "status": "Success",      "message": "Order successfully sent to POS",      "data": {}}

    Failure callback

    {      "status": "Failure",      "message": "{errorMessage}",   // e.g. "The POS is currently in use"      "data": {}}
  • orderWebhooks.postOrderReadyForPreparationSync

    This webhook will be invoked when we have determined that an order is ready for preparation. Upon receiving the request, you should perform any preparation-related activities, such as sending the order to the POS system / kitchen screen.

  • orderWebhooks.postSendToPosFailed

    This webhook will be invoked if we experience an error or timeout in sending an order to the underlying POS / kitchen screen. When notified via this webhook, typically you will perform some form of alerting or backup flow (e.g. ask the operator to enter the order manually into the POS). NOTE: This message contains the OrderId, but not the full order. It is assumed that you have stored/cached the full order details earlier in the flow - e.g. via the webhook.

  • publiclyAccessible.getOrderTimes

    Get list of the delivery and collection lead times supplied by the restaurant

  • publiclyAccessible.updateOrderTime

    Update the restaurant's delivery and collection lead times

  • restaurantClaims.getRestaurantsTenantRestaurantIdCustomerclaims

    Provides claims for a given restaurant with optional filtering

  • restaurantClaims.getRestaurantsTenantRestaurantIdCustomerclaimsId

    Get information about a order claim

  • restaurantClaims.postRestaurantsTenantRestaurantIdCustomerclaimsIdRestaurantresponse

    Submit a restaurant response for the claim, where the restaurant can tell us if they accept or reject the claim

  • restaurantClaims.putRestaurantsTenantRestaurantIdCustomerclaimsIdRestaurantresponseJustification

    Add reason and optional comments in case of rejection of order claim

  • restaurantEvents.deleteV1TenantRestaurantsIdEventOffline

    Removes specified restaurant from offline events. If role header is System or Operations only events created by the specified role will be affected. If role header is Restaurant then all events that have allowRestaurantOverride=true will be affected.

  • restaurantEvents.postV1TenantRestaurantsEventOffline

    Creates an event for the specified restaurants that indicates a reason for those restaurants to be offline.

  • restaurantEventsWebhooks.putRestaurantOfflineStatus

    Callback to notify that a restaurant has been taken offline through an active Restaurant Event or there's been a change in whether the restaurant can override a previous offline status.

  • restaurantEventsWebhooks.putRestaurantOnlineStatus

    Callback to notify that a restaurant is now able to come back online as there are no longer any active offline Restaurant Events

  • restaurantQueries.postOrdersTenantOrderIdRestaurantqueriesCompensation

    When an order is cancelled the restaurant might be eligible for compensation, this endpoint allows a request for compensation to be created.

  • restaurantQueriesWebhooks.postOrderEligibleForRestaurantCompensation

    This webhook will be invoked for every cancelled order and it will inform if the order is eligible for compensation.

  • restaurants.getRestaurantServiceTimes

    Gets the service times (the weekly times at which a restaurant is in service for delivery or collection) for a restaurant

  • restaurants.getRestaurantsTenantRestaurantIdCatalogue

    Get details of the restaurant's product catalogue

  • restaurants.getRestaurantsTenantRestaurantIdCatalogueAvailabilities

    Get all availabilities on the restaurant's menu

  • restaurants.getRestaurantsTenantRestaurantIdCatalogueCategories

    Get all categories on the restaurant's menu

  • restaurants.getRestaurantsTenantRestaurantIdCatalogueCategoriesCategoryIdItems

    Get all item IDs which are assigned to the specified category

  • restaurants.getRestaurantsTenantRestaurantIdCatalogueItems

    Get all menu items on the restaurant's menu

  • restaurants.getRestaurantsTenantRestaurantIdCatalogueItemsItemIdDealgroups

    Get all deal groups for the menu item with the provided ID

  • restaurants.getRestaurantsTenantRestaurantIdCatalogueItemsItemIdDealgroupsDealGroupIdDealitemvariations

    Get all deal item variations for the deal group with the specified ID, in the menu item with the specified ID

  • restaurants.getRestaurantsTenantRestaurantIdCatalogueItemsItemIdModifiergroups

    Get all modifier groups for the menu item with the provided ID

  • restaurants.getRestaurantsTenantRestaurantIdCatalogueItemsItemIdVariations

    Get all variations for the menu item with the provided ID

  • restaurants.getRestaurantsTenantRestaurantIdFees

    Get the fees currently applied to a restaurant in a particular tenant

  • restaurants.getRestaurantsTenantRestaurantIdMenu

    The endpoint will return a 301 redirect containing a URL that will grant access to the Menu file. The URL will only be available for a short period of time. The Menu file will be a single document containing the information that Just Eat has and uses to display the Menu on our customer clients. This will include a collection of items, a collection of Categories and a collection of Availabilities for when the items are available. Partners will be able to retrieve the Menu for any Restaurants that they currently manage.

  • restaurants.putMenuForIngestion

    This will begin an asynchronous process that will lead to that menu becoming live on the Just Eat platform

  • restaurants.putRestaurantsDriverEta

    Set the average amount of time it will take a driver to collect a new order from a restaurant.

  • restaurants.putRestaurantServiceTimes

    Creates or updates the service times (the weekly times at which a restaurant is in service for delivery or collection) for a restaurant

  • restaurants.putRestaurantsTenantRestaurantIdFees

    Creates or Updates the fees for a restaurant in a particular tenant

  • restaurants.searchByLocation

    Provides details of all restaurants that deliver to the specified location

  • restaurants.searchByPostcode

    Provides details of restaurants that deliver to the specified postcode

  • restaurantWebhooks.postMenuIngestionComplete

    Callback to confirm that an attempt to ingest a menu has completed either successfully or unsuccessfully

  • restaurantWebhooks.postOrderTimeUpdated

    Callback to notify recipients that there has been a change to the restaurant order times for a given day and service type

  • search.getSearchAutocompleteTenant

    Provides auto-completed search terms for restaurants, cuisines and products available in a given location.

  • search.getSearchRestaurantsTenant

    Get restaurants available in a given lat-long which match a search term. Matches can be found against the name, a cuisine or a product.

  • openapi.previewSpec

    Preview an OpenAPI document before adding it as a source

  • openapi.addSource

    Add an OpenAPI source and register its operations as tools