grubhub Orders API

Endpoints for retrieving and managing orders placed through the Grubhub Marketplace.

OpenAPI Specification

grubhub-orders-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Grubhub Deliveries Delivery Status Orders API
  description: The Grubhub Deliveries API enables partners to manage delivery logistics and interact with Grubhub's nationwide courier network. It provides delivery status tracking through key states including driver assignment, pickup ready, and out for delivery. Partners can leverage Grubhub Connect, a full-service delivery solution for delivery aggregators, marketplaces, and enterprise merchants to fulfill orders using Grubhub drivers. The API also supports driver communication through proxy phone numbers.
  version: 1.0.0
  x-last-validated: '2026-06-02'
  contact:
    name: Grubhub Developer Support
    url: https://grubhub-developers.zendesk.com/hc/en-us
  termsOfService: https://www.grubhub.com/legal/terms-of-use
servers:
- url: https://api-third-party-gtm.grubhub.com
  description: Production Server
- url: https://api-third-party-gtm-pp.grubhub.com
  description: Preproduction Server
security:
- hmacAuth: []
tags:
- name: Orders
  description: Endpoints for retrieving and managing orders placed through the Grubhub Marketplace.
paths:
  /pos/v1/merchant/{merchant_long_id}/orders/{order_uuid}:
    get:
      operationId: getOrder
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      summary: Grubhub Get a Single Order
      description: Returns a single order requested by its UUID for the specified merchant. Includes complete order details such as items, totals, delivery information, and current status.
      tags:
      - Orders
      parameters:
      - $ref: '#/components/parameters/MerchantLongId'
      - $ref: '#/components/parameters/OrderUuid'
      responses:
        '200':
          description: Order details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
              examples:
                GetOrder200Example:
                  summary: Default getOrder 200 response
                  x-microcks-default: true
                  value:
                    order_uuid: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                    merchant_id: ghm-1234567890
                    status: PENDING
                    placed_at: '2026-06-02T18:30:00Z'
                    estimated_delivery_at: '2026-06-02T18:30:00Z'
                    fulfillment_type: DELIVERY
                    customer:
                      first_name: Jordan
                      last_name: Rivera
                      phone: '+13125550142'
                    items:
                    - item_id: id-1234567890
                      name: Sample Name
                      quantity: 1
                      price: 9.99
                      modifiers:
                      - name: {}
                        price: {}
                      special_instructions: Leave at the front desk.
                    totals:
                      subtotal: 18.5
                      tax: 1.25
                      delivery_fee: 2.99
                      tip: 3.0
                      total: 25.74
                    delivery_address:
                      street_address: 111 W Washington St
                      apt_suite: Suite 2100
                      city: Chicago
                      state: IL
                      zip: '60602'
                      latitude: 41.8781
                      longitude: -87.6298
                    special_instructions: Leave at the front desk.
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                GetOrder401Example:
                  summary: Default getOrder 401 response
                  x-microcks-default: true
                  value:
                    error: invalid_request
                    message: Operation completed successfully.
                    status: 0
        '404':
          description: Order not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                GetOrder404Example:
                  summary: Default getOrder 404 response
                  x-microcks-default: true
                  value:
                    error: invalid_request
                    message: Operation completed successfully.
                    status: 0
  /pos/v1/merchant/{merchant_long_id}/orders:
    get:
      operationId: listMerchantOrders
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      summary: Grubhub List Orders for a Merchant
      description: Returns the list of orders for the requested merchant in a given status and date range. Useful for retrieving historical orders or checking orders in specific lifecycle states.
      tags:
      - Orders
      parameters:
      - $ref: '#/components/parameters/MerchantLongId'
      - name: status
        in: query
        description: Filter orders by their current status.
        schema:
          type: string
          enum:
          - PENDING
          - CONFIRMED
          - IN_PROGRESS
          - READY
          - COMPLETED
          - CANCELLED
        example: PENDING
      - name: start_date
        in: query
        description: Start of the date range filter in ISO 8601 format.
        schema:
          type: string
          format: date-time
        example: '2026-06-02T18:30:00Z'
      - name: end_date
        in: query
        description: End of the date range filter in ISO 8601 format.
        schema:
          type: string
          format: date-time
        example: '2026-06-02T18:30:00Z'
      responses:
        '200':
          description: List of orders matching criteria
          content:
            application/json:
              schema:
                type: object
                properties:
                  orders:
                    type: array
                    description: List of orders matching the specified criteria.
                    items:
                      $ref: '#/components/schemas/Order'
              examples:
                ListMerchantOrders200Example:
                  summary: Default listMerchantOrders 200 response
                  x-microcks-default: true
                  value:
                    orders:
                    - order_uuid: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                      merchant_id: ghm-1234567890
                      status: PENDING
                      placed_at: '2026-06-02T18:30:00Z'
                      estimated_delivery_at: '2026-06-02T18:30:00Z'
                      fulfillment_type: DELIVERY
                      customer:
                        first_name: Jordan
                        last_name: Rivera
                        phone: '+13125550142'
                      items:
                      - item_id: {}
                        name: {}
                        quantity: {}
                        price: {}
                        modifiers: {}
                        special_instructions: {}
                      totals:
                        subtotal: 18.5
                        tax: 1.25
                        delivery_fee: 2.99
                        tip: 3.0
                        total: 25.74
                      delivery_address:
                        street_address: 111 W Washington St
                        apt_suite: Suite 2100
                        city: Chicago
                        state: IL
                        zip: '60602'
                        latitude: 41.8781
                        longitude: -87.6298
                      special_instructions: Leave at the front desk.
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                ListMerchantOrders401Example:
                  summary: Default listMerchantOrders 401 response
                  x-microcks-default: true
                  value:
                    error: invalid_request
                    message: Operation completed successfully.
                    status: 0
        '404':
          description: Merchant not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                ListMerchantOrders404Example:
                  summary: Default listMerchantOrders 404 response
                  x-microcks-default: true
                  value:
                    error: invalid_request
                    message: Operation completed successfully.
                    status: 0
components:
  schemas:
    OrderTotals:
      type: object
      description: Financial totals for an order.
      properties:
        subtotal:
          type: number
          format: double
          description: The subtotal before taxes and fees.
          example: 18.5
        tax:
          type: number
          format: double
          description: The tax amount.
          example: 1.25
        delivery_fee:
          type: number
          format: double
          description: The delivery fee charged.
          example: 2.99
        tip:
          type: number
          format: double
          description: The tip amount.
          example: 3.0
        total:
          type: number
          format: double
          description: The total amount for the order.
          example: 25.74
    OrderItem:
      type: object
      description: An individual item within an order.
      properties:
        item_id:
          type: string
          description: The unique identifier for the menu item.
          example: id-1234567890
        name:
          type: string
          description: The display name of the item.
          example: Sample Name
        quantity:
          type: integer
          description: The quantity ordered.
          minimum: 1
          example: 1
        price:
          type: number
          format: double
          description: The unit price of the item.
          example: 9.99
        modifiers:
          type: array
          description: Modifiers applied to this item.
          items:
            type: object
            properties:
              name:
                type: string
                description: The name of the modifier.
              price:
                type: number
                format: double
                description: The additional price for this modifier.
        special_instructions:
          type: string
          description: Item-level special instructions.
          example: Leave at the front desk.
    Address:
      type: object
      description: A physical address.
      properties:
        street_address:
          type: string
          description: The street address line.
          example: 111 W Washington St
        apt_suite:
          type: string
          description: Apartment or suite number.
          example: Suite 2100
        city:
          type: string
          description: The city name.
          example: Chicago
        state:
          type: string
          description: The state abbreviation.
          example: IL
        zip:
          type: string
          description: The ZIP code.
          example: '60602'
        latitude:
          type: number
          format: double
          description: The latitude coordinate.
          example: 41.8781
        longitude:
          type: number
          format: double
          description: The longitude coordinate.
          example: -87.6298
    Order:
      type: object
      description: A complete order placed through the Grubhub Marketplace.
      properties:
        order_uuid:
          type: string
          format: uuid
          description: The unique identifier for the order.
          example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
        merchant_id:
          type: string
          description: The merchant identifier this order was placed with.
          example: ghm-1234567890
        status:
          type: string
          description: The current lifecycle status of the order.
          enum:
          - PENDING
          - CONFIRMED
          - IN_PROGRESS
          - READY
          - OUT_FOR_DELIVERY
          - COMPLETED
          - CANCELLED
          example: PENDING
        placed_at:
          type: string
          format: date-time
          description: The timestamp when the order was placed.
          example: '2026-06-02T18:30:00Z'
        estimated_delivery_at:
          type: string
          format: date-time
          description: The estimated delivery time for the order.
          example: '2026-06-02T18:30:00Z'
        fulfillment_type:
          type: string
          description: The type of fulfillment for this order.
          enum:
          - DELIVERY
          - PICKUP
          example: DELIVERY
        customer:
          $ref: '#/components/schemas/Customer'
        items:
          type: array
          description: The items included in this order.
          items:
            $ref: '#/components/schemas/OrderItem'
        totals:
          $ref: '#/components/schemas/OrderTotals'
        delivery_address:
          $ref: '#/components/schemas/Address'
        special_instructions:
          type: string
          description: Special instructions provided by the customer.
          example: Leave at the front desk.
    Customer:
      type: object
      description: Customer information associated with an order.
      properties:
        first_name:
          type: string
          description: The customer's first name.
          example: Jordan
        last_name:
          type: string
          description: The customer's last name.
          example: Rivera
        phone:
          type: string
          description: The customer's phone number.
          example: '+13125550142'
    Error:
      type: object
      description: Standard error response from the Grubhub API.
      properties:
        error:
          type: string
          description: Error type identifier.
          example: invalid_request
        message:
          type: string
          description: Human-readable error description.
          example: Operation completed successfully.
        status:
          type: integer
          description: HTTP status code.
          example: 0
  parameters:
    MerchantLongId:
      name: merchant_long_id
      in: path
      required: true
      description: The long-form unique identifier for the merchant on Grubhub.
      schema:
        type: string
    OrderUuid:
      name: order_uuid
      in: path
      required: true
      description: The UUID of the order.
      schema:
        type: string
        format: uuid
  securitySchemes:
    hmacAuth:
      type: apiKey
      in: header
      name: Authorization
      description: HMAC-based authentication. Every request must include X-GH-PARTNER-KEY and an Authorization header with MAC authentication details.
externalDocs:
  description: Grubhub Deliveries API Documentation
  url: https://developer.grubhub.com/api/deliveries