Grubhub Connect (Delivery as a Service) API

Grubhub Connect is delivery-as-a-service on Grubhub's national courier network for aggregators, marketplaces and enterprise merchants. Request and accept delivery quotes, check service areas, track status, update dropoff and pickup verification, mint a masked courier proxy phone number, increase a courier tip, cancel a delivery and request a refund - plus a full production-safe test path.

Operations 15

POST /delivery/daas/v1/{deliveryId}/tip Increase courier tip #
POST /delivery/daas/v1/{deliveryId}/refund Request a delivery refund #
POST /delivery/daas/v1/{deliveryId}/proxy Create proxy courier phone number #
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 #
POST /delivery/daas/v1/test/{deliveryId}/refund Progress a test refund #
POST /delivery/daas/v1/test/{deliveryId}/deliveryState Progress a test delivery #
POST /delivery/daas/v1/test/webhook/emulateStatusUpdateWebhook Emulate a delivery status update webhook #
POST /delivery/daas/v1/test/webhook/emulateRefundUpdateWebhook Emulate a delivery refund update webhook #
POST /delivery/daas/v1/quote/{quoteId}/accept Accept delivery quote #
POST /delivery/daas/v1/quote Request delivery quotes #
GET /delivery/daas/v1/{deliveryId} Get delivery status #
GET /delivery/daas/v1/servicearea Get delivery service areas #

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-connect-endpoints"
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-connect-endpoints-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Endpoints
servers:
- url: https://api-third-party-gtm-pp.grubhub.com
  description: preprod
- url: https://api-third-party-gtm.grubhub.com
  description: prod
tags:
- name: Models
  description: "# IncreaseTipRequest \n <SchemaDefinition schemaRef=\"#/components/schemas/IncreaseTipRequest\"\
    />\n\n# PublicApiError \n <SchemaDefinition schemaRef=\"#/components/schemas/PublicApiError\"/>\n\n# RefundRequest\
    \ \n <SchemaDefinition schemaRef=\"#/components/schemas/RefundRequest\"/>\n\n# PhoneContactDetails \n <SchemaDefinition\
    \ schemaRef=\"#/components/schemas/PhoneContactDetails\"/>\n\n# ProxyPhoneNumberRequest \n <SchemaDefinition\
    \ schemaRef=\"#/components/schemas/ProxyPhoneNumberRequest\"/>\n\n# PhoneBridge \n <SchemaDefinition schemaRef=\"\
    #/components/schemas/PhoneBridge\"/>\n\n# ResponseWrapperProxyPhoneNumberResponse \n <SchemaDefinition schemaRef=\"\
    #/components/schemas/ResponseWrapperProxyPhoneNumberResponse\"/>\n\n# ProxyPhoneNumberResponse \n <SchemaDefinition\
    \ schemaRef=\"#/components/schemas/ProxyPhoneNumberResponse\"/>\n\n# com.grubhub.pos.generic.delivery.fulfillment.common.model.PickupVerification\
    \ \n <SchemaDefinition schemaRef=\"#/components/schemas/com.grubhub.pos.generic.delivery.fulfillment.common.model.PickupVerification\"\
    />\n\n# UpdateDeliveryDropoffLocationRequest \n <SchemaDefinition schemaRef=\"#/components/schemas/UpdateDeliveryDropoffLocationRequest\"\
    />\n\n# CancelDeliveryRequest \n <SchemaDefinition schemaRef=\"#/components/schemas/CancelDeliveryRequest\"\
    />\n\n# RefundAmount \n <SchemaDefinition schemaRef=\"#/components/schemas/RefundAmount\"/>\n\n# ProgressRefundRequest\
    \ \n <SchemaDefinition schemaRef=\"#/components/schemas/ProgressRefundRequest\"/>\n\n# ProgressDeliveryRequest\
    \ \n <SchemaDefinition schemaRef=\"#/components/schemas/ProgressDeliveryRequest\"/>\n\n# ResponseWrapperProgressDeliveryResponse\
    \ \n <SchemaDefinition schemaRef=\"#/components/schemas/ResponseWrapperProgressDeliveryResponse\"/>\n\n# ProgressDeliveryResponse\
    \ \n <SchemaDefinition schemaRef=\"#/components/schemas/ProgressDeliveryResponse\"/>\n\n# EmulateDeliveryStatusUpdateWebhookRequest\
    \ \n <SchemaDefinition schemaRef=\"#/components/schemas/EmulateDeliveryStatusUpdateWebhookRequest\"/>\n\n# Assigned\
    \ \n <SchemaDefinition schemaRef=\"#/components/schemas/Assigned\"/>\n\n# Canceled \n <SchemaDefinition schemaRef=\"\
    #/components/schemas/Canceled\"/>\n\n# CourierAtDropoff \n <SchemaDefinition schemaRef=\"#/components/schemas/CourierAtDropoff\"\
    />\n\n# CourierAtPickup \n <SchemaDefinition schemaRef=\"#/components/schemas/CourierAtPickup\"/>\n\n# Created\
    \ \n <SchemaDefinition schemaRef=\"#/components/schemas/Created\"/>\n\n# Delivered \n <SchemaDefinition schemaRef=\"\
    #/components/schemas/Delivered\"/>\n\n# InTransit \n <SchemaDefinition schemaRef=\"#/components/schemas/InTransit\"\
    />\n\n# PickedUp \n <SchemaDefinition schemaRef=\"#/components/schemas/PickedUp\"/>\n\n# PickupVerification\
    \ \n <SchemaDefinition schemaRef=\"#/components/schemas/PickupVerification\"/>\n\n# ProofOfDelivery \n <SchemaDefinition\
    \ schemaRef=\"#/components/schemas/ProofOfDelivery\"/>\n\n# ReturnArrived \n <SchemaDefinition schemaRef=\"\
    #/components/schemas/ReturnArrived\"/>\n\n# ReturnCompleted \n <SchemaDefinition schemaRef=\"#/components/schemas/ReturnCompleted\"\
    />\n\n# ReturnInitiated \n <SchemaDefinition schemaRef=\"#/components/schemas/ReturnInitiated\"/>\n\n# Unassigned\
    \ \n <SchemaDefinition schemaRef=\"#/components/schemas/Unassigned\"/>\n\n# ClientData \n <SchemaDefinition\
    \ schemaRef=\"#/components/schemas/ClientData\"/>\n\n# Delivery \n <SchemaDefinition schemaRef=\"#/components/schemas/Delivery\"\
    />\n\n# DeliveryEvent \n <SchemaDefinition schemaRef=\"#/components/schemas/DeliveryEvent\"/>\n\n# DropoffImageDetails\
    \ \n <SchemaDefinition schemaRef=\"#/components/schemas/DropoffImageDetails\"/>\n\n# EstimatedEventTimes \n\
    \ <SchemaDefinition schemaRef=\"#/components/schemas/EstimatedEventTimes\"/>\n\n# GeoLocation \n <SchemaDefinition\
    \ schemaRef=\"#/components/schemas/GeoLocation\"/>\n\n# PickupVerificationDetails \n <SchemaDefinition schemaRef=\"\
    #/components/schemas/PickupVerificationDetails\"/>\n\n# ResponseWrapperAcceptQuoteResponse \n <SchemaDefinition\
    \ schemaRef=\"#/components/schemas/ResponseWrapperAcceptQuoteResponse\"/>\n\n# AcceptQuoteResponse \n <SchemaDefinition\
    \ schemaRef=\"#/components/schemas/AcceptQuoteResponse\"/>\n\n# DeliveryAddress \n <SchemaDefinition schemaRef=\"\
    #/components/schemas/DeliveryAddress\"/>\n\n# Charges \n <SchemaDefinition schemaRef=\"#/components/schemas/Charges\"\
    />\n\n# DeliverySizing \n <SchemaDefinition schemaRef=\"#/components/schemas/DeliverySizing\"/>\n\n# DropoffLocation\
    \ \n <SchemaDefinition schemaRef=\"#/components/schemas/DropoffLocation\"/>\n\n# DropoffPreferences \n <SchemaDefinition\
    \ schemaRef=\"#/components/schemas/DropoffPreferences\"/>\n\n# Item \n <SchemaDefinition schemaRef=\"#/components/schemas/Item\"\
    />\n\n# ItemSizing \n <SchemaDefinition schemaRef=\"#/components/schemas/ItemSizing\"/>\n\n# ItemDimensions\
    \ \n <SchemaDefinition schemaRef=\"#/components/schemas/ItemDimensions\"/>\n\n# ItemWeight \n <SchemaDefinition\
    \ schemaRef=\"#/components/schemas/ItemWeight\"/>\n\n# NotificationPreferences \n <SchemaDefinition schemaRef=\"\
    #/components/schemas/NotificationPreferences\"/>\n\n# PickupLocation \n <SchemaDefinition schemaRef=\"#/components/schemas/PickupLocation\"\
    />\n\n# SubItem \n <SchemaDefinition schemaRef=\"#/components/schemas/SubItem\"/>\n\n# TimePreferences \n <SchemaDefinition\
    \ schemaRef=\"#/components/schemas/TimePreferences\"/>\n\n# QuoteRequest \n <SchemaDefinition schemaRef=\"#/components/schemas/QuoteRequest\"\
    />\n\n# Quote \n <SchemaDefinition schemaRef=\"#/components/schemas/Quote\"/>\n\n# ResponseWrapperQuoteResponse\
    \ \n <SchemaDefinition schemaRef=\"#/components/schemas/ResponseWrapperQuoteResponse\"/>\n\n# QuoteResponse\
    \ \n <SchemaDefinition schemaRef=\"#/components/schemas/QuoteResponse\"/>\n\n# Courier \n <SchemaDefinition\
    \ schemaRef=\"#/components/schemas/Courier\"/>\n\n# ResponseWrapperDeliveryStatusResponse \n <SchemaDefinition\
    \ schemaRef=\"#/components/schemas/ResponseWrapperDeliveryStatusResponse\"/>\n\n# DeliveryStatusResponse \n\
    \ <SchemaDefinition schemaRef=\"#/components/schemas/DeliveryStatusResponse\"/>\n\n# ResponseWrapperServiceAreaResponse\
    \ \n <SchemaDefinition schemaRef=\"#/components/schemas/ResponseWrapperServiceAreaResponse\"/>\n\n# ServiceAreaResponse\
    \ \n <SchemaDefinition schemaRef=\"#/components/schemas/ServiceAreaResponse\"/>\n\n# DeliveryArea \n <SchemaDefinition\
    \ schemaRef=\"#/components/schemas/DeliveryArea\"/>\n\n# Feature \n <SchemaDefinition schemaRef=\"#/components/schemas/Feature\"\
    />\n\n# Geometry \n <SchemaDefinition schemaRef=\"#/components/schemas/Geometry\"/>\n\n# Properties \n <SchemaDefinition\
    \ schemaRef=\"#/components/schemas/Properties\"/>\n\n"
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}/refund:
    post:
      tags:
      - Delivery Refunds
      summary: Request a delivery refund
      description: Submits a refund request for a delivery. Invoking this endpoint begins the asynchronous process
        of accepting or rejecting the refund request.
      operationId: requestRefund
      parameters:
      - name: deliveryId
        in: path
        description: The UUID of the delivery associated with the refund request.
        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/RefundRequest'
        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
        '202':
          description: Delivery refund request accepted
          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}/proxy:
    post:
      tags:
      - Delivery Status
      summary: Create proxy courier phone number
      description: Generates a proxy number that temporarily substitutes the courier's true phone number. The proxy
        number can be used to call or text the courier as if it were their true phone number.
      operationId: createProxyPhoneNumber
      parameters:
      - name: deliveryId
        in: path
        description: The delivery UUID associated with the proxy phone number request.
        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/ProxyPhoneNumberRequest'
        required: true
      responses:
        '200':
          description: Proxy phone number generated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseWrapperProxyPhoneNumberResponse'
              example:
                response:
                  phone_bridge:
                    expiration_time: '1970-01-01T00:00:00.000Z'
                    caller:
                      phone_number: '+15555555555'
                    courier_phone_proxy:
                      phone_number: '+17777777777'
        '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: 'Failed to get the masked phone number because partnerId: 00000000-0000-0000-0000-000000000000
                    does not have access to the deliveryId: 00000000-0000-0000-0000-000000000000'
        '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
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PublicApiError'
              example:
                errors:
                - code: CONFLICT
                  message: 'Failed to get the masked phone number for the deliveryId: 00000000-0000-0000-0000-000000000000
                    and sourcePhoneNumber: +15555555555'
  /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
  /delivery/daas/v1/test/{deliveryId}/refund:
    post:
      tags:
      - Delivery Tests
      summary: Progress a test refund
      description: Progresses the test refund to either an accepted or reject state.
      operationId: progressRefund
      parameters:
      - name: deliveryId
        in: path
        description: The UUID of the test delivery associated with the refund.
        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/ProgressRefundRequest'
        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: Refund successfully progressed.
          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/test/{deliveryId}/deliveryState:
    post:
      tags:
      - Delivery Tests
      summary: Progress a test delivery
      description: Progresses the test delivery to the given delivery state. Returns the expected progression time
        to the delivery state
      operationId: progressDelivery
      parameters:
      - name: deliveryId
        in: path
        description: The UUID of the test delivery.
        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/ProgressDeliveryRequest'
        required: true
      responses:
        '200':
          description: Delivery successfully progressed to given delivery state
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseWrapperProgressDeliveryResponse'
              example:
                response:
                  expected_progression_time: '1970-01-01T00:00:00.000Z'
        '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/test/webhook/emulateStatusUpdateWebhook:
    post:
      tags:
      - Delivery Webhooks Emulation
      summary: Emulate a delivery status update webhook
      description: Emulates a delivery status update webhook for the partner. It is meant just for testing purposes.
      operationId: emulateStatusUpdateWebhook
      parameters:
      - 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/EmulateDeliveryStatusUpdateWebhookRequest'
        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
        '202':
          description: Delivery status update webhook successfully triggered
          content:
            application/json:
              example: {}
        '403':
          des

# --- truncated at 32 KB (86 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/grubhub/refs/heads/main/openapi/grubhub-connect-endpoints-openapi.yml