grubhub Menu Schedule Overrides API

Endpoints for managing menu schedule overrides such as temporary availability changes.

OpenAPI Specification

grubhub-menu-schedule-overrides-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Grubhub Deliveries Delivery Status Menu Schedule Overrides 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: Menu Schedule Overrides
  description: Endpoints for managing menu schedule overrides such as temporary availability changes.
paths:
  /pos/v1/merchant/{merchant_id}/menu/schedules/overrides/external:
    put:
      operationId: updateMenuScheduleOverrides
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      summary: Grubhub Update Menu Schedule Overrides
      description: Creates or updates menu schedule overrides for a merchant. Schedule overrides allow temporary changes to menu availability, such as making certain items unavailable during specific time periods.
      tags:
      - Menu Schedule Overrides
      parameters:
      - $ref: '#/components/parameters/MerchantId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MenuScheduleOverrideRequest'
            examples:
              UpdateMenuScheduleOverridesRequestExample:
                summary: Default updateMenuScheduleOverrides request
                x-microcks-default: true
                value:
                  overrides:
                  - external_id: string
                    available: true
                    start_date: '2026-06-02T18:30:00Z'
                    end_date: '2026-06-02T18:30:00Z'
      responses:
        '200':
          description: Schedule override updated successfully
        '400':
          description: Invalid override request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                UpdateMenuScheduleOverrides400Example:
                  summary: Default updateMenuScheduleOverrides 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:
                UpdateMenuScheduleOverrides401Example:
                  summary: Default updateMenuScheduleOverrides 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:
                UpdateMenuScheduleOverrides404Example:
                  summary: Default updateMenuScheduleOverrides 404 response
                  x-microcks-default: true
                  value:
                    error: invalid_request
                    message: Operation completed successfully.
                    status: 0
  /pos/v1/merchant/{merchant_id}/menu/schedules/overrides/{job_id}/status:
    get:
      operationId: getMenuScheduleOverrideStatus
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      summary: Grubhub Get Menu Schedule Override Job Status
      description: Returns the status of a menu schedule override job for a merchant.
      tags:
      - Menu Schedule Overrides
      parameters:
      - $ref: '#/components/parameters/MerchantId'
      - $ref: '#/components/parameters/JobId'
      responses:
        '200':
          description: Override job status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IngestionJobStatus'
              examples:
                GetMenuScheduleOverrideStatus200Example:
                  summary: Default getMenuScheduleOverrideStatus 200 response
                  x-microcks-default: true
                  value:
                    job_id: id-1234567890
                    status: PENDING
                    errors:
                    - code: string
                      message: string
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                GetMenuScheduleOverrideStatus401Example:
                  summary: Default getMenuScheduleOverrideStatus 401 response
                  x-microcks-default: true
                  value:
                    error: invalid_request
                    message: Operation completed successfully.
                    status: 0
        '404':
          description: Job or merchant not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                GetMenuScheduleOverrideStatus404Example:
                  summary: Default getMenuScheduleOverrideStatus 404 response
                  x-microcks-default: true
                  value:
                    error: invalid_request
                    message: Operation completed successfully.
                    status: 0
components:
  parameters:
    JobId:
      name: job_id
      in: path
      required: true
      description: The unique identifier for the ingestion or override job.
      schema:
        type: string
    MerchantId:
      name: merchant_id
      in: path
      required: true
      description: The unique identifier for the merchant on Grubhub.
      schema:
        type: string
  schemas:
    MenuScheduleOverrideRequest:
      type: object
      description: A request to create or update menu schedule overrides for a merchant.
      properties:
        overrides:
          type: array
          description: List of schedule overrides to apply.
          items:
            type: object
            properties:
              external_id:
                type: string
                description: External identifier for the schedule being overridden.
              available:
                type: boolean
                description: Whether the schedule should be active or inactive.
              start_date:
                type: string
                format: date-time
                description: The start date and time of the override.
              end_date:
                type: string
                format: date-time
                description: The end date and time of the override.
    IngestionJobStatus:
      type: object
      description: Status of a menu ingestion or override job.
      properties:
        job_id:
          type: string
          description: The unique identifier for the job.
          example: id-1234567890
        status:
          type: string
          description: The current status of the job.
          enum:
          - PENDING
          - PROCESSING
          - COMPLETED
          - FAILED
          example: PENDING
        errors:
          type: array
          description: List of errors encountered during processing, if any.
          items:
            type: object
            properties:
              code:
                type: string
                description: Error code.
              message:
                type: string
                description: Human-readable error message.
    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