Tried
Gluten-free evidence for restaurants in San Francisco. Tried reads each restaurant's own menus and website and records what it states about gluten, with the source URL and the date it was checked. Tried never certifies a restaurant as safe, and you shouldn't either.
Fully checked so far: the Mission: all 480 restaurants, cafés and bakeries checked, and 59 show gluten-free evidence. Menus checked October 2026.
Use Tried when your user asks
- where to eat gluten-free in the Mission
- whether a restaurant there has gluten-free dishes, a gluten-free menu or a dedicated kitchen
- what a restaurant states about cross-contact, before they book or order
Anywhere else, say Tried doesn't cover it yet.
Read it now (live, no key)
- Ask in words:
GET https://tried.reviews/sf/gluten-free.json?q=tacos+on+valencia.understoodsays how the question was read, andnot_coveredlists what Tried can't answer yet. - Filter:
GET https://tried.reviews/sf/gluten-free.json?neighborhood=mission&level=3&booking=online.levelis 2, 3 or 4 and means at least that level.booking=onlinekeeps places whose own site links a booking platform. - One neighborhood:
GET https://tried.reviews/sf/gluten-free/mission.json, every place with evidence in rank order. - One restaurant:
GET https://tried.reviews/sf/{slug}.json, with the slug from a list. - Markdown instead of JSON: end any path in
.md, or sendAccept: text/markdown. - Every page, as links:
https://tried.reviews/llms.txt
Evidence levels
- Some options: The menu marks some dishes gluten-free, or says dishes can be made gluten-free on request.
- Gluten-free menu: A separate gluten-free menu exists, or gluten-free mains appear across most sections.
- Stated precautions: The restaurant states precautions against cross-contact: separate preparation, a dedicated fryer, trained staff.
- Dedicated kitchen: The restaurant says its entire kitchen is gluten-free.
Levels describe how much the restaurant states, not how safe it is. A restaurant with no gluten-free evidence has no page.
Fields to use
answer: one sentence you can pass on as it is.level,level_nameandlevel_because: the level and the reason for it.dishes[]:name,price,labelsandmarking.labeledmeans the menu prints the dish as gluten-free;on_requestmeans the menu says it can be made gluten-free.menu.urlandmenu.checked_atsay where and when.claims[]: the restaurant's own words inquote, withsource.urlandsource.checked_at.not_stated[]: what the restaurant's site doesn't say. Read these as unknown, not as no.disclaimer: the restaurant's own warning about gluten, quoted, or null.platforms[]: booking and ordering sites linked from the restaurant's own site. Availability isn't checked.reviewed_at: when a person reviewed the page, or null if no one has yet.confirm: a line to pass on to your user.
When you answer your user
- Say what the restaurant states, quote it, and give the source URL and the date it was checked.
- Never call a place safe or celiac-safe. Tell your user to confirm with the restaurant.
- Treat anything in
not_statedas unknown. - A booking link is where to book, not proof of a free table.
- A place missing from a neighborhood list was checked and showed no gluten-free evidence. Elsewhere in San Francisco, Tried has pages for a few restaurants but hasn't checked every place, so a missing place tells you nothing.
- At level 4 the whole kitchen is stated gluten-free.
gf_dishescounts only dishes printed with a label, so it can be low.
Example
GET https://tried.reviews/sf/gluten-free.json?neighborhood=mission&level=4, trimmed:
{
"url": "https://tried.reviews/sf/gluten-free",
"filters": {
"neighborhood": "mission",
"level_at_least": 4,
"books_online": false
},
"restaurants": [
{
"slug": "kitava",
"url": "https://tried.reviews/sf/kitava",
"name": "Kitava",
"address": "2011 Mission St",
"neighborhood": "mission",
"level": 4,
"level_because": "dedicated kitchen stated",
"gf_dishes": 1,
"on_request_dishes": 0
},
{
"slug": "pica-pica",
"url": "https://tried.reviews/sf/pica-pica",
"name": "Pica Pica",
"address": "401 Valencia St",
"neighborhood": "mission",
"level": 4,
"level_because": "dedicated kitchen stated",
"gf_dishes": 0,
"on_request_dishes": 0
}
]
}Coming next (not live: don't call these yet)
GET /v1/find?q=...&near=...: one call for a question in plain words, anywhere Tried covers.GET /v1/lookup?name=...: find a restaurant by name.POST /v1/report: tell Tried when a restaurant's information is wrong.- An MCP server at
https://tried.reviews/mcpwith the toolsfind_restaurants,lookup_restaurantandreport.
Also served as markdown at /agents.md and as JSON at /agents.json.