grubhub Merchant Status API

Endpoints for managing merchant online/offline status on Grubhub, including soft and hard pauses.

OpenAPI Specification

grubhub-merchant-status-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Grubhub Deliveries Delivery Status Merchant Status 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: Merchant Status
  description: Endpoints for managing merchant online/offline status on Grubhub, including soft and hard pauses.
paths:
  /pos/v1/merchants/status:
    put:
      operationId: updateMerchantStatus
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      summary: Grubhub Update Merchant Online/offline Status
      description: Sets the status of a batch of merchants to online or offline on Grubhub. When offline, merchants will not be listed on the site. When online, merchants will be listed and able to accept orders. Supports both soft pauses (remainder of business day) and hard pauses (multiple days).
      tags:
      - Merchant Status
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MerchantStatusUpdateRequest'
            examples:
              UpdateMerchantStatusRequestExample:
                summary: Default updateMerchantStatus request
                x-microcks-default: true
                value:
                  merchants:
                  - merchant_id: string
                    status: ONLINE
                    pause_type: SOFT
      responses:
        '202':
          description: Status update accepted for processing
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchJobResponse'
              examples:
                UpdateMerchantStatus202Example:
                  summary: Default updateMerchantStatus 202 response
                  x-microcks-default: true
                  value:
                    batch_id: id-1234567890
        '400':
          description: Invalid status update request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                UpdateMerchantStatus400Example:
                  summary: Default updateMerchantStatus 400 response
                  x-microcks-default: true
                  value:
                    error: invalid_request
                    message: Operation completed successfully.
                    status: 0
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                UpdateMerchantStatus401Example:
                  summary: Default updateMerchantStatus 401 response
                  x-microcks-default: true
                  value:
                    error: invalid_request
                    message: Operation completed successfully.
                    status: 0
  /pos/v1/merchants/status/{batch_id}:
    get:
      operationId: getMerchantStatusBatch
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      summary: Grubhub Get Merchant Status Batch Progress
      description: Returns the status of a merchant online/offline batch operation together with the progress for each individual merchant in the batch.
      tags:
      - Merchant Status
      parameters:
      - $ref: '#/components/parameters/BatchId'
      responses:
        '200':
          description: Batch operation status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchJobStatus'
              examples:
                GetMerchantStatusBatch200Example:
                  summary: Default getMerchantStatusBatch 200 response
                  x-microcks-default: true
                  value:
                    batch_id: id-1234567890
                    status: PENDING
                    merchants:
                    - merchant_id: string
                      status: PENDING
                      error: string
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                GetMerchantStatusBatch401Example:
                  summary: Default getMerchantStatusBatch 401 response
                  x-microcks-default: true
                  value:
                    error: invalid_request
                    message: Operation completed successfully.
                    status: 0
        '404':
          description: Batch not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                GetMerchantStatusBatch404Example:
                  summary: Default getMerchantStatusBatch 404 response
                  x-microcks-default: true
                  value:
                    error: invalid_request
                    message: Operation completed successfully.
                    status: 0
components:
  parameters:
    BatchId:
      name: batch_id
      in: path
      required: true
      description: The unique identifier for a batch operation.
      schema:
        type: string
  schemas:
    MerchantStatusUpdateRequest:
      type: object
      description: Request to update online/offline status for a batch of merchants.
      required:
      - merchants
      properties:
        merchants:
          type: array
          description: List of merchants to update.
          items:
            type: object
            required:
            - merchant_id
            - status
            properties:
              merchant_id:
                type: string
                description: The Grubhub merchant identifier.
              status:
                type: string
                description: The desired status for the merchant.
                enum:
                - ONLINE
                - OFFLINE
              pause_type:
                type: string
                description: The type of pause to apply when setting offline. A soft pause takes the merchant offline for the remainder of the business day. A hard pause takes the merchant offline for multiple days.
                enum:
                - SOFT
                - HARD
    BatchJobStatus:
      type: object
      description: Status of a batch operation with per-merchant progress.
      properties:
        batch_id:
          type: string
          description: The unique identifier for the batch operation.
          example: id-1234567890
        status:
          type: string
          description: The overall status of the batch.
          enum:
          - PENDING
          - PROCESSING
          - COMPLETED
          - FAILED
          example: PENDING
        merchants:
          type: array
          description: Progress for each individual merchant in the batch.
          items:
            type: object
            properties:
              merchant_id:
                type: string
                description: The merchant identifier.
              status:
                type: string
                description: The status for this merchant's update.
                enum:
                - PENDING
                - SUCCESS
                - FAILED
              error:
                type: string
                description: Error message if the update failed for this merchant.
    BatchJobResponse:
      type: object
      description: Response returned when a batch operation is accepted for processing.
      properties:
        batch_id:
          type: string
          description: The unique identifier for tracking the batch operation.
          example: id-1234567890
    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
  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