What's on the menu? API

Food & Drink / API Key Intermediate HTTP
Varies by plan (check documentation)

Overview

The What's on the Menu? API provides access to the New York Public Library's digitized collection of over 45,000 historical restaurant menus from the 1840s to today. You can search menus by keyword, date range, or location and explore human-transcribed dish data. It is a fascinating resource for food history research and data visualization projects.

💡

Beginner Tip

Retrieve a list of menus with GET /menus.json?keyword=chicken and paginate through results using the page parameter. The API key goes in the query string as ?key=YOUR_API_KEY.

Available Data

What's on the menu? data via REST API
JSON-formatted response data
Requires API key authentication

Example Response

JSON Response
{
  "status": "success",
  "data": {
    "result": "Data from What's on the menu?",
    "description": "NYPL human-transcribed historical menu collection",
    "timestamp": "2025-01-15T10:00:00Z"
  }
}

Field Reference

id Unique identifier for the menu
name Name or description of the menu event
date Date of the menu in YYYY-MM-DD format
location Restaurant or venue where the menu was used
page_count Number of pages in the digitized menu

Implementation Example

const url = "http://nypl.github.io/menus-api/";
// Replace headers or query params with the values required by this API.
const response = await fetch(url, {
  headers: {
  "X-API-Key": "YOUR_API_KEY"
  }
});
if (!response.ok) throw new Error(`Request failed: ${response.status}`);
const data = await response.json();
console.log(data);

What Can You Build?

Note: These code examples are AI-generated and unverified. Always refer to the official API documentation for accurate usage.

Common Errors & Troubleshooting

401 Unauthorized Missing API key in the request
Append your API key as a query parameter: ?key=YOUR_API_KEY
Empty results array The keyword or date range returned no matching menus
Broaden your search by removing date filters or trying a more common ingredient keyword
Mixed HTTP/HTTPS content warning The base URL uses HTTP, which some browsers block on HTTPS pages
Make API calls from a backend server to avoid browser mixed-content restrictions

Matrix Score Breakdown

🌐 Reachability 30/30
⚡ Speed 15/20
🔒 Security 0/15
🛠 Developer XP 12/20
✓ Reliability 10/15

Partially tested on Apr 5, 2026

Technical Specifications

Auth API Key
HTTPS NO
CORS UNKNOWN
Category Food & Drink
Difficulty Intermediate
Verified: 2026-04-04

Similar APIs

View All →