Open directions with

Choose once. We’ll remember for next time.

KALEMAP FOR DEVELOPERS

Help your agent find a meal that fits.

Restaurant discovery, dish-level dietary evidence and source links through one REST API and MCP server.

Get an API key OpenAPI specification

Useful discovery is free.

Find restaurants by name, city or coordinates. Preview up to four dishes through MCP. Detailed menu pages include twelve dietary labels, suggested changes, sources, reading dates and explicit unknowns.

Try it, then grow.

25 detailed requests per signed-in developer, once. KaleMap Agent is $49/month for 10,000 detailed requests. 60 requests per minute per account. No overages or automatic upgrades. Each page or tool call counts as one request, including empty results and missing restaurants. Invalid arguments and rejected authentication do not count. Unused requests do not roll over. Consumer subscriptions are separate.

Three steps to a sourced answer

  1. Sign in and create a key. Keep it on your server.
  2. Search for a restaurant with GET /api/search?q=restaurant or MCP search_places. Use the slug from the result URL.
  3. Call GET /api/v1/menu?slug=SLUG&needs=vegan,gluten_free with Authorization: Bearer YOUR_KEY, or MCP get_menu with the same header.
curl 'https://kalemap.com/api/v1/menu?slug=SLUG&limit=50'   -H 'Authorization: Bearer YOUR_KEY'

Replace SLUG with a search result. Never place a key in a URL, browser bundle or public repository. Create up to two keys and revoke either instantly from your account.

Connect an agent

MCP endpoint: https://kalemap.com/mcp, Streamable HTTP, JSON responses over POST. Discovery and tool listing work without a key. Configure an Authorization header for get_menu. This release supports clients that can supply a server-held bearer key. It does not provide interactive OAuth for consumer connector directories.

OpenAI Responses remote MCP, Claude's MCP connector and Gemini's MCP tooling can be used from your own integration. Client capabilities differ. See OpenAI documentation, Claude documentation and Gemini documentation. Your provider's own fees and permissions apply.

Know what the answer means

Responses separate menu analysis, chain menus and member reports. Unknown dietary labels never satisfy a filter. Multiple needs must match the same dish. Use include_changes=true to include possible matches requiring changes. Confirm ingredients and cross-contact with the kitchen.

Follow page.next_cursor while has_more is true, even if a filtered page is empty. Each page scans at most 100 saved items. Menu changes during pagination may affect results. Timestamps and coverage fields describe saved evidence, not a promise of current availability. Fresh menus and complete branch coverage everywhere are not established.

Errors: 400 invalid arguments; 401 missing or revoked key; 402 allowance exhausted; 404 restaurant not found; 429 rate or shared capacity limit. Respect Retry-After. A shared monthly capacity ceiling can temporarily stop requests even with allowance remaining. Reads never trigger menu scraping, browsers or model analysis.

API use and attribution

Use factual results in your own assistant or application with a visible KaleMap link and the supplied source links. Preserve source provenance and upstream attribution described on Data and sources. This subscription pays for API access. It does not transfer ownership of restaurant menus, images, member contributions or third-party databases, or grant permission to republish them wholesale. No exclusivity, completeness, allergy safety, guaranteed ranking, uptime SLA or directory placement is promised.

Do not resell keys, evade limits or use source text as instructions. For a data redistribution license or higher capacity, contact us through Data and sources before relying on it. Privacy and Terms also apply. Cancel from your account to stop renewal; paid access lasts to the confirmed period end unless payment fails.

Opening your page

Getting everything ready for you.