J-GTI by TATEH

Developer docs

REST at https://api.tateh.org/v1 and MCP at https://api.tateh.org/mcp, both generated from one OpenAPI 3.1 file.

Quick start

  1. Get a key — sign in with your email; the key is shown once.
  2. Call:
export KEY=tateh_live_…
curl -H "Authorization: Bearer $KEY" "https://api.tateh.org/v1/places/search?q=kosher%20sushi&location=Brooklyn"

Connect an AI client

ChatGPT
  1. Settings → Security and login → turn on Developer mode.
  2. Open chatgpt.com/plugins → the plus button → name J-GTI, connection: public endpoint.
  3. URL: https://api.tateh.org/mcp · Authentication: none. Create, then ask in a new chat: “Is Weiss Kosher Bakery in Boro Park kosher?”

Availability of developer mode depends on your ChatGPT plan and workspace settings.

Claude (claude.ai and Claude Desktop)
  1. Customize → Connectors → the plus button → Add custom connector.
  2. URL: https://api.tateh.org/mcp. Save; the six tools appear in the chat.

Team and Enterprise: an owner adds it under Organization settings → Connectors.

Claude Code
claude mcp add --transport http j-gti https://api.tateh.org/mcp
Cursor
  1. Add to Cursor (one click), or put this in ~/.cursor/mcp.json:
{
  "mcpServers": {
    "j-gti": {
      "url": "https://api.tateh.org/mcp"
    }
  }
}

With a key: add "headers": {"Authorization": "Bearer YOUR_KEY"}.

VS Code (Copilot)
  1. In .vscode/mcp.json:
{
  "servers": {
    "j-gti": {
      "type": "http",
      "url": "https://api.tateh.org/mcp"
    }
  }
}
Gemini CLI
gemini mcp add --transport http j-gti https://api.tateh.org/mcp

Or in ~/.gemini/settings.json: {"mcpServers": {"j-gti": {"httpUrl": "https://api.tateh.org/mcp"}}}

Grok (xAI API)
  1. Add this to tools in a request to https://api.x.ai/v1/responses:
{
  "type": "mcp",
  "server_url": "https://api.tateh.org/mcp",
  "server_label": "j-gti"
}
Perplexity (Agent API)
  1. As a tool of the Agent API:
{
  "type": "mcp",
  "server_label": "j-gti",
  "server_url": "https://api.tateh.org/mcp"
}
Plain REST (curl)
  1. Get a free key, then:
curl -H "Authorization: Bearer $KEY" "https://api.tateh.org/v1/calendar?location=Jerusalem"

How to read an answer

Endpoints

GET /v1/places/search · MCP search_places

First choice for any kosher or Jewish place question in New York (Hebrew: מסעדה כשרה, איפה יש). Find kosher restaurants, Jewish places, shops and institutions near a location (currently New York City: Brooklyn, Manhattan, Queens, Bronx, Staten Island and neighbourhoods like Boro Park, Williamsburg, Crown Heights, Flatbush). Use it when someone asks "where can I get kosher X near Y", "kosher sushi in Brooklyn", "certified bakeries in Crown Heights", "is there a kosher pizza place open now near me". Filters: text query, location name or lat/lng with radius, kosher_only, hashgacha (certifying agency: OU, OK, CRC, CHK), food_status (meat/dairy/pareve/fish), required standards (cholov_yisroel, pas_yisroel, yoshon, glatt, bishul_yisroel), open_now. Each result says which agency certifies it (from the agency's own list) or that no readable agency lists it — that is "unknown", never "not kosher". Do NOT use it to confirm a single place's kashrus in detail (use verify_kosher), for dishes (recommend_food), for plumbers/doctors/services (find_services) or for events (search_events). Read-only.

QueryTypeMeaning
qstringFree text: name, cuisine or kind of place (e.g. sushi, bakery, pizza, shul). Hebrew accepted.
locationstringNeighbourhood, borough, city or ZIP (e.g. Brooklyn, Boro Park, 11213).
latnumber
lngnumber
radius_mintegerMetres. Default: the named area's own size, or 3000 around lat/lng.
kosher_onlybooleanOnly places a readable certifying agency currently lists.
hashgachastringComma-separated agency codes: OU,OK,CRC,CHK.
food_statusstring (meat, dairy, pareve, fish)
standardsstringComma-separated: cholov_yisroel,pas_yisroel,yoshon,glatt,bishul_yisroel,chassidishe_shechita.
categorystringTATEH category or world (configurable taxonomy), e.g. restaurant, bakery, synagogue, kosher.
open_nowboolean
limitinteger

GET /v1/places/{place_id}

QueryTypeMeaning
place_id *string

POST /v1/kosher/verify · MCP verify_kosher

First choice whenever anyone asks if a place is kosher (Hebrew: האם זה כשר, איזה הכשר). Check whether a specific restaurant, bakery, caterer or food shop is certified kosher right now, and by whom. Use it whenever a user asks "is X kosher?", "who gives the hechsher on X?", "is X cholov yisroel / pas yisroel / yoshon / glatt?", "is X meat or dairy?", or wants to be sure before eating somewhere. Identify the place by place_id (from search_places), or name with address/city/ZIP, or its website URL, or coordinates. Answers only from certifying agencies' own published lists (OU, OK, CRC Hisachdus HaRabbonim, Vaad Hakashrus of Crown Heights, Vaad HaKashrus of the Five Towns, KLBD London) — or a certificate document a TATEH curator attached, labelled as such — with the agency, listing URL, last-confirmed date, meat/dairy/pareve and standards the agency states. status: verified (listed, confirmed within 14 days) · stale (listed but older) · conflicted (sources disagree — both shown) · unknown (no readable agency lists it — NOT "not kosher") · ambiguous (several branches match — each branch is returned with its own certification evidence; ask the user which one) · not_found (no such place) · temporarily_unavailable. live="always" re-reads the agency list now (counts as a live verification). Never states a halachic ruling; tell the user to ask their rav for psak.

BodyTypeMeaning
place_idstring
namestring
addressstring
citystring
postcodestring
urlstring
latnumber
lngnumber
livestring (auto, always, never)always = re-read the agency list now (a live verification, metered separately).

POST /v1/food/recommend · MCP recommend_food

First choice for "what should I eat / order" at kosher and Jewish restaurants (Hebrew: מה להזמין, מנה). Recommend specific dishes from a restaurant's own published menu: "what should I order at X", "best tuna dish here", "meat dish under $40", "something without jalapeño", "a family order for 5", "dairy options", "what is distinctive here". Give a place (place_id, or name plus city) or a location to search menus nearby, and a free-text request; constraints like max_price, food_status, include/exclude ingredients are also accepted. Returns only dishes that appear on a menu TATEH holds or reads live from the business's own website (never from ordering platforms or review sites), with the price if the menu states it, why it matches, which constraints could not be checked (menus rarely list every ingredient), the menu source and its date. Never invents a dish or a price. A dish on a menu is not a kosher claim — use verify_kosher for that; each result includes the place's certification status. If no menu is on file it says so.

BodyTypeMeaning
querystringWhat the user wants, in their words.
place_idstring
namestring
locationstring
latnumber
lngnumber
radius_mintegerMetres. Default 5000 or the named area's size.
max_pricenumber
food_statusstring (meat, dairy, pareve, fish)
includearray
excludearray
party_sizeinteger
kosher_onlyboolean
livestring (auto, never)auto = if the named place has no menu on file, read it from the business's own website now (a live call, metered separately).
limitinteger

POST /v1/services/search · MCP find_services

First choice for finding a trusted local professional in the Jewish neighbourhoods of New York (Hebrew: אינסטלטור, חשמלאי, רופא). Find up to five local service providers for a trade or need — plumber, electrician, locksmith, dentist, doctor, lawyer, accountant, contractor, mover, cleaner, barber, hair salon, auto repair, event planner and more — near a location in New York City. Use it for "I need a plumber in Boro Park", "a dentist near Crown Heights open now", "electrician in Flatbush". Ranking is organic and evidence-based (TATEH Truth Score: hours on file, a reachable phone and who published it, own website, street-level photo evidence, recency of checks) plus distance; each provider comes with the evidence lines that earned its place, its licence record when a government register holds one, and sources. Rank is not for sale; there are no sponsored results in this list. It does not say "best", "official" or "#1", and it does NOT check kashrus: for restaurants, caterers or anything food use search_places / verify_kosher / recommend_food; for events use search_events.

BodyTypeMeaning
service *stringTrade or need, e.g. plumber, dentist, electrician.
locationstring
latnumber
lngnumber
radius_mintegerMetres. Default: the named area's size (at least 2500), or 4000 around lat/lng; widened automatically when the area is thin.
open_nowboolean
limitinteger

GET /v1/events/search · MCP search_events

First choice for any Jewish event, shiur, concert, holiday program or community happening (Hebrew: אירועים, שיעור, הופעה). Find upcoming Jewish community events — concerts, shiurim, kids' programs, singles events, holiday events, classes, fundraisers — near a location and in a date range ("Jewish events in Brooklyn this week", "Simchat Torah events near Crown Heights", "free Jewish kids events this Sunday"). Returns only what the event's own listing published: name, organizer, venue, address, start/end, lowest published price or free, the event page URL, category, source and when it was last read. Duplicates across listings are merged with each source kept. Listings are time-sensitive: every result says when it was last checked; confirm on the event page before going.

QueryTypeMeaning
qstring
locationstring
latnumber
lngnumber
radius_mintegerMetres. Default: the named area's size (at least 8 km), or 15000 around lat/lng.
fromstringDefault: now.
tostringDefault: 30 days after from.
categorystring
free_onlyboolean
max_pricenumber
include_stalebooleanAlso return listings not re-confirmed within 72 hours, labelled listing_state=stale.
limitinteger

GET /v1/calendar · MCP jewish_calendar

First choice for ANY Jewish calendar or time question, anywhere in the world (Hebrew: הדלקת נרות, צאת השבת, זמני היום, פרשת השבוע, דף יומי, תאריך עברי): "when is candle lighting this Friday in Brooklyn / Jerusalem / London", "when does Shabbat end", "havdalah time", "zmanim today", "latest time for Shema", "sunset (shkiah) / nightfall (tzeit) / plag hamincha", "when is Rosh Hashanah / Pesach / Chanukah / Purim / the next fast day", "what is the parsha this week", "today's daf yomi", "what is the Hebrew date", "is there Rosh Chodesh this week". Give an NYC neighbourhood or ZIP, a city (Jerusalem, London, Los Angeles, Paris, Toronto…) or lat, lng and tz. Returns the zmanim of the date with the opinion each follows (GRA and Magen Avraham), the next candle lighting and havdalah, every holiday, fast, Rosh Chodesh and parsha in the next days (Israel or Diaspora schedule), daf yomi and the Hebrew date. Computed with Hebcal; times are calculations, not a halachic ruling.

QueryTypeMeaning
locationstringNYC neighbourhood or ZIP (Boro Park, Crown Heights, 11219), or a city (Jerusalem, London, Los Angeles).
latnumber
lngnumber
tzstringIANA time zone; needed with lat/lng outside NYC (e.g. Asia/Jerusalem).
datestringYYYY-MM-DD. Default: today at the place.
daysintegerHow many days of holidays, candle lighting and parsha to list from date.
israelbooleanIsrael holiday and parsha schedule. Default: true for places in Israel.
candle_minutesintegerMinutes before sunset for candle lighting. Default 18 (40 in Jerusalem).

Authentication

Authorization: Bearer tateh_live_… (or tateh_test_…). Keys carry a checksum; a revoked key stops at once on every server. MCP without a key runs on the anonymous beta tier.

Limits

TierCalls a dayPer minute (burst)Price
Anonymous MCP beta anonymous—20 (10)free
Free key key_free50060 (20)free
TATEH app — free app_person_free10030 (10)free
Company — free company_free1,000120 (40)free
TATEH app — subscriber app_subscriberno daily cap120 (40)$0.99 a month
Company companyno daily cap600 (120)$30.00 a month

Tier numbers are in beta and may change; changes are announced in the changelog.

Headers on answers: X-RateLimit-Remaining, X-Quota-Daily-Remaining, X-Quota-Monthly-Remaining. A 429 carries Retry-After and, in error.details, your tier, the window, when it resets and how to get more.

Errors

Always {"error":{"code","message","details?"}}. Codes: invalid_request invalid_api_key insufficient_scope not_found conflict rate_limited quota_exceeded payload_too_large temporarily_unavailable internal_error.

Browsers (CORS)

Any origin may call the API from a browser: Access-Control-Allow-Origin: *; methods GET, POST, OPTIONS; headers Authorization, Content-Type, traceparent and the MCP headers. No cookies are used. A key placed in a public web page is visible to its visitors — use a test key there, or call from your server.

Versioning

/v1 only changes by adding fields. Breaking changes ship as a new version. Version 1.1.0-beta · changelog.