Grubhub Delivery Updates API

The Delivery Updates API from Grubhub — 5 operation(s) for delivery updates.

Operations 5

POST /delivery/daas/v1/{deliveryId}/tip Increase courier tip #
POST /delivery/daas/v1/{deliveryId}/pickupVerification Update pickup verification #
POST /delivery/daas/v1/{deliveryId}/pickupReady Update delivery to pickup ready #
POST /delivery/daas/v1/{deliveryId}/dropoff Update delivery information #
POST /delivery/daas/v1/{deliveryId}/cancel Cancel a delivery #

Documentation

📖
Documentation
https://developer.grubhub.com/api/menu
📖
APIReference
https://developer.grubhub.com/api/menu
📖
Documentation
https://developer.grubhub.com/api/orders
📖
APIReference
https://developer.grubhub.com/api/orders
📖
Documentation
https://developer.grubhub.com/api/merchant-data
📖
APIReference
https://developer.grubhub.com/api/merchant-data
📖
Documentation
https://developer.grubhub.com/api/merchant-schedules
📖
APIReference
https://developer.grubhub.com/api/merchant-schedules
📖
Documentation
https://developer.grubhub.com/api/busy-intervals
📖
APIReference
https://developer.grubhub.com/api/busy-intervals
📖
Documentation
https://developer.grubhub.com/api/deliveries
📖
APIReference
https://developer.grubhub.com/api/deliveries
📖
Documentation
https://developer.grubhub.com/api/daas-endpoints
📖
APIReference
https://developer.grubhub.com/api/daas-endpoints
📖
Documentation
https://developer.grubhub.com/api/daas-webhooks
📖
APIReference
https://developer.grubhub.com/api/daas-webhooks
📖
Documentation
https://developer.grubhub.com/api/onboarding
📖
APIReference
https://developer.grubhub.com/api/onboarding
📖
Documentation
https://developer.grubhub.com/api/reporting-endpoints
📖
APIReference
https://developer.grubhub.com/api/reporting-endpoints
📖
Documentation
https://developer.grubhub.com/api/reporting-webhooks
📖
APIReference
https://developer.grubhub.com/api/reporting-webhooks
📖
Documentation
https://developer.grubhub.com/api/testing
📖
APIReference
https://developer.grubhub.com/api/testing

Specifications

Other Resources

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/grubhub-delivery-updates-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

grubhub-delivery-updates-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Endpoints Delivery Updates API
servers:
- url: https://api-third-party-gtm-pp.grubhub.com
  description: preprod
- url: https://api-third-party-gtm.grubhub.com
  description: prod
tags:
- name: Delivery Updates
paths:
  /delivery/daas/v1/{deliveryId}/tip:
    post:
      tags:
      - Delivery Updates
      summary: Increase courier tip
      description: Updates the courier tip for a delivery to the requested value. Tips may only be increased.
      operationId: updateCourierTip
      parameters:
      - name: deliveryId
        in: path
        description: The UUID of the delivery associated with the tip update.
        required: true
        style: simple
        explode: false
        schema:
          type: string
          format: uuid
        example: 497f6eca-6276-4993-bfeb-53cbbbba6f08
      - name: X-GH-PARTNER-KEY
        in: header
        description: The Grubhub-provided partner key.
        required: true
        style: simple
        explode: false
        schema:
          type: string
          format: uuid
        example: 123e4567-e89b-12d3-a456-426614174000
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IncreaseTipRequest'
        required: true
      responses:
        '500':
          description: Unexpected internal error
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PublicApiError'
              example:
                errors:
                - code: REQUEST_FAILED
                  message: Internal Server Error
        '400':
          description: Invalid courier tip update
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PublicApiError'
              example:
                errors:
                - code: tip_decrease_not_allowed
                  message: Requested tip amount must be higher than existing tip amount.
        '403':
          description: Request Forbidden
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PublicApiError'
              example:
                errors:
                - code: REQUEST_FORBIDDEN
                  message: Request forbidden
        '200':
          description: Courier tip updated
          content:
            application/json:
              example: {}
        '404':
          description: Delivery not found
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PublicApiError'
              example:
                errors:
                - code: DELIVERY_NOT_FOUND
                  message: Delivery not found with id=00000000-0000-0000-0000-000000000000
  /delivery/daas/v1/{deliveryId}/pickupVerification:
    post:
      tags:
      - Delivery Updates
      summary: Update pickup verification
      description: Provide the pickup verification info for a delivery. To be used after the delivery has been created and before pickup.
      operationId: updatePickupVerification
      parameters:
      - name: deliveryId
        in: path
        description: The UUID of the delivery being updated.
        required: true
        style: simple
        explode: false
        schema:
          type: string
          format: uuid
        example: 497f6eca-6276-4993-bfeb-53cbbbba6f08
      - name: X-GH-PARTNER-KEY
        in: header
        description: The Grubhub-provided partner key.
        required: true
        style: simple
        explode: false
        schema:
          type: string
          format: uuid
        example: 123e4567-e89b-12d3-a456-426614174000
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/com.grubhub.pos.generic.delivery.fulfillment.common.model.PickupVerification'
        required: true
      responses:
        '500':
          description: Unexpected internal error
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PublicApiError'
              example:
                errors:
                - code: REQUEST_FAILED
                  message: Internal Server Error
        '403':
          description: Request Forbidden
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PublicApiError'
              example:
                errors:
                - code: REQUEST_FORBIDDEN
                  message: Request forbidden
        '400':
          description: Invalid pickup verification
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PublicApiError'
              example:
                errors:
                - code: INVALID
                  message: Invalid capture method provided
        '200':
          description: Pickup verification updated
          content:
            application/json:
              example: {}
        '404':
          description: Delivery not found
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PublicApiError'
              example:
                errors:
                - code: DELIVERY_NOT_FOUND
                  message: Delivery not found with id=00000000-0000-0000-0000-000000000000
  /delivery/daas/v1/{deliveryId}/pickupReady:
    post:
      tags:
      - Delivery Updates
      summary: Update delivery to pickup ready
      description: Provide a signal that indicates the delivery is ready for pickup.
      operationId: pickupReady
      parameters:
      - name: deliveryId
        in: path
        description: The UUID of the delivery being updated.
        required: true
        style: simple
        explode: false
        schema:
          type: string
          format: uuid
        example: 497f6eca-6276-4993-bfeb-53cbbbba6f08
      - name: X-GH-PARTNER-KEY
        in: header
        description: The Grubhub-provided partner key.
        required: true
        style: simple
        explode: false
        schema:
          type: string
          format: uuid
        example: 123e4567-e89b-12d3-a456-426614174000
      responses:
        '200':
          description: Delivery marked as pickup ready
          content:
            application/json:
              example: {}
        '500':
          description: Unexpected internal error
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PublicApiError'
              example:
                errors:
                - code: REQUEST_FAILED
                  message: Internal Server Error
        '403':
          description: Request Forbidden
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PublicApiError'
              example:
                errors:
                - code: REQUEST_FORBIDDEN
                  message: Request forbidden
        '404':
          description: Delivery not found
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PublicApiError'
              example:
                errors:
                - code: DELIVERY_NOT_FOUND
                  message: Delivery not found with id=00000000-0000-0000-0000-000000000000
  /delivery/daas/v1/{deliveryId}/dropoff:
    post:
      tags:
      - Delivery Updates
      summary: Update delivery information
      description: Updates the dropoff information for a delivery. Only available before delivery has been picked up.
      operationId: updateDeliveryDropoffLocation
      parameters:
      - name: deliveryId
        in: path
        description: The UUID of the delivery being updated.
        required: true
        style: simple
        explode: false
        schema:
          type: string
          format: uuid
        example: 497f6eca-6276-4993-bfeb-53cbbbba6f08
      - name: X-GH-PARTNER-KEY
        in: header
        description: The Grubhub-provided partner key.
        required: true
        style: simple
        explode: false
        schema:
          type: string
          format: uuid
        example: 123e4567-e89b-12d3-a456-426614174000
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateDeliveryDropoffLocationRequest'
        required: true
      responses:
        '400':
          description: Invalid delivery dropoff information update
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PublicApiError'
              example:
                errors:
                - code: invalid_delivery_status
                  message: Delivery is in an invalid state to update dropoff location.
        '500':
          description: Unexpected internal error
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PublicApiError'
              example:
                errors:
                - code: REQUEST_FAILED
                  message: Internal Server Error
        '403':
          description: Request Forbidden
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PublicApiError'
              example:
                errors:
                - code: REQUEST_FORBIDDEN
                  message: Request forbidden
        '200':
          description: Delivery dropoff information updated
          content:
            application/json:
              example: {}
        '404':
          description: Delivery not found
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PublicApiError'
              example:
                errors:
                - code: DELIVERY_NOT_FOUND
                  message: Delivery not found with id=00000000-0000-0000-0000-000000000000
  /delivery/daas/v1/{deliveryId}/cancel:
    post:
      tags:
      - Delivery Updates
      summary: Cancel a delivery
      description: Requests the cancellation of a delivery.
      operationId: cancelDelivery
      parameters:
      - name: deliveryId
        in: path
        description: The UUID of the delivery being canceled.
        required: true
        style: simple
        explode: false
        schema:
          type: string
          format: uuid
        example: 497f6eca-6276-4993-bfeb-53cbbbba6f08
      - name: X-GH-PARTNER-KEY
        in: header
        description: The Grubhub-provided partner key.
        required: true
        style: simple
        explode: false
        schema:
          type: string
          format: uuid
        example: 123e4567-e89b-12d3-a456-426614174000
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CancelDeliveryRequest'
        required: true
      responses:
        '500':
          description: Unexpected internal error
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PublicApiError'
              example:
                errors:
                - code: REQUEST_FAILED
                  message: Internal Server Error
        '403':
          description: Request Forbidden
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PublicApiError'
              example:
                errors:
                - code: REQUEST_FORBIDDEN
                  message: Request forbidden
        '200':
          description: Delivery cancelled
          content:
            application/json:
              example: {}
        '404':
          description: Delivery not found
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PublicApiError'
              example:
                errors:
                - code: DELIVERY_NOT_FOUND
                  message: Delivery not found with id=00000000-0000-0000-0000-000000000000
components:
  schemas:
    PublicApiError:
      required:
      - code
      - message
      type: object
      properties:
        code:
          type: string
          description: A code representing the type of error that occurred.
        message:
          type: string
          description: A detailed description of the error that occurred.
      description: An error returned by the delivery API.
    UpdateDeliveryDropoffLocationRequest:
      type: object
      properties:
        instructions:
          maxLength: 500
          minLength: 0
          type: string
          description: Dropoff instructions to apply to delivery
          example: Leave at door - ring doorbell.
        phone:
          pattern: ^\+\d{11}$
          type: string
          description: A E.164 formatted dropoff contact phone number.
          example: '+16145552332'
      description: A request for when a diner decides to update dropoff location information for a delivery. Only allowed before the courier has left the pickup location.
    CancelDeliveryRequest:
      required:
      - cancel_code
      type: object
      properties:
        cancel_code:
          type: string
          description: Codes for reasons why a delivery was canceled.
          example: CUSTOMER_REFUSED_DELIVERY
          enum:
          - CUSTOMER_CONTENTS_ISSUE
          - CUSTOMER_DELIVERY_DELAYED
          - CUSTOMER_ORDER_CHANGED
          - CUSTOMER_OTHER_REASON
          - CUSTOMER_REFUSED_DELIVERY
          - EXTERNAL_PARTNER_OTHER_REASON
          - EXTERNAL_SYSTEM_FAILURE
          - MERCHANT_OTHER_REASON
          - MERCHANT_PICKUP_DELAYED
        comment:
          maxLength: 256
          minLength: 0
          type: string
          description: Additional detail about the cancellation.
          example: Customer does not want to accept their delivery.
      description: A request to cancel a delivery.
    IncreaseTipRequest:
      required:
      - tip
      type: object
      properties:
        tip:
          minimum: 0
          type: integer
          description: The total tip amount the courier receives, formatted as cents.
          format: int32
          example: 500
      description: A request for when a diner decides to increase a courier tip. Can be performed within 24 hours after delivery.
    com.grubhub.pos.generic.delivery.fulfillment.common.model.PickupVerification:
      required:
      - capture_method
      - verification_code
      type: object
      properties:
        capture_method:
          type: string
          description: The method used to capture the pickup verification code.
          enum:
          - QR_SCAN
        verification_code:
          type: string
          description: The verification code provided by the partner.
      description: Pickup verification provided by the partner.