Public APIs
What's on the menu? favicon

What's on the menu?

Food & Drink

NYPL human-transcribed historical menu collection.

What's on the menu?'s website screenshot

About What's on the menu?

This is a REST API providing programmatic access to the New York Public Library's historical menu collection. It exposes data on menus and dishes, including fields such as sponsor, venue, event, place, occasion, date, physical description, prices, and page images, along with dish-level records that can be linked back to the menus they appear on. Data can be retrieved in JSON (default) or XML format, with endpoints for listing, retrieving by ID, and searching both menus and dishes.

Access requires a token obtained by emailing the NYPL menus team with background on the intended use. Requests are rate-limited to 5000 per day per token or IP address and 2 requests per second, with rate-limit status returned in response headers. Index endpoints are paginated using the Link header, with a per-page limit of 50 for menus and 100 for dishes.

The API is aimed at programmers and power-users conducting analysis of historical menu data; NYPL also offers biweekly CSV data exports for users seeking a simpler way to explore the dataset. At the time of this documentation, authentication methods beyond token-based access (Basic Auth, OAuth 2) were listed as forthcoming, and some dish and menu fields were noted as still being normalized and cleaned.

Key features

  • Search and retrieve historical restaurant menu records with sponsor, venue, date, and location details
  • Search and retrieve individual dish records including price data
  • Filter menus by year range and status (to_transcribe, under_review, complete)
  • Sort menus by date, name, or dish count
  • JSON and XML response formats
  • Cursor-based pagination via Link headers for menu and dish indexes

Frequently asked questions

Is there a free tier?

The API is free but requires an access token obtained by emailing NYPL with the subject 'API ACCESS'; requests are limited to 5000 per day per token or IP and 2 per second.

What data formats does the API support?

JSON is the default and recommended format, with XML available by appending .xml to the request URL.

How do I authenticate requests?

You need a 26-character API token obtained by emailing menus@nypl.org, passed as a token query parameter; Basic Auth and OAuth2 support are listed as forthcoming.

Who is this API for?

It's built for programmers and power-users who want to do powerful analysis of historical menu data from NYPL's What's On The Menu? collection.

How does pagination work?

Pagination info is contained in the Link header with rel values for first, prev, next, and last; the per_page limit is 50 for menus and 100 for dishes.

Advertise here

Featured products

  • SerpApi - Search API favicon
  • Screenshot Scout favicon
  • TalorData favicon
  • CoreClaw favicon

Show your product to thousands of developers

· 100k monthly pageviews
· 7k newsletter subscribers

Advertise your product