Just Eat Consumers API

The Consumers API from Just Eat — 4 operation(s) for consumers.

Business capability
Customer Data Management BC-420.10

Operations 7

GET /consumers/{tenant} Get consumers details #
POST /consumers/{tenant} Create consumer #
GET /consumers/{tenant}/me/communication-preferences Get 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… #
DELETE /consumers/{tenant}/me/communication-preferences/{type}/subscribedChannels/{channel} Remove subscription of a specific communication preference channel #
POST /consumers/{tenant}/me/communication-preferences/{type}/subscribedChannels/{channel} Subscribe to a specific communication preference channel #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/just-eat-consumers-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

just-eat-consumers-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    x-twitter: JustEatUK
  description: '# Just Eat API

    Just Eat offers services for our various business partners and our consumer applications.'
  title: Just Eat UK Consumers API
  version: 1.0.0
  x-apisguru-categories:
  - ecommerce
  x-logo:
    url: https://api.apis.guru/v2/cache/logo/https_twitter.com_JustEatUK_profile_image.png
  x-origin:
  - format: openapi
    url: https://uk.api.just-eat.io/docs/openapi.json
    version: '3.0'
  x-providerName: just-eat.co.uk
servers:
- description: Production URL for the UK API
  url: https://uk.api.just-eat.io
- description: Production URL for the DK, ES, IE, IT and NO API
  url: https://i18n.api.just-eat.io
- description: Production URL for the AU and NZ API
  url: https://aus.api.just-eat.io
tags:
- name: Consumers
paths:
  /consumers/{tenant}:
    get:
      description: Currently this operation only supports retrieving a count of consumer accounts given an email address.
      parameters:
      - description: The identifier for the tenant.
        in: path
        name: tenant
        required: true
        schema:
          type: string
      - description: Email address of the consumer.
        in: query
        name: emailAddress
        required: true
        schema:
          type: string
      - description: The account type of the consumer - currently only 'registered' accounts are supported.
        in: query
        name: accountType
        required: true
        schema:
          default: registered
          enum:
          - registered
          type: string
      - description: Returns the number of consumers that matches the `emailAddress` and `accountType`. The query value should be empty, e.g. `/consumers/uk/?emailAddress=someone@email.com&accountType=registered&count`.
        in: query
        name: count
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            text/plain:
              example: 1
              schema:
                type: integer
          description: Success
          headers:
            cache-control:
              description: Information about how the response can be cached.
              schema:
                type: string
        '400':
          content:
            application/json:
              example:
                errors:
                - description: The Email is missing or invalid.
                  errorCode: InvalidEmail
                faultId: 25bbe062-c53d-4fbc-9d6c-3df6127b94fd
                traceId: H3TKh4QSJUSwVBCBqEtkKw==
              schema:
                $ref: '#/components/schemas/4XXErrorSchema'
          description: Bad request.
        '404':
          content:
            application/json:
              example:
                errors:
                - description: Tenant not found
                  errorCode: TenantNotFound
                faultId: 25bbe062-c53d-4fbc-9d6c-3df6127b94fd
                traceId: H3TKh4QSJUSwVBCBqEtkKw==
              schema:
                $ref: '#/components/schemas/4XXErrorSchema'
          description: The specified tenant does not exist.
        '500':
          $ref: '#/components/responses/500ErrorResponse'
        '501':
          content:
            application/json:
              example:
                errors:
                - description: Non-Count queries have not been implemented
                  errorCode: NotImplemented
                faultId: 25bbe062-c53d-4fbc-9d6c-3df6127b94fd
                traceId: H3TKh4QSJUSwVBCBqEtkKw==
              schema:
                $ref: '#/components/schemas/5XXErrorSchema'
          description: The operation has not been implemented
      summary: Get consumers details
      tags:
      - Consumers
      operationId: getConsumersByTenant
      x-operation-id-source: derived
    post:
      description: Creates a consumer for the given tenant.
      parameters:
      - description: The identifier for the tenant. The only supported tenants are `uk`, `au` and `nz`
        in: path
        name: tenant
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConsumerCreate'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConsumerCreateResponse'
          description: Consumer created.
        '400':
          content:
            application/json:
              example:
                errors:
                - description: Email is required.
                  errorCode: BadRequest
                faultId: 25bbe062-c53d-4fbc-9d6c-3df6127b94fd
                traceId: H3TKh4QSJUSwVBCBqEtkKw==
              schema:
                $ref: '#/components/schemas/4XXErrorSchema'
          description: Bad request.
        '403':
          content:
            application/json:
              example:
                errors:
                - description: Not authorized to do this.
                  errorCode: Forbidden
                faultId: 25bbe062-c53d-4fbc-9d6c-3df6127b94fd
                traceId: H3TKh4QSJUSwVBCBqEtkKw==
              schema:
                $ref: '#/components/schemas/4XXErrorSchema'
          description: Forbidden.
        '404':
          content:
            application/json:
              example:
                errors:
                - description: Tenant not found
                  errorCode: TenantNotFound
                faultId: 25bbe062-c53d-4fbc-9d6c-3df6127b94fd
                traceId: H3TKh4QSJUSwVBCBqEtkKw==
              schema:
                $ref: '#/components/schemas/4XXErrorSchema'
          description: The specified tenant does not exist.
        '409':
          content:
            application/json:
              example:
                errors:
                - description: The specified email already exists
                  errorCode: Conflict
                faultId: 25bbe062-c53d-4fbc-9d6c-3df6127b94fd
                traceId: H3TKh4QSJUSwVBCBqEtkKw==
              schema:
                $ref: '#/components/schemas/4XXErrorSchema'
          description: The specified email already exists.
        '500':
          $ref: '#/components/responses/500ErrorResponse'
      summary: Create consumer
      tags:
      - Consumers
      operationId: postConsumersByTenant
      x-operation-id-source: derived
  /consumers/{tenant}/me/communication-preferences:
    get:
      description: Get all communication preferences for a given consumer.
      parameters:
      - description: Request tenant.
        in: path
        name: tenant
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              example:
                marketing:
                  isDefault: false
                  subscribedChannels:
                  - email
                  - sms
              schema:
                $ref: '#/components/schemas/CommunicationPreferences'
          description: Success
          headers:
            cache-control:
              description: Information about how the response can be cached.
              schema:
                type: string
        '401':
          content:
            application/json:
              example:
                errors:
                - description: You are unauthorized to perform this request.
                  errorCode: Unauthorized
                faultId: b39ae4c1-142f-4308-838d-1f01815e1cf1
                traceId: H3TKh4QSJUSwVBCBqEtkKw==
              schema:
                $ref: '#/components/schemas/4XXErrorSchema'
          description: Unauthorized
        '403':
          content:
            application/json:
              example:
                errors:
                - description: You are forbidden from performing this request.
                  errorCode: Forbidden
                faultId: b39ae4c1-142f-4308-838d-1f01815e1cf1
                traceId: H3TKh4QSJUSwVBCBqEtkKw==
              schema:
                $ref: '#/components/schemas/4XXErrorSchema'
          description: Forbidden
        '404':
          content:
            application/json:
              example:
                errors:
                - description: Tenant could not be found.
                  errorCode: NotFound
                faultId: b39ae4c1-142f-4308-838d-1f01815e1cf1
                traceId: H3TKh4QSJUSwVBCBqEtkKw==
              schema:
                $ref: '#/components/schemas/4XXErrorSchema'
          description: Not Found
        '500':
          $ref: '#/components/responses/500ErrorResponse'
          description: Internal Server Error
      summary: Get communication preferences
      tags:
      - Consumers
      operationId: getConsumersByTenantMeCommunicationPreferences
      x-operation-id-source: derived
  /consumers/{tenant}/me/communication-preferences/{type}:
    get:
      parameters:
      - description: Request tenant.
        in: path
        name: tenant
        required: true
        schema:
          type: string
      - description: The type of communication preferences.
        in: path
        name: type
        required: true
        schema:
          $ref: '#/components/schemas/CommunicationTypes'
      responses:
        '200':
          content:
            application/json:
              example:
                isDefault: false
                subscribedChannels:
                - email
                - sms
              schema:
                $ref: '#/components/schemas/ChannelSubscriptionsWithDerivedField'
          description: Success
          headers:
            cache-control:
              description: Information about how the response can be cached.
              schema:
                type: string
        '401':
          content:
            application/json:
              example:
                errors:
                - description: You are unauthorized to perform this request.
                  errorCode: Unauthorized
                faultId: b39ae4c1-142f-4308-838d-1f01815e1cf1
                traceId: H3TKh4QSJUSwVBCBqEtkKw==
              schema:
                $ref: '#/components/schemas/4XXErrorSchema'
          description: Unauthorized
        '403':
          content:
            application/json:
              example:
                errors:
                - description: You are forbidden from performing this request.
                  errorCode: Forbidden
                faultId: b39ae4c1-142f-4308-838d-1f01815e1cf1
                traceId: H3TKh4QSJUSwVBCBqEtkKw==
              schema:
                $ref: '#/components/schemas/4XXErrorSchema'
          description: Forbidden
        '404':
          content:
            application/json:
              example:
                errors:
                - description: Tenant could not be found.
                  errorCode: NotFound
                faultId: b39ae4c1-142f-4308-838d-1f01815e1cf1
                traceId: H3TKh4QSJUSwVBCBqEtkKw==
              schema:
                $ref: '#/components/schemas/4XXErrorSchema'
          description: Not Found
        '500':
          $ref: '#/components/responses/500ErrorResponse'
          description: Internal Server Error
      summary: Get channel subscriptions for a given consumer's communication preference type
      tags:
      - Consumers
      operationId: getConsumersByTenantMeCommunicationPreferencesByType
      x-operation-id-source: derived
    put:
      description: 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.
      parameters:
      - description: Request tenant.
        in: path
        name: tenant
        required: true
        schema:
          type: string
      - description: The type of communication preferences.
        in: path
        name: type
        required: true
        schema:
          $ref: '#/components/schemas/CommunicationTypes'
      requestBody:
        content:
          application/json:
            example:
              subscribedChannels:
              - email
              - sms
            schema:
              $ref: '#/components/schemas/ChannelSubscriptions'
        description: The list of channels that the consumer should be subscribed to.
        required: true
      responses:
        '204':
          content: {}
          description: Success
        '401':
          content:
            application/json:
              example:
                errors:
                - description: You are unauthorized to perform this request.
                  errorCode: Unauthorized
                faultId: b39ae4c1-142f-4308-838d-1f01815e1cf1
                traceId: H3TKh4QSJUSwVBCBqEtkKw==
              schema:
                $ref: '#/components/schemas/4XXErrorSchema'
          description: Unauthorized
        '404':
          content:
            application/json:
              example:
                errors:
                - description: Tenant could not be found.
                  errorCode: NotFound
                faultId: b39ae4c1-142f-4308-838d-1f01815e1cf1
                traceId: H3TKh4QSJUSwVBCBqEtkKw==
              schema:
                $ref: '#/components/schemas/4XXErrorSchema'
          description: Not Found
        '500':
          $ref: '#/components/responses/500ErrorResponse'
          description: Internal Server Error
      summary: Set only the channel subscriptions for a given consumer's communication…
      tags:
      - Consumers
      operationId: putConsumersByTenantMeCommunicationPreferencesByType
      x-operation-id-source: derived
  /consumers/{tenant}/me/communication-preferences/{type}/subscribedChannels/{channel}:
    delete:
      description: Remove subscription of a specific communication preference channel.
      parameters:
      - description: Request tenant.
        in: path
        name: tenant
        required: true
        schema:
          type: string
      - description: The type of communication preference.
        in: path
        name: type
        required: true
        schema:
          $ref: '#/components/schemas/CommunicationTypes'
      - description: The channel.
        in: path
        name: channel
        required: true
        schema:
          type: string
      requestBody:
        content: {}
        required: false
      responses:
        '204':
          content: {}
          description: Success
        '401':
          content:
            application/json:
              example:
                errors:
                - description: You are unauthorized to perform this request.
                  errorCode: Unauthorized
                faultId: b39ae4c1-142f-4308-838d-1f01815e1cf1
                traceId: H3TKh4QSJUSwVBCBqEtkKw==
              schema:
                $ref: '#/components/schemas/4XXErrorSchema'
          description: Unauthorized
        '404':
          content:
            application/json:
              example:
                errors:
                - description: Tenant could not be found.
                  errorCode: NotFound
                faultId: b39ae4c1-142f-4308-838d-1f01815e1cf1
                traceId: H3TKh4QSJUSwVBCBqEtkKw==
              schema:
                $ref: '#/components/schemas/4XXErrorSchema'
          description: Not Found
        '500':
          $ref: '#/components/responses/500ErrorResponse'
          description: Internal Server Error
      summary: Remove subscription of a specific communication preference channel
      tags:
      - Consumers
      operationId: deleteConsumersByTenantMeCommunicationPreferencesByTypeSubscribedChannelsByChannel
      x-operation-id-source: derived
    post:
      description: Subscribe to a specific communication preference channel.
      parameters:
      - description: Request tenant.
        in: path
        name: tenant
        required: true
        schema:
          type: string
      - description: The type of communication preferences.
        in: path
        name: type
        required: true
        schema:
          $ref: '#/components/schemas/CommunicationTypes'
      - description: The channel.
        in: path
        name: channel
        required: true
        schema:
          $ref: '#/components/schemas/CommunicationChannels'
      requestBody:
        content: {}
        required: false
      responses:
        '204':
          content: {}
          description: Success
        '401':
          content:
            application/json:
              example:
                errors:
                - description: You are unauthorized to perform this request.
                  errorCode: Unauthorized
                faultId: b39ae4c1-142f-4308-838d-1f01815e1cf1
                traceId: H3TKh4QSJUSwVBCBqEtkKw==
              schema:
                $ref: '#/components/schemas/4XXErrorSchema'
          description: Unauthorized
        '403':
          content:
            application/json:
              example:
                errors:
                - description: You are forbidden from performing this request.
                  errorCode: Forbidden
                faultId: b39ae4c1-142f-4308-838d-1f01815e1cf1
                traceId: H3TKh4QSJUSwVBCBqEtkKw==
              schema:
                $ref: '#/components/schemas/4XXErrorSchema'
          description: Forbidden
        '404':
          content:
            application/json:
              example:
                errors:
                - description: Tenant could not be found.
                  errorCode: NotFound
                faultId: b39ae4c1-142f-4308-838d-1f01815e1cf1
                traceId: H3TKh4QSJUSwVBCBqEtkKw==
              schema:
                $ref: '#/components/schemas/4XXErrorSchema'
          description: Not Found
        '500':
          $ref: '#/components/responses/500ErrorResponse'
          description: Internal Server Error
      summary: Subscribe to a specific communication preference channel
      tags:
      - Consumers
      operationId: postConsumersByTenantMeCommunicationPreferencesByTypeSubscribedChannelsByChannel
      x-operation-id-source: derived
components:
  schemas:
    ConsumerCreateResponse:
      example:
        token: SKgaDl0wZxnwjNgLxBnU646PDTquWLHOyPuyzidIZIg=
        type: otac
      properties:
        token:
          description: The One Time Access Code (OTAC)
          type: string
        type:
          description: 'The type of token. At the moment, this will only ever be a One Time Access Code (OTAC)

            '
          enum:
          - otac
          type: string
      required:
      - type
      - token
      type: object
    5XXErrorSchema:
      description: A HTTP 5xx error response
      properties:
        fault:
          description: An object representing the nature of the failure.
          properties:
            errors:
              description: The list of errors.
              items:
                properties:
                  description:
                    description: Specific details about the error that may assist you in resolving the issue
                    type: string
                  errorCode:
                    description: A code that identifies the problem type. It will be supported by human-readable documentation that identifies how to resolve the error
                    type: string
                type: object
              type: array
            faultId:
              description: A value that helps identify this response back to logs, so we can easily find this specific fault
              type: string
            traceId:
              description: A value that helps identify the trace back to logs, so that we can easily find what was happening on our system when the fault was generated
              type: string
          required:
          - faultId
          type: object
      type: object
    consumerMarketingPreference:
      items:
        properties:
          channelName:
            description: The channel name.
            enum:
            - Email
            - Push
            - Sms
            type: string
          dateUpdated:
            description: The date of the marketing preference change
            format: date-time
            type: string
          isSubscribed:
            description: Should the channel be subscribed to?
            type: boolean
        type: object
      type: array
    ChannelSubscriptionsWithDerivedField:
      properties:
        isDefault:
          description: Are these channel subscriptions the default or have they been set elsewhere. This is a read-only derived field.
          type: boolean
        subscribedChannels:
          description: The list of channels that are subscribed
          items:
            $ref: '#/components/schemas/CommunicationChannels'
          type: array
      type: object
    ChannelSubscriptions:
      properties:
        subscribedChannels:
          description: The list of channels that the consumer should only be subscribed to.
          items:
            $ref: '#/components/schemas/CommunicationChannels'
          type: array
      type: object
    4XXErrorSchema:
      description: A HTTP 4xx error response
      properties:
        fault:
          properties:
            errors:
              items:
                properties:
                  description:
                    description: Specific details about the error that may assist you in resolving the issue
                    type: string
                  errorCode:
                    description: A code that identifies the problem type. It will be supported by human-readable documentation that identifies how to resolve the error
                    type: string
                type: object
              type: array
            faultId:
              description: A value that helps identify this response back to logs, so we can easily find this specific fault
              type: string
            traceId:
              description: A value that helps identify the trace back to logs, so that we can easily find what was happening on our system when the fault was generated
              type: string
          required:
          - faultId
          type: object
      type: object
    CommunicationPreferences:
      properties:
        marketing:
          $ref: '#/components/schemas/ChannelSubscriptionsWithDerivedField'
          description: The marketing communication preferences.
          type: object
      type: object
    ConsumerCreate:
      example:
        emailAddress: consumer@just-eat.com
        firstName: Bob
        lastName: Smith
        password: Pa55word
        registrationSource: Native
      properties:
        emailAddress:
          description: The consumer's email address
          format: email
          maxLength: 160
          type: string
        firstName:
          description: The consumer's first name
          maxLength: 160
          type: string
        lastName:
          description: The consumer's last name
          maxLength: 160
          type: string
        marketingPreferences:
          $ref: '#/components/schemas/consumerMarketingPreference'
          description: The selected marketing preferences for the consumer
        password:
          description: The consumer's password
          maxLength: 160
          minLength: 4
          type: string
        registrationSource:
          default: Native
          description: The registration source of the consumer. Australia and New Zealand only support Guest
          enum:
          - Native
          - Guest
          type: string
      required:
      - emailAddress
      - firstName
      - lastName
      type: object
    CommunicationChannels:
      enum:
      - email
      - sms
      - push
      type: string
    CommunicationTypes:
      enum:
      - marketing
      type: string
    500ErrorSchema:
      description: A HTTP 500 error response
      properties:
        fault:
          properties:
            errors:
              items:
                properties:
                  description:
                    description: If returned, the only value returned will be Internal Server Error"
                    enum:
                    - Internal Server Error
                    type: string
                type: object
              type: array
            faultId:
              description: A value that helps identify this response back to logs, so we can easily find this specific fault
              type: string
            traceId:
              description: A value that helps identify the trace back to logs, so that we can easily find what was happening on our system when the fault was generated
              type: string
          required:
          - faultId
          type: object
      type: object
  responses:
    500ErrorResponse:
      content:
        application/json:
          example:
            errors:
            - description: Internal Server Error
            faultId: 25bbe062-c53d-4fbc-9d6c-3df6127b94fd
            traceId: H3TKh4QSJUSwVBCBqEtkKw==
          schema:
            $ref: '#/components/schemas/500ErrorSchema'
      description: Internal Server Error
  securitySchemes:
    Bearer:
      bearerFormat: JWT
      description: Bearer token authentication using a JSON Web Token (JWT).
      scheme: bearer
      type: http
    api_key:
      description: APIs for delivery partners require an API key that will have been issued to you.
      in: header
      name: Authorization
      type: apiKey
    basic_auth:
      description: A few services allow the use of basic authentication when a partner doesn't support OAuth based authentication.
      scheme: basic
      type: http
    justeat_adfs:
      description: ADFS authentication provider for internal Just Eat tools.
      openIdConnectUrl: https://adfs.just-eat.com/adfs/.well-known/openid-configuration
      type: openIdConnect
    restaurantsignup_jwt:
      bearerFormat: JWT token with payload `RestaurantId` and Role `[RestaurantRead | VerifyEmail | RestaurantWrite | FullAccess | DocumentRead]`
      description: Bearer token authentication using a JSON Web Token (JWT), used by the restaurant sign up system
      scheme: bearer
      type: http
x-tagGroups:
- name: Consumer Experience
  tags:
  - Authorization
  - Consumers
  - ConsumerOffers
  - ConsumerQueries
  - Consumer Queries Webhooks
  - ConsumerOrders
  - Search
  - Basket
  - Payments
  - Giftcards
  - Experiments
  - Vouchers
  - Promoted Placement
  - Menu
  - Recommendations
  - Location Services
- name: Manage Order Journey
  tags:
  - Order Acceptance API
  - Order Acceptance Webhooks
  - Order Delivery API
  - Order Delivery Webhooks
  - Order API
  - Order Webhooks
  - Customer Order Details
  - DeliveryFee
  - Delivery Pools API
  - Attempted Delivery API
  - Attempted Delivery Webhooks
  - Checkout
  - Courier Feedback
- name: Restaurant Management
  tags:
  - Restaurant Product
  - Restaurants
  - RestaurantOffers
  - Restaurant OrderTimes
  - Restaurants Webhooks
  - RestaurantSignup
  - RestaurantQueries
  - RestaurantQueries Webhooks
  - Restaurant Claims
  - Restaurant Events
  - Restaurant Events Webhooks
  - Restaurant API
  - Restaurant Webhooks
  - Products
  - Logistics POS Restaurants
  - Restaurant Smiley Rating