What's on the menu?
Food & Drink
NYPL human-transcribed historical menu collection
Auth
apiKey
HTTPS
No
CORS
Unknown
Common Use Cases
- •Build recipe discovery and meal planning apps
- •Create restaurant and food review platforms
- •Integrate nutritional data into health apps
Integration Guide
Review the API Documentation
Visit the official What's on the menu? documentation to understand available endpoints, request formats, and response structures. Familiarize yourself with the API's rate limits and usage policies before integration.
Obtain an API Key
What's on the menu? requires an API key for authentication. Register on the provider's website to get your unique key. Keep it secure and never expose it in client-side code — use environment variables or a backend proxy.
Note: No HTTPS Support
What's on the menu? does not currently support HTTPS. Be cautious when transmitting sensitive data. Consider using a backend proxy with HTTPS to add a security layer for your users.
CORS Status Unknown — Test Before Use
The CORS status for What's on the menu? is unknown. Test with a simple browser-based request to verify. If CORS is not supported, set up a backend proxy to handle requests server-side.
Implement and Test
Write your API integration code, start with a simple test request to verify connectivity. Implement proper error handling for network failures, rate limits, and invalid responses. Monitor your API usage to stay within any limits.
Code Examples
JavaScript / Fetch API:
// JavaScript example (with API key)
const apiKey = process.env.API_KEY; // Store your key securely
fetch("http://nypl.github.io/menus-api/", {
headers: {
"Authorization": `Bearer ${apiKey}`,
// Or use: "X-API-Key": apiKey
// Check the docs for the correct header format
}
})
.then(response => {
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
return response.json();
})
.then(data => {
console.log("API response:", data);
})
.catch(error => {
console.error("Error fetching from What's on the menu?:", error);
});Python / Requests:
# Python example (with API key)
import requests
import os
api_key = os.environ.get("API_KEY") # Store your key securely
headers = {
"Authorization": f"Bearer {api_key}",
# Or use: "X-API-Key": api_key
}
response = requests.get("http://nypl.github.io/menus-api/", headers=headers)
if response.status_code == 200:
data = response.json()
print("API response:", data)
else:
print(f"Error: {response.status_code}")