TheFork Search
GET
Search TheFork restaurants from a full search or city URL and retrieve ratings, cuisine, prices, availability, review summaries, and pagination via browser rendering.
Credit cost: 2 credits per call
ApiKeyAuthheader
x-api-key<token>Your API key. Include it in the x-api-key header for every request.
query*stringFull TheFork search or city listing URL.
Example 1 (search with date, time, and party size):
https://www.thefork.fr/search?cityId=529135&date=2026-06-13&hour=660&partySize=8&timezone=Europe%2FParisExample 2 (city restaurant listing):
https://www.thefork.fr/restaurants/strasbourg-c529135Notes:
- Accepts
thefork.fr,thefork.com, and other TheFork country domains. - Copy the full URL from TheFork, including filters (
cityId,date,hour,partySize, cuisine tags, etc.). - Pagination uses the
#list25anchor inpagination.next_url(page 2 =#list25, page 3 =#list50, etc.). - TheFork search pages are JavaScript SPAs; this endpoint uses website rendering to scrape listing cards.
- Pass each result's
urlto the TheFork Restaurant endpoint for full profile data.
fields?stringComma-separated list of response fields to return, with dot notation for nested fields (e.g. name,location.city).
is_async?booleanRun the request as a background job: the API answers 202 with a job_id to poll on GET /v1/jobs/{id}.
Default
falsesoft_fail?booleanReturn HTTP 200 even when the request fails; the error is in the error field of the body.
Default
falseSuccessful response
application/json- response
results?array<>pagination?curl -X GET 'https://api.piloterr.com/v2/thefork/search?query=string'Example Response
{ "results": [ { "id": 423365, "url": "https://www.thefork.fr/restaurant/le-vintage-r423365", "name": "Le Vintage", "slug": "le-vintage", "uuid": "a55fe916-811b-43be-9b14-4babd77b0df9", "image": "https://cdn.thefork.com/tf-lab/image/upload/restaurant/a55fe916-811b-43be-9b14-4babd77b0df9/54b4e261-50d9-4bbb-a690-08a38059391c.jpg", "rating": 9.5, "address": "15 Rue des Serruriers, 67000, Strasbourg, France", "cuisine": "Alsacien", "currency": "EUR", "avg_price": 32, "timeslots": [], "geolocation": { "latitude": 48.5803126, "longitude": 7.7464058, "__typename": "Coordinate" }, "is_bookable": true, "reviews_count": 571, "review_snippets": [ { "text": "très beau cadre vintage, très belle musique, très bon repas, accueil parfait, nous recommandons à 100%", "__typename": "SearchReviewSnippet", "highlights": [ { "end": 59, "start": 45, "__typename": "SearchReviewSnippetHighlight" }, { "end": 76, "start": 61, "__typename": "SearchReviewSnippetHighlight" } ], "review_snippet_uuid": "a114b6d4-f50f-4d74-9935-c5a6ed7f895f" } ], "reviews_summary": "Le Vintage charme par son ambiance rétro et intimiste, avec une décoration vintage de très bon goût, agrémentée de photos d’actrices mythiques. Les clients apprécient particulièrement les tartes flambées croustillantes et bien garnies, ainsi que le jarret grillé. Le service est impeccable et chaleureux, avec un personnel attentionné. Une adresse recommandée à Strasbourg pour une expérience culinaire authentique." }, { "id": 832121, "url": "https://www.thefork.fr/restaurant/restaurant-et-cafe-aygui-r832121", "name": "RESTAURANT ET CAFÉ AYGUI", "slug": "restaurant-et-cafe-aygui", "uuid": "d34ce798-5ed7-4a0f-b014-eb2dbdd24476", "image": "https://cdn.thefork.com/tf-lab/image/upload/restaurant/d34ce798-5ed7-4a0f-b014-eb2dbdd24476/d524634e-094b-447f-bdc8-c2865bf506e3.png", "rating": 9.3, "address": "5 Rue du Faubourg-de-Saverne, 67000, Strasbourg, France", "cuisine": "Arménien", "currency": "EUR", "avg_price": 18, "timeslots": [], "geolocation": { "latitude": 48.584737, "longitude": 7.740534999999999, "__typename": "Coordinate" }, "is_bookable": true, "reviews_count": 202, "review_snippets": [ { "text": "Tout était parfait, mon amie a pris plaisir à découvrir la cuisine du Caucase.", "__typename": "SearchReviewSnippet", "highlights": [ { "end": 18, "start": 11, "__typename": "SearchReviewSnippetHighlight" }, { "end": 77, "start": 59, "__typename": "SearchReviewSnippetHighlight" } ], "review_snippet_uuid": "90058560-2c7f-4d07-8de4-91a5ab4a0c87" } ], "reviews_summary": "RESTAURANT ET CAFÉ AYGUI offre une belle découverte culinaire avec une cuisine caucasienne savoureuse et généreuse, notamment les délicieux raviolis arméniens et l'excellent baklava. Le cadre est chaleureux et agréable, bien que l'éclairage puisse être amélioré. Le service est accueillant et attentionné, malgré quelques retards. Une adresse recommandée pour explorer des mets authentiques." }, { "id": 10892, "url": "https://www.thefork.fr/restaurant/salamboo-amilkar-r10892", "name": "Salamboo Amilkar", "slug": "salamboo-amilkar", "uuid": "b553d2bc-f24b-4f3d-bc40-e415dfc927cd", "image": "https://cdn.thefork.com/tf-lab/image/upload/restaurant/b553d2bc-f24b-4f3d-bc40-e415dfc927cd/f2041a2c-126f-4e38-9238-36f54d2a9077.jpg", "rating": 9.4, "address": "2, rue de la Croix, 67000, Strasbourg, France", "cuisine": "Tunisien", "currency": "EUR", "avg_price": 31, "timeslots": [], "geolocation": { "latitude": 48.582227484, "longitude": 7.754749775, "__typename": "Coordinate" }, "is_bookable": true, "reviews_count": 1614, "review_snippets": [ { "text": "Endroit magnifique et couscous excellent, service impeccable, toujours avec le sourire, c'est une belle adresse", "__typename": "SearchReviewSnippet", "highlights": [ { "end": 18, "start": 8, "__typename": "SearchReviewSnippetHighlight" }, { "end": 30, "start": 22, "__typename": "SearchReviewSnippetHighlight" } ], "review_snippet_uuid": "b31707a7-ba97-4121-8424-1a223fbe490e" } ], "reviews_summary": "Salamboo Amilkar séduit par son cadre raffiné et son ambiance chaleureuse, idéale pour s'évader le temps d'un repas. Les plats tunisiens, notamment le couscous, sont une explosion de saveurs et généreusement servis. Le personnel, toujours accueillant et souriant, assure un service impeccable. Une adresse à découvrir et à revisiter pour des moments inoubliables." } ], "pagination": { "next": 2, "current": 1, "next_url": "https://www.thefork.fr/search?cityId=529135&date=2026-06-13&hour=660&partySize=8&timezone=Europe%2FParis#list25", "per_page": 25, "total_count": 185, "total_pages": 8, "has_next_page": true }}