Authentication
All API requests require an API key passed in the X-API-Key header.
Header format
X-API-Key: your_api_key_hereExample
import requests
headers = {
"X-API-Key": "your_api_key_here",
"Content-Type": "application/json"
}
resp = requests.post("https://dish-embed.latimal.com/embed", headers=headers, json={
"items": ["Butter Chicken"]
})curl -X POST https://dish-embed.latimal.com/embed \
-H "X-API-Key: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{"items": ["Butter Chicken"]}'Error responses
Missing or invalid API key returns HTTP 401:
{
"detail": "Invalid or missing API key"
}Plans and usage
Access is sold as monthly plans (Starter, Pro, and Scale). Each plan includes a fixed number of API calls per month, and one HTTP request counts as a single call no matter how many items it carries. Higher plans unlock more endpoints and higher rate limits, and every plan starts with a 14-day free trial. See latimal.com/pricing for current tiers.
Check how much of your monthly quota is left with the /balance endpoint:
resp = requests.get("https://dish-embed.latimal.com/balance", headers=headers)
print(resp.json()["credits_remaining"])Security notes
- Store your API key in environment variables, not in source code
- Rotate your key if it's ever exposed in logs, commits, or client-side code
- Each key is tied to one account. Do not share keys across teams or services
Quickstart
Make your first dish-embed API call in under 5 minutes. Covers API key setup, the X-API-Key header, and a working /search request with sample JSON.
API Reference
Reference for the Latimal Menu Intelligence REST API at dish-embed.latimal.com. Lists all endpoints, auth, request limits, JSON formats, and HTTP error codes.