---
title: "Get one Grubhub restaurant's future orderable time-slot calendar"
method: GET
path: "/grubhub/timepicker"
tags: ["Grubhub"]
---

# Get one Grubhub restaurant's future orderable time-slot calendar

`GET /grubhub/timepicker`

## Request

- Base URL: `https://api.crawlora.net/api/v1`
- URL: `https://api.crawlora.net/api/v1/grubhub/timepicker`
- Auth: API key in header `x-api-key`

Returns every future delivery or pickup time slot Grubhub will accept an order for, up to 7 days ahead. This is what powers the site's own "schedule my order" picker: `/grubhub/availability` tells you whether a restaurant is orderable right now plus one "next" time, while this returns the full future slot calendar a caller would need to build an actual date-and-time picker. Slots are grouped by date and given as full timestamps carrying the restaurant's real UTC offset for that instant, so a caller never has to resolve daylight-saving transitions themselves. Requesting `location_mode=DELIVERY` returns delivery slots only; `PICKUP` returns pickup slots only -- the upstream only computes one side per call.

## Query parameters

- `restaurant_id` string, required
- `latitude` number, required
- `longitude` number, required
- `location_mode` 'DELIVERY' | 'PICKUP', required
- `days` integer

## Headers

- `x-api-key` string, required

## Response `200`

OK

- GrubhubTimepickerResponseDoc
  - `code` integer: Code is the HTTP status code or a custom code used to indicate the result of the request @example 200
  - `data` GrubhubTimepickerResponse
    - `days` GrubhubTimeSlotDay[]
      - `date` string
      - `times` string[]: Times is every orderable slot on this date, as RFC3339 timestamps carrying the restaurant's real UTC offset for that instant -- Grubhub reports the grid in local wall-clock hours and quarter-hours, so this resolves DST rather than requiring the caller to.
    - `earliest_order_send_time` string: EarliestOrderSendTime is the very next moment Grubhub will accept an order for this restaurant, ASAP or scheduled.
    - `fetched_at` string
    - `location_mode` string
    - `restaurant_id` string
    - `source_url` string
    - `time_zone` string
  - `msg` unknown

## Other responses

- `400`: Bad Request
- `404`: Not Found
- `429`: Too Many Requests
- `503`: Service Unavailable

---

[API](https://skmtc.dev/crawlora/apis/crawlora-api.md) · [All operations](https://skmtc.dev/crawlora/apis/crawlora-api/llms.txt) · [OpenAPI document](https://skmtc.dev/crawlora/apis/crawlora-api/revisions/afac9b012a27?raw)
