Panera API endpoint
Returns one cafe's available pickup/delivery order time-slot windows for one date, plus that date's overall open/close time. Unlike GET /panera/cafe's published storefront hours, this reflects live order-slot availability, not just when the cafe is open -- an empty windows list is a legitimate outcome (e.g. the cafe is closed that day), not an error. date must be YYYY-MM-DD, interpreted in the cafe's own local timezone.
/panera/time-slotsQuery parameters:
cafe_id (required) — Panera cafe id, from /panera/locations, e.g. 601447.date (required) — YYYY-MM-DD, interpreted in the cafe's own local timezone, e.g. 2026-09-10.Response shape:
open / close — the date's overall order window, e.g. 06:10 / 21:00.windows[] — every available order time-slot window, each with start_time/end_time as full RFC 3339 timestamps in the cafe's local offset.Example response (trimmed):
{"code":200,"msg":"OK","data":{"cafe_id":601447,"date":"2026-09-10","open":"06:10","close":"21:00","windows":[{"start_time":"2026-09-10T06:10:00-05:00","end_time":"2026-09-10T06:15:00-05:00"},{"start_time":"2026-09-10T06:15:00-05:00","end_time":"2026-09-10T06:20:00-05:00"}],"count":178,"source_url":"https://www-api.panerabread.com/www-api/public/cafe/601447/time/slots/date/2026-09-10","fetched_at":"2026-09-03T12:00:00Z"}}
| Field | Filled in, of 178 checked | Values in the sample |
|---|---|---|
| start_time | 178 | 2026-10-27 |
| end_time | 178 | 2026-10-27 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| cafe_id | integer | Yes | Panera cafe id, from /panera/locations | 601447 | |
| date | string | Yes | Date, YYYY-MM-DD | 2026-09-10 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/panera/time-slots?cafe_id=601447&date=2026-09-10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"cafe_id": 601447,
"date": "2026-09-10",
"open": "06:10",
"close": "21:00",
"windows": [
{
"start_time": "2026-09-10T06:10:00-05:00",
"end_time": "2026-09-10T06:15:00-05:00"
},
{
"start_time": "2026-09-10T06:15:00-05:00",
"end_time": "2026-09-10T06:20:00-05:00"
}
],
"count": 178,
"source_url": "https://www-api.panerabread.com/www-api/public/cafe/601447/time/slots/date/2026-09-10",
"fetched_at": "2026-09-03T12:00:00Z"
}
}Request schema
No body schema
Response schema
#/definitions/panera.timeSlotsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | Code is the HTTP status code or a custom code used to indicate the result of the request @example 200 | |||
| data | panera.TimeSlotsResponse | No | ||||
| data.cafe_id | integer | No | 601447 | |||
| data.close | string | No | 21:00 | |||
| data.count | integer | No | 178 | |||
| data.date | string | No | 2026-09-10 | |||
| data.fetched_at | string | No | ||||
| data.open | string | No | 06:00 | |||
| data.source_url | string | No | ||||
| data.windows | array | No | ||||
| data.windows[].end_time | string | No | 2026-09-10T11:15:00-05:00 | |||
| data.windows[].start_time | string | No | 2026-09-10T11:10:00-05:00 | |||
| msg | unknown | No | Msg is the message that describes the result of the request @example "Request successful" |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/panera/time-slots?cafe_id=601447&date=2026-09-10" \
-H "x-api-key: $CRAWLORA_API_KEY"