grubhub · JSON Structure
Grubhub Merchant Structure
A merchant on the Grubhub platform with store details, fulfillment settings, schedules, and operational status.
Type: object
Properties: 11
Required: 2
Grubhub Merchant is a JSON Structure definition published by grubhub, describing 11 properties, of which 2 are required. It conforms to the https://json-structure.org/meta/core/v0/# meta-schema.
Properties
merchant_id
external_id
name
status
pause_type
address
phone
tax_rate
fulfillment_types
fulfillment_settings
cuisine_types
Meta-schema: https://json-structure.org/meta/core/v0/#
JSON Structure
{
"$schema": "https://json-structure.org/meta/core/v0/#",
"$id": "https://raw.githubusercontent.com/api-evangelist/grubhub/refs/heads/main/json-structure/grubhub-merchant-structure.json",
"name": "Grubhub Merchant",
"description": "A merchant on the Grubhub platform with store details, fulfillment settings, schedules, and operational status.",
"type": "object",
"properties": {
"merchant_id": {
"type": "string",
"description": "The Grubhub internal merchant identifier."
},
"external_id": {
"type": "string",
"description": "The partner's external merchant identifier."
},
"name": {
"type": "string",
"description": "The merchant's display name."
},
"status": {
"type": "string",
"description": "The current online/offline status of the merchant on Grubhub.",
"enum": [
"ONLINE",
"OFFLINE"
]
},
"pause_type": {
"type": [
"string",
"null"
],
"description": "The type of pause applied when merchant is offline. A soft pause is for the remainder of the business day; a hard pause is for multiple days.",
"enum": [
"SOFT",
"HARD",
null
]
},
"address": {
"$ref": "#/$defs/Address"
},
"phone": {
"type": "string",
"description": "The merchant's phone number."
},
"tax_rate": {
"type": "double",
"description": "The merchant's applicable tax rate as a decimal.",
"minimum": 0,
"maximum": 1
},
"fulfillment_types": {
"type": "array",
"description": "Supported fulfillment types for this merchant.",
"items": {
"type": "string",
"enum": [
"DELIVERY",
"PICKUP",
"CATERING"
]
}
},
"fulfillment_settings": {
"$ref": "#/$defs/FulfillmentSettings"
},
"cuisine_types": {
"type": "array",
"description": "Types of cuisine offered by the merchant.",
"items": {
"type": "string"
}
}
},
"required": [
"merchant_id",
"name"
],
"definitions": {
"Address": {
"type": "object",
"description": "A physical address for the merchant location.",
"properties": {
"street_address": {
"type": "string",
"description": "The street address line."
},
"city": {
"type": "string",
"description": "The city name."
},
"state": {
"type": "string",
"description": "The state abbreviation.",
"maxLength": 2
},
"zip": {
"type": "string",
"description": "The ZIP code.",
"pattern": "^\\d{5}(-\\d{4})?$"
},
"latitude": {
"type": "double",
"description": "The latitude coordinate."
},
"longitude": {
"type": "double",
"description": "The longitude coordinate."
}
},
"name": "Address"
},
"FulfillmentSettings": {
"type": "object",
"description": "Fulfillment configuration for a merchant.",
"properties": {
"delivery_enabled": {
"type": "boolean",
"description": "Whether delivery is enabled."
},
"pickup_enabled": {
"type": "boolean",
"description": "Whether pickup is enabled."
},
"catering_enabled": {
"type": "boolean",
"description": "Whether catering is enabled."
},
"estimated_prep_time_minutes": {
"type": "int32",
"description": "Estimated preparation time in minutes.",
"minimum": 0
},
"delivery_radius_miles": {
"type": "double",
"description": "The delivery radius in miles.",
"minimum": 0
},
"minimum_order_amount": {
"type": "double",
"description": "The minimum order amount for delivery.",
"minimum": 0
}
},
"name": "FulfillmentSettings"
}
}
}