Compass Food Technologies
DocsPOST /v1/search

Docs

POST /v1/search

Search finds restaurants for a dietary query and returns a compass_id you can pass to Decide.

Complete food menu

Every returned restaurant includes vegan_dining.menu: all food dishes, stored prices and ingredients, without drinks or descriptions. No option is required. Search accepts at most 10 restaurants per request. Credits stay unchanged. Google-labeled menus return an empty menu with null counts and excluded: "source_not_permitted".

Ingredients as printed on the restaurant's menu, when listed. May be incomplete. Not for allergy decisions.

Menus deduplicate by normalized dish name. The first stored food row supplies display fields. Original sections are grouped with main courses first; other sections retain stored order, and unknown sections come last. False is_vegan includes unconfirmed classifications. Menus are never truncated: JSON responses above 250 KB return 413 full_menu_too_large; streaming Search emits an error event with status 413. Reduce the Search limit or retrieve restaurants individually.

Request

FieldTypeNotes
querystringRequired. Natural-language restaurant query, maximum 500 characters. A US city named in the query, such as in Austin, TX, is searched within 50,000 meters unless the query gives a distance. Price, hours, and ingredient exclusions such as under $20 are not supported constraints.
dishstringOptional explicit dish, maximum 120 characters. Each restaurant includes the complete food menu; matching dishes describe the explicit dish request.
user_profile.dietenumOptional preference input. vegan_options is an alias of strict_vegan: a vegan meal is available, judged from dishes. Set fully_vegan_only to judge only fully vegan restaurants. vegetarian is judged only from vegan evidence. pescatarian, halal, kosher, and low_fodmap are accepted but always return unknown with reason code DIET_NOT_SUPPORTED.
locationobjectOptional lat, lng, and radius_m. Required for near me, nearby, or around me queries unless place gives a city. When supplied, returned results stay inside the requested radius. Default radius is 5,000 meters; max is 50,000 meters. Send location or place, not both.
place.country_codestringOptional structured destination, an alternative to location. ISO 3166-1 alpha-2, such as US or FR. A country other than US, including US territories such as PR, returns coverage.status out_of_coverage with empty results.
place.regionstringUS state code or name, such as ID or Idaho, or DC. Alone, it limits results to that state. Required with place.city.
place.citystringCity or town in place.region. Search runs within place.radius_m of it. An unknown state or city returns 400 invalid_place or place_not_found.
place.radius_mintegerOptional radius around place.city in meters. Default 50,000; max 50,000.
limitintegerOptional result count. Fast mode defaults to 5 and maxes at 5. Rich mode defaults to 10 and maxes at 10.
include_evidencebooleanOptional. Defaults to true.

Use rich mode when you need fuller evidence and query interpretation.

$env:COMPASS_API_KEY = "<YOUR_COMPASS_API_KEY>"

$headers = @{
  "X-Compass-API-Key" = $env:COMPASS_API_KEY
  "X-Compass-Mode" = "rich"
}

$body = @'
{
  "query": "strict vegan ramen near Brooklyn",
  "dish": "ramen",
  "user_profile": {
    "diet": "strict_vegan"
  },
  "location": {
    "lat": 40.6782,
    "lng": -73.9442,
    "radius_m": 5000
  },
  "limit": 10,
  "include_evidence": true
}
'@

Invoke-RestMethod `
  -Method Post `
  -Uri "https://api.compassfoodtechnologies.com/v1/search" `
  -Headers $headers `
  -ContentType "application/json" `
  -Body $body

Response

Search and Enrich return complete food menus with stored prices and ingredients. Matching dish lists remain request-specific.

SearchResponse: 204 contract leaves. A row is one contract leaf. Optional leaves, missing restaurant evidence, and fast mode can omit fields. This count is the schema, not a promise that every response contains every field.

FieldTypeNotes
ai_generatedbooleanRequired on this object.
client_refstringOptional. Omitted when the value is absent.
compass_request_idstringRequired on this object.
coverage.covered_geographyUSRequired on this object.
coverage.interpreted_locationstringOptional. Omitted when the value is absent.
coverage.notestringOptional. Omitted when the value is absent.
coverage.statusin_coverage | out_of_coverage | coverage_unknownRequired on this object.
human_review_recommendedbooleanOptional. Omitted when the value is absent.
location_disambiguation.candidates_considered[]stringRequired on this object.
location_disambiguation.chosenstringRequired on this object.
location_disambiguation.inputstringRequired on this object.
location_disambiguation.ruleus_wins_when_ambiguousRequired on this object.
metadataobjectOptional. Omitted when the value is absent.
named_candidates[].address.citystring | nullRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].address.countrystring | nullRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].address.postal_codestring | nullRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].address.statestring | nullRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].address.streetstring | nullRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].compass_idstringRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].coordinates.latnumber (double) | nullRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].coordinates.lngnumber (double) | nullRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].cuisine_types[]stringRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].dietary_profile.food_availability.fishyes | no | unknownRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].dietary_profile.food_availability.meatyes | no | unknownRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].dietary_profile.food_availability.pescatarian_optionsyes | no | unknownRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].dietary_profile.food_availability.shellfishyes | no | unknownRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].dietary_profile.food_availability.vegan_optionsyes | no | unknownRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].dietary_profile.food_availability.vegetarian_optionsyes | no | unknownRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].dietary_profile.fully_veganboolean | nullRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].dietary_profile.vegan_friendlyboolean | nullRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].dish_match.dishes[].categorystring | nullRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].dish_match.dishes[].is_veganbooleanRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].dish_match.dishes[].match_typeexact | variantRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].dish_match.dishes[].namestringRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].dish_match.match_typedish | cuisine_onlyRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].dish_match.requested_dishstringRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].distance_mnumberOptional. Omitted when the value is absent. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].evidence[].evidence_idstringRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].evidence[].excerptstringOptional. Omitted when the value is absent. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].evidence[].paraphrase_methodautomatic | manual | noneOptional. Omitted when the value is absent. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].evidence[].sourcestring (uri)Required on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].evidence[].tierA | BRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].evidence[].typemenu_item | review_signal | external_source | user_report | restaurant_declaredRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].evidence[].weightprimary | supportingRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].last_evaluated_atstring (date-time) | nullRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].last_verified_atstring (date-time) | nullRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].match_for_profile.confidencehigh | medium | lowRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].match_for_profile.decisionfit | not_fit | unknownRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].match_for_profile.reason_codes[]VEGAN_MENU_CONFIRMED | VEGAN_OPTIONS_MENTIONED | NO_VEGAN_EVIDENCE_FOUND | VEGETARIAN_ONLY_NOT_STRICT_VEGAN | VEGAN_MENU_FULL_RESTAURANT | VEGAN_FRIENDLY_PARTIAL | FRYER_CONTAMINATION_RISK | SHARED_GRILL_RISK | SHARED_PREP_SURFACE_RISK | DEDICATED_VEGAN_PREP_CONFIRMED | CROSS_CONTAMINATION_UNKNOWN | MENU_OUTDATED | REVIEW_SIGNAL_POSITIVE | REVIEW_SIGNAL_NEGATIVE | REVIEW_SIGNAL_CONFLICTING | SOURCE_CONFIDENCE_LOW | SOURCE_CONFIDENCE_HIGH | RESTAURANT_VERIFICATION_RECOMMENDED | DATA_FRESHNESS_POOR | INSUFFICIENT_EVIDENCE | HIGH_CONFIDENCE_DECISION | EDGE_CASE_FLAGGED | USER_PROFILE_AMBIGUOUS | DIET_NOT_SUPPORTED | LOCATION_OUT_OF_COVERAGE | LOCATION_INTERPRETED_US | LOCATION_UNRESOLVED_US_ONLY | VEGAN_MEAL_AVAILABLE | VEGAN_OPTIONS_LIMITED | NO_VEGAN_DISHES_IN_COLLECTED_MENU | INSUFFICIENT_MENU_EVIDENCE | NO_DISH_DATA | REQUESTED_DISH_AVAILABLE | FULLY_VEGAN_RESTAURANT | NOT_FULLY_VEGAN | NO_RESTAURANT_FLAGRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].match_for_profile.recommended_user_textstringRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].match_for_profile.risk_flags[]cross_contamination_risk | limited_evidence | stale_data | third_party_unverified | user_report_only | language_barrierRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].match_for_profile.verification_requiredbooleanRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].namestring | nullRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].name_match.kindexact | variant | possibleRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].name_match.reason_codes[]NORMALIZED_NAME | COMPATIBLE_TEXT_KEY | DISTINCTIVE_CORE | EXPLAINED_SUFFIX | UNEXPLAINED_QUERY_TERMS | CONSTRAINED_TYPORequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].name_match.selection_requiredbooleanRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].servicesobject of booleanOptional. Omitted when the value is absent. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].source_freshness.newest_signal_age_daysintegerRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].source_freshness.oldest_signal_age_daysintegerRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].vegan_dining.dishes_availabilityyes | unknownRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].vegan_dining.match_statusmatched | no_supported_match | evidence_unavailableRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].vegan_dining.matched_dishes[].categorystring | nullRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].vegan_dining.matched_dishes[].evidence_idstringRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].vegan_dining.matched_dishes[].match_typeexact | variant | not_requestedRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].vegan_dining.matched_dishes[].namestringRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].vegan_dining.matched_dishes[].vegan_basisvalidated_menu_classificationRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].vegan_dining.matching_dish_countinteger | nullRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].vegan_dining.menu_collected_atstring (date-time) | nullRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].vegan_dining.menu_collected_at_statusknown | unknownRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].vegan_dining.menu.dish_countinteger | nullRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].vegan_dining.menu.dishes[].categorystring | nullRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].vegan_dining.menu.dishes[].ingredients_as_listed[]stringRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].vegan_dining.menu.dishes[].is_veganbooleanRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].vegan_dining.menu.dishes[].namestringRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].vegan_dining.menu.dishes[].pricestring | nullRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].vegan_dining.menu.excludedsource_not_permitted | nullRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].vegan_dining.menu.vegan_dish_countinteger | nullRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].vegan_dining.truncatedbooleanRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].vegan_dining.vegan_dish_countinteger | nullRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].vegan_score.base10 | 30 | 50 | 70 | 80 | nullRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].vegan_score.is_fully_veganboolean | nullRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].vegan_score.overallnumber | nullRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].vegan_score.quality_adj0 | 10 | nullRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].vegan_score.quality_adj_reasonpraised | no_standout | not_applicable | nullRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].vegan_score.scored_atstring (date-time) | nullRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].vegan_score.scoring_versionstring | nullRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].vegan_score.vegan_adj-10 | 0 | 10 | nullRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].vegan_score.vegan_adj_reasonpraised | weak | not_enough_reviews | mixed | not_applicable | nullRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].vegan_score.vegan_dish_countinteger | nullRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_candidates[].vegan_score.vegan_main_countinteger | nullRequired on this object. Optional named-matching/1 capability: selectable addresses independent of dietary recommendations. Possible names are not confirmed identities.
named_lookup.completebooleanRequired on this object. The bounded retrieval plan completed. This does not establish corpus coverage, absence, or approximate uniqueness.
named_lookup.policy_versionnamed-matching/1 | named-matching/1.1 | named-matching/1.2 | named-matching/1.3 | named-matching/1.4Required on this object.
named_lookup.truncatedbooleanRequired on this object.
named_match.alternatives[].compass_idstringRequired on this object.
named_match.alternatives[].namestringRequired on this object.
named_match.alternatives[].reasonsame_name_without_location | multiple_matches_without_locationRequired on this object.
named_match.compass_ids[]stringRequired on this object.
named_match.match_methodnormalized_name | normalized_slugOptional. Omitted when the value is absent.
named_match.statusconfident | ambiguous | no_confident_match | lookup_incompleteRequired on this object.
named_match.targetstringRequired on this object.
nearest_matchvalue | nullOptional. Omitted when the value is absent.
nearest_match_notestringOptional. Omitted when the value is absent.
nearest_match.address.citystring | nullRequired on this object.
nearest_match.address.countrystring | nullRequired on this object.
nearest_match.address.postal_codestring | nullRequired on this object.
nearest_match.address.statestring | nullRequired on this object.
nearest_match.address.streetstring | nullRequired on this object.
nearest_match.compass_idstringRequired on this object.
nearest_match.coordinates.latnumber | nullOptional. Omitted when the value is absent.
nearest_match.coordinates.lngnumber | nullOptional. Omitted when the value is absent.
nearest_match.distance_kmnumberRequired on this object.
nearest_match.matching_dishes[].categorystring | nullRequired on this object.
nearest_match.matching_dishes[].is_veganbooleanRequired on this object.
nearest_match.matching_dishes[].match_typeexact | variantRequired on this object.
nearest_match.matching_dishes[].namestringRequired on this object.
nearest_match.namestring | nullRequired on this object.
query_interpretation.cuisine_inferredstringOptional. Omitted when the value is absent. Key field. Rich mode only. Fast responses omit query_interpretation.
query_interpretation.diet_inferredstringOptional. Omitted when the value is absent. Key field. Rich mode only. Fast responses omit query_interpretation.
query_interpretation.dish_inferredstring | nullOptional. Omitted when the value is absent. Key field. Rich mode only. Fast responses omit query_interpretation.
query_interpretation.dish_sourceexplicit | queryOptional. Omitted when the value is absent. Key field. Rich mode only. Fast responses omit query_interpretation.
query_interpretation.ignored_query_terms[]stringOptional. Omitted when the value is absent. Key field. Rich mode only. Fast responses omit query_interpretation.
query_interpretation.intent_inferrednamed | dish | cuisine | generalOptional. Omitted when the value is absent. Key field. Rich mode only. Fast responses omit query_interpretation.
query_interpretation.location_inferredstringOptional. Omitted when the value is absent. Key field. Rich mode only. Fast responses omit query_interpretation.
query_interpretation.neighborhood_inferredstringOptional. Omitted when the value is absent. Key field. Rich mode only. Fast responses omit query_interpretation.
query_interpretation.radius_mintegerOptional. Omitted when the value is absent. Key field. Rich mode only. Fast responses omit query_interpretation.
query_interpretation.radius_m_inferredbooleanOptional. Omitted when the value is absent. Key field. Rich mode only. Fast responses omit query_interpretation.
query_interpretation.radius_m_text_ignoredbooleanOptional. Omitted when the value is absent. Key field. Rich mode only. Fast responses omit query_interpretation.
query_interpretation.target_inferredstring | nullOptional. Omitted when the value is absent. Key field. Rich mode only. Fast responses omit query_interpretation.
result_statusmatched | no_match | no_supported_match | out_of_coverageRequired on this object.
results[].address.citystring | nullRequired on this object.
results[].address.countrystring | nullRequired on this object.
results[].address.postal_codestring | nullRequired on this object.
results[].address.statestring | nullRequired on this object.
results[].address.streetstring | nullRequired on this object.
results[].compass_idstringRequired on this object. Key field. Pass this ID to Decide.
results[].coordinates.latnumber (double) | nullRequired on this object.
results[].coordinates.lngnumber (double) | nullRequired on this object.
results[].cuisine_types[]stringRequired on this object.
results[].dietary_profile.food_availability.fishyes | no | unknownRequired on this object.
results[].dietary_profile.food_availability.meatyes | no | unknownRequired on this object.
results[].dietary_profile.food_availability.pescatarian_optionsyes | no | unknownRequired on this object.
results[].dietary_profile.food_availability.shellfishyes | no | unknownRequired on this object.
results[].dietary_profile.food_availability.vegan_optionsyes | no | unknownRequired on this object.
results[].dietary_profile.food_availability.vegetarian_optionsyes | no | unknownRequired on this object.
results[].dietary_profile.fully_veganboolean | nullRequired on this object.
results[].dietary_profile.vegan_friendlyboolean | nullRequired on this object.
results[].dish_match.dishes[].categorystring | nullRequired on this object.
results[].dish_match.dishes[].is_veganbooleanRequired on this object.
results[].dish_match.dishes[].match_typeexact | variantRequired on this object.
results[].dish_match.dishes[].namestringRequired on this object.
results[].dish_match.match_typedish | cuisine_onlyRequired on this object.
results[].dish_match.requested_dishstringRequired on this object.
results[].distance_mnumberOptional. Omitted when the value is absent.
results[].evidence[].evidence_idstringRequired on this object. Fast responses include at most two evidence items.
results[].evidence[].excerptstringOptional. Omitted when the value is absent. Fast responses include at most two evidence items.
results[].evidence[].paraphrase_methodautomatic | manual | noneOptional. Omitted when the value is absent. Fast responses include at most two evidence items.
results[].evidence[].sourcestring (uri)Required on this object. Fast responses include at most two evidence items.
results[].evidence[].tierA | BRequired on this object. Fast responses include at most two evidence items.
results[].evidence[].typemenu_item | review_signal | external_source | user_report | restaurant_declaredRequired on this object. Fast responses include at most two evidence items.
results[].evidence[].weightprimary | supportingRequired on this object. Fast responses include at most two evidence items.
results[].last_evaluated_atstring (date-time) | nullRequired on this object.
results[].last_verified_atstring (date-time) | nullRequired on this object.
results[].match_for_profile.confidencehigh | medium | lowRequired on this object. Key field when the request includes user_profile.
results[].match_for_profile.decisionfit | not_fit | unknownRequired on this object. Key field when the request includes user_profile.
results[].match_for_profile.reason_codes[]VEGAN_MENU_CONFIRMED | VEGAN_OPTIONS_MENTIONED | NO_VEGAN_EVIDENCE_FOUND | VEGETARIAN_ONLY_NOT_STRICT_VEGAN | VEGAN_MENU_FULL_RESTAURANT | VEGAN_FRIENDLY_PARTIAL | FRYER_CONTAMINATION_RISK | SHARED_GRILL_RISK | SHARED_PREP_SURFACE_RISK | DEDICATED_VEGAN_PREP_CONFIRMED | CROSS_CONTAMINATION_UNKNOWN | MENU_OUTDATED | REVIEW_SIGNAL_POSITIVE | REVIEW_SIGNAL_NEGATIVE | REVIEW_SIGNAL_CONFLICTING | SOURCE_CONFIDENCE_LOW | SOURCE_CONFIDENCE_HIGH | RESTAURANT_VERIFICATION_RECOMMENDED | DATA_FRESHNESS_POOR | INSUFFICIENT_EVIDENCE | HIGH_CONFIDENCE_DECISION | EDGE_CASE_FLAGGED | USER_PROFILE_AMBIGUOUS | DIET_NOT_SUPPORTED | LOCATION_OUT_OF_COVERAGE | LOCATION_INTERPRETED_US | LOCATION_UNRESOLVED_US_ONLY | VEGAN_MEAL_AVAILABLE | VEGAN_OPTIONS_LIMITED | NO_VEGAN_DISHES_IN_COLLECTED_MENU | INSUFFICIENT_MENU_EVIDENCE | NO_DISH_DATA | REQUESTED_DISH_AVAILABLE | FULLY_VEGAN_RESTAURANT | NOT_FULLY_VEGAN | NO_RESTAURANT_FLAGRequired on this object. Key field when the request includes user_profile. Fast responses include at most three match_for_profile reason codes.
results[].match_for_profile.recommended_user_textstringRequired on this object. Key field when the request includes user_profile.
results[].match_for_profile.risk_flags[]cross_contamination_risk | limited_evidence | stale_data | third_party_unverified | user_report_only | language_barrierRequired on this object. Key field when the request includes user_profile.
results[].match_for_profile.verification_requiredbooleanRequired on this object. Key field when the request includes user_profile.
results[].namestring | nullRequired on this object.
results[].servicesobject of booleanOptional. Omitted when the value is absent.
results[].source_freshness.newest_signal_age_daysintegerRequired on this object.
results[].source_freshness.oldest_signal_age_daysintegerRequired on this object.
results[].vegan_dining.dishes_availabilityyes | unknownRequired on this object.
results[].vegan_dining.match_statusmatched | no_supported_match | evidence_unavailableRequired on this object.
results[].vegan_dining.matched_dishes[].categorystring | nullRequired on this object.
results[].vegan_dining.matched_dishes[].evidence_idstringRequired on this object.
results[].vegan_dining.matched_dishes[].match_typeexact | variant | not_requestedRequired on this object.
results[].vegan_dining.matched_dishes[].namestringRequired on this object.
results[].vegan_dining.matched_dishes[].vegan_basisvalidated_menu_classificationRequired on this object.
results[].vegan_dining.matching_dish_countinteger | nullRequired on this object.
results[].vegan_dining.menu_collected_atstring (date-time) | nullRequired on this object.
results[].vegan_dining.menu_collected_at_statusknown | unknownRequired on this object.
results[].vegan_dining.menu.dish_countinteger | nullRequired on this object.
results[].vegan_dining.menu.dishes[].categorystring | nullRequired on this object.
results[].vegan_dining.menu.dishes[].ingredients_as_listed[]stringRequired on this object.
results[].vegan_dining.menu.dishes[].is_veganbooleanRequired on this object.
results[].vegan_dining.menu.dishes[].namestringRequired on this object.
results[].vegan_dining.menu.dishes[].pricestring | nullRequired on this object.
results[].vegan_dining.menu.excludedsource_not_permitted | nullRequired on this object.
results[].vegan_dining.menu.vegan_dish_countinteger | nullRequired on this object.
results[].vegan_dining.truncatedbooleanRequired on this object.
results[].vegan_dining.vegan_dish_countinteger | nullRequired on this object.
results[].vegan_score.base10 | 30 | 50 | 70 | 80 | nullRequired on this object. Key field. Both modes return the same menu-based v5 score components; unavailable legacy components are null.
results[].vegan_score.is_fully_veganboolean | nullRequired on this object. Key field. Both modes return the same menu-based v5 score components; unavailable legacy components are null.
results[].vegan_score.overallnumber | nullRequired on this object. Key field. Both modes return the same menu-based v5 score components; unavailable legacy components are null.
results[].vegan_score.quality_adj0 | 10 | nullRequired on this object. Key field. Both modes return the same menu-based v5 score components; unavailable legacy components are null.
results[].vegan_score.quality_adj_reasonpraised | no_standout | not_applicable | nullRequired on this object. Key field. Both modes return the same menu-based v5 score components; unavailable legacy components are null.
results[].vegan_score.scored_atstring (date-time) | nullRequired on this object. Key field. Both modes return the same menu-based v5 score components; unavailable legacy components are null.
results[].vegan_score.scoring_versionstring | nullRequired on this object. Key field. Both modes return the same menu-based v5 score components; unavailable legacy components are null.
results[].vegan_score.vegan_adj-10 | 0 | 10 | nullRequired on this object. Key field. Both modes return the same menu-based v5 score components; unavailable legacy components are null.
results[].vegan_score.vegan_adj_reasonpraised | weak | not_enough_reviews | mixed | not_applicable | nullRequired on this object. Key field. Both modes return the same menu-based v5 score components; unavailable legacy components are null.
results[].vegan_score.vegan_dish_countinteger | nullRequired on this object. Key field. Both modes return the same menu-based v5 score components; unavailable legacy components are null.
results[].vegan_score.vegan_main_countinteger | nullRequired on this object. Key field. Both modes return the same menu-based v5 score components; unavailable legacy components are null.
total_resultsintegerRequired on this object.

The example answers the ramen request above. Each result is a restaurant with its matching vegan dishes and the date the menu was collected. A ramen request returns ramen dishes only.

Abridged SearchResponse example — 31 of 204 contract leaves. Illustrative values, not a live payload.

{
  "compass_request_id": "req_example_quickstart",
  "coverage": {
    "status": "in_coverage",
    "covered_geography": "US"
  },
  "results": [
    {
      "compass_id": "cmp_example_ramen_house_001",
      "name": "Example Ramen House",
      "dish_match": {
        "requested_dish": "ramen",
        "match_type": "dish",
        "dishes": [
          {
            "name": "Shoyu Vegan Ramen",
            "category": "Pasta & Noodles",
            "match_type": "variant",
            "is_vegan": true
          },
          {
            "name": "Spicy Miso Vegan Ramen",
            "category": "Pasta & Noodles",
            "match_type": "variant",
            "is_vegan": true
          }
        ]
      },
      "vegan_dining": {
        "dishes_availability": "yes",
        "vegan_dish_count": 6,
        "matching_dish_count": 2,
        "matched_dishes": [
          {
            "name": "Shoyu Vegan Ramen",
            "category": "Pasta & Noodles",
            "match_type": "variant",
            "evidence_id": "ev_dish_example_shoyu_vegan_ramen",
            "vegan_basis": "validated_menu_classification"
          },
          {
            "name": "Spicy Miso Vegan Ramen",
            "category": "Pasta & Noodles",
            "match_type": "variant",
            "evidence_id": "ev_dish_example_spicy_miso_vegan_ramen",
            "vegan_basis": "validated_menu_classification"
          }
        ],
        "truncated": false,
        "menu_collected_at": "2026-10-07T16:00:00Z",
        "menu_collected_at_status": "known",
        "match_status": "matched"
      },
      "match_for_profile": {
        "decision": "fit",
        "confidence": "medium",
        "reason_codes": [
          "REQUESTED_DISH_AVAILABLE"
        ],
        "risk_flags": [],
        "verification_required": true,
        "recommended_user_text": "Compass found a vegan version of the requested dish on the collected menu (menu collected 2026-10-07)."
      }
    }
  ],
  "result_status": "matched",
  "total_results": 1,
  "ai_generated": true
}

Decision Safety

FieldTypeNotes
fitdecisionCompass has strong supporting evidence for the submitted profile and no weak, stale, or conflicting evidence signals.
not_fitdecisionCompass has enough structured evidence to reject the submitted profile.
unknowndecisionCompass cannot confirm fit or non-fit with current evidence. Treat this as verify with the restaurant before safety-critical use.
verification_requiredbooleanTrue when the customer should verify details directly with the restaurant before relying on the result.

Modes

FieldTypeNotes
fastdefault 5, max 5Complete food menus with compact score and evidence details.
richdefault 10, max 10Fuller evidence, query interpretation, and per-result fit reasoning.

Fast mode keeps the same v5 score components and omits query_interpretation. It keeps at most two evidence items and three match_for_profile reason codes. Those limits are marked on the generated response rows above.

Search API Reference | Compass Food Technologies