canonical: https://jentic.com/apis/just-eat.co.uk/just-eat-main

# Just Eat UK

Jentic publishes the only available OpenAPI specification for Just Eat UK, keeping it validated and agent-ready. The Just Eat UK 'main' API is the partner and consumer surface for the UK marketplace and shares scope with the just-eat-uk slug. Across 98 endpoints it covers checkouts, consumer profiles and communication preferences, delivery pools, delivery fees and estimates, and async webhook callbacks for events such as acceptance-requested and delivery-failed. Auth uses partner JE-API-KEY headers for partner endpoints and JWT bearer tokens for consumer flows.

## For AI agents

Drive Just Eat UK marketplace operations: manage checkouts and delivery pools, fetch fees and estimates, update consumer preferences, and respond to async order webhooks.

## Scope

Does not handle restaurant menu management, payment settlement, or driver-location tracking - use for partner checkout, delivery pools, fees, and consumer preference flows only.

## Capabilities

- Get and update consumer profiles plus communication preferences via `/consumers/{tenant}` and `/consumers/{tenant}/me/communication-preferences`
- Create, list, modify, and delete delivery pools through `/delivery/pools` and `/delivery/pools/{deliveryPoolId}`
- Set per-pool availability and daily hours via `/delivery/pools/{deliveryPoolId}/availability/relative` and /hours
- Quote delivery fees and estimates and list available fulfilment times for a checkout via /delivery-fees, `/delivery/estimate`, and `/checkout/{tenant}/{checkoutId}/fulfilment/availabletimes`
- Update an in-progress checkout for a tenant via PATCH `/checkout/{tenant}/{checkoutId}`
- Acknowledge and fulfil async webhooks (acceptance-requested, delivery-failed, attempted-delivery-query-resolved) using the documented 202-then-callback pattern

## Use cases

### Marketplace Checkout Embed

Storefronts that embed Just Eat checkouts call GET `/checkout/{tenant}/{checkoutId}` to load the order, GET `/checkout/{tenant}/{checkoutId}/fulfilment/availabletimes` for slot options, and PATCH `/checkout/{tenant}/{checkoutId}` once the customer confirms. This keeps slot accuracy and total price aligned with the real Just Eat backend rather than a stale snapshot.

Example prompt: Load checkout 'co-501' on tenant 'uk', call GET `/checkout/uk/co-501/fulfilment/availabletimes`, then PATCH `/checkout/uk/co-501` with the chosen time slot.

### Delivery Pool Lifecycle for Restaurant Groups

Multi-site restaurant groups manage their own driver fleets through delivery pools. POST `/delivery/pools` creates a pool, PUT `/delivery/pools/{deliveryPoolId}/hours` configures daily windows, DELETE `/delivery/pools/{deliveryPoolId}/restaurants` removes restaurants, and PATCH `/delivery/pools/{deliveryPoolId}` updates pool config. This puts the daily roster in code rather than in the partner dashboard.

Example prompt: For pool 'pool-77', call PUT `/delivery/pools/pool-77/hours` with start '12:00' and end '23:30', then PATCH `/delivery/pools/pool-77` to add a new restaurant.

### Async Webhook Compliance

Just Eat dispatches certain partner events as async webhooks that must return 202 Accepted then post a follow-up Success or Failure payload to the supplied callback URL. Implementing this pattern correctly for /acceptance-requested and /delivery-failed prevents Just Eat from retrying excessively and keeps order timelines accurate.

Example prompt: On POST /acceptance-requested with a callback querystring, return 202 Accepted, run the local accept-or-reject logic, then POST {returnUrl} with status 'Success' or 'Failure'.

### Agent-Driven Partner Configuration

An AI ops agent for a restaurant group can adjust delivery pools, hours, and consumer-facing communications via Jentic. The agent searches 'modify a delivery pool', loads PATCH `/delivery/pools/{deliveryPoolId}`, and executes with the partner JE-API-KEY held in Jentic. Configuration changes that took dashboard taps now happen through chat.

Example prompt: Through Jentic, search 'modify a delivery pool', load PATCH `/delivery/pools/{deliveryPoolId}`, and execute with deliveryPoolId 'pool-77' to extend operating hours by one hour.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/checkout/{tenant}/{checkoutId}` | Get an in-progress checkout |
| PATCH | `/checkout/{tenant}/{checkoutId}` | Update an in-progress checkout |
| GET | `/checkout/{tenant}/{checkoutId}/fulfilment/availabletimes` | Get available fulfilment times |
| POST | `/delivery/pools` | Create a delivery pool |
| PATCH | `/delivery/pools/{deliveryPoolId}` | Modify a delivery pool |
| PUT | `/delivery/pools/{deliveryPoolId}/hours` | Set daily operating hours for a delivery pool |
| GET | `/delivery-fees/{tenant}` | Get restaurant delivery fees |
| GET | `/delivery/estimate` | Get a delivery estimate |

## Key resources

- **Checkout** — Read and update tenant checkouts and fetch fulfilment availability
- **Consumers** — Manage consumer profiles and communication preferences per tenant
- **Delivery Pools** — Create and manage delivery pools and their hours, restaurants, and availability
- **Delivery Fees and Estimates** — Fetch restaurant delivery fees and per-order estimates
- **Async Webhooks** — Acceptance-requested, delivery-failed, and attempted-delivery-query-resolved callbacks

## Why Jentic

- **Setup:** Wiring Just Eat UK by hand means reconciling several auth methods including a partner API key and consumer JWTs, choosing the right regional host such as the UK one, and threading checkout and delivery-pool ids through each call yourself. Through Jentic you install once, import Just Eat UK from the API Directory, store the credential once, and your agent calls it.
- **Permission scoping:** Just Eat puts the delivery pool id in the URL path (`/delivery/pools/{deliveryPoolId}`), so a rule can pin your agent to one pool: it can update that pool and its hours and nothing else. You choose the operations it may call, so ones like patching a checkout are not included unless you add them.
- **Credential handling:** Your Just Eat partner API key and consumer JWTs are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'modify a delivery pool' or 'get a delivery estimate', and Jentic returns the matching Just Eat operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Grubhub API** — US food delivery marketplace with comparable partner and consumer surfaces.
- **Toast API** — Restaurant POS platform that ingests orders from marketplaces like Just Eat.
- **Stripe API** — Pair Just Eat order data with Stripe for partner payouts and refunds.

## FAQ

### Why is there no official OpenAPI spec for Just Eat UK?

Just Eat does not publish a public OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Just Eat UK via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Just Eat UK API use?

Partner endpoints use a JE-API-KEY header (Authorization: JE-API-KEY <key>) and consumer endpoints use a JWT bearer token. Jentic stores both credential types in the encrypted vault and supplies them at execution time.

### Can I create and manage delivery pools with the Just Eat UK API?

Yes. POST `/delivery/pools` creates a pool, PATCH `/delivery/pools/{deliveryPoolId}` updates it, PUT `/delivery/pools/{deliveryPoolId}/hours` sets daily operating hours, and DELETE `/delivery/pools/{deliveryPoolId}/restaurants` removes restaurants from the pool.

### What are the rate limits for the Just Eat UK API?

Rate limits are negotiated per partner agreement; the spec does not enumerate fixed values. Treat 429 responses with exponential backoff and stagger pool-availability updates.

### How do I get a delivery estimate with the Just Eat UK API through Jentic?

Search Jentic for 'get delivery estimate', load GET `/delivery/estimate`, and execute with the postcode and restaurant identifiers. Jentic resolves auth and returns the estimate to display in your checkout.

### How should I respond to async webhooks?

Return 202 Accepted immediately, perform the long-running operation locally, then POST the supplied returnUrl with a JSON body containing status 'Success' or 'Failure' and any webhook-specific data.

### Can I limit what my agent is allowed to do with the Just Eat UK API?

Yes. Because your Jentic One instance is self-hosted, your own rules decide which Just Eat UK operations and credentials the agent may use. Just Eat carries the delivery pool id in the URL path (`/delivery/pools/{deliveryPoolId}`), so you can pin the agent to a single pool and let it update only that pool and its hours via PUT `/delivery/pools/{deliveryPoolId}/hours.` You pick the exact operations it may call, so actions like PATCH `/checkout/{tenant}/{checkoutId}` stay off limits unless you add them.
