# Yelp Reviews ## Overview | Property | Value | |----------|-------| | **Status** | active | | **Method** | `GET` | | **Endpoint** | `/v2/yelp/reviews` | | **Base URL** | `https://api.piloterr.com` | | **Credit Cost** | 2 credits per call | | **Documentation** | https://www.piloterr.com/library/yelp-reviews | ## Description Fetch paginated Yelp reviews for a business with rating, text, author profile, reactions, and attached photos or videos. ## Authentication - **Key Name:** `x-api-key` - **Location:** HTTP Header - **Get an API key:** https://app.piloterr.com/register ## Example Request ```bash curl --location --request GET 'https://api.piloterr.com/v2/yelp/reviews' \ --header 'Content-Type: application/json' \ --header 'x-api-key: YOUR_API_KEY' ``` ## Example Response ### Reviews for Novela (page 1) ```json { "url": "https://www.yelp.com/biz_photos/cX5dOMkwZ5rqWbeIJpw_Ig", "results": [ { "text": { "full": "Superb cocktails and friendly service \nDecor are modern and sleek \nCrabcakes and Turkish chicken legs are delicious", "language": "en" }, "encid": "ftgDNwNVnb3xwx8XRP9n9Q", "author": { "encid": "fFv3wzMIZDgIruoiVOFEGQ", "display_name": "Yim C.", "friend_count": 1, "review_count": 6, "display_location": "San Francisco, CA", "business_photo_count": 0 }, "rating": 5, "business": { "name": "Novela", "alias": "novela-san-francisco-2", "encid": "cX5dOMkwZ5rqWbeIJpw_Ig" }, "feedback": { "cool_count": null, "funny_count": null, "useful_count": null }, "created_at": null, "business_photos": [], "business_videos": [], "available_reactions": [ { "count": 0, "display_text": "Helpful", "reaction_type": "HELPFUL" }, { "count": 0, "display_text": "Thanks", "reaction_type": "THANKS" }, { "count": 1, "display_text": "Love this", "reaction_type": "LOVE_THIS" }, { "count": 0, "display_text": "Oh no", "reaction_type": "OH_NO" } ] }, { "text": { "full": "The vibe is amazing. We walked in without a reservation and were seated right away even though they were busy. The host was great and services were amazing.\n\nI ordered the chicken and rice and was okay. The rice tasted undercooked and the chicken could have used more seasoning to really bring out its flavor.", "language": "en" }, "encid": "iZUQegcOX-GIKLacrlBJ2g", "author": { "encid": "P0RUkwZySXJMHmH-njJVkw", "display_name": "Karla C.", "friend_count": 1, "review_count": 9, "display_location": "Alum Rock, San Jose, CA", "business_photo_count": 4 }, "rating": 4, "business": { "name": "Novela", "alias": "novela-san-francisco-2", "encid": "cX5dOMkwZ5rqWbeIJpw_Ig" }, "feedback": { "cool_count": null, "funny_count": null, "useful_count": null }, "created_at": null, "business_photos": [ { "encid": "OkoVt1WskgotDf6A2NM_gQ", "caption": null, "photo_url": "https://s3-media0.fl.yelpcdn.com/bphoto/OkoVt1WskgotDf6A2NM_gQ/348s.jpg", "helpful_count": null } ], "business_videos": [ { "encid": "txtNP6zT6_BnGSdUnlOBzQ", "caption": null, "video_url": "https://stream.mux.com/3F01tjxp00gNsdqVNhaet8gktQvcHRv2ftAUPaH600NuEY/high.mp4", "__typename": "BusinessVideo", "time_created": { "__typename": "DateTime", "utc_date_time": "2026-04-12T22:07:02Z" }, "thumbnail_url": "https://image.mux.com/3F01tjxp00gNsdqVNhaet8gktQvcHRv2ftAUPaH600NuEY/thumbnail.jpg?height=720&time=0", "uploading_user": { "encid": "P0RUkwZySXJMHmH-njJVkw", "__typename": "User", "display_name": "Karla C.", "profile_photo": { "encid": "tFsfT564Fo5sv7F-FFowPQ", "photo_url": { "url1x": "https://s3-media0.fl.yelpcdn.com/photo/tFsfT564Fo5sv7F-FFowPQ/xss.jpg", "url2x": "https://s3-media0.fl.yelpcdn.com/photo/tFsfT564Fo5sv7F-FFowPQ/ss.jpg", "__typename": "UserPhotoUrl" }, "__typename": "UserProfilePhoto" }, "is_logged_in_user": null }, "video_business": { "name": "Novela", "alias": "novela-san-francisco-2", "encid": "cX5dOMkwZ5rqWbeIJpw_Ig", "location": { "encid": "cX5dOMkwZ5rqWbeIJpw_Ig", "address": { "city": "San Francisco", "__typename": "BusinessAddress", "region_code": "CA" }, "__typename": "BusinessLocation" }, "__typename": "Business", "categories": [ { "encid": "FIW3O50FJ6hyqdvrHxTa0g", "title": "Cocktail Bars", "__typename": "BusinessCategory" }, { "encid": "1F6C8Q_3pre02ukRakGs3Q", "title": "Lounges", "__typename": "BusinessCategory" }, { "encid": "9vS4P2Z_kJiWpTLB0O6cYw", "title": "Venues & Event Spaces", "__typename": "BusinessCategory" } ], "primary_photo": { "encid": "J8uN_Ux35IHZ0S2q5_2buQ", "photo_url": { "url1x": "https://s3-media0.fl.yelpcdn.com/bphoto/J8uN_Ux35IHZ0S2q5_2buQ/xs.jpg", "url2x": "https://s3-media0.fl.yelpcdn.com/bphoto/J8uN_Ux35IHZ0S2q5_2buQ/s.jpg", "__typename": "BusinessPhotoUrl" }, "__typename": "BusinessPhoto" } }, "video_publication": { "__typename": "VideoPublication", "rendition_set": [ { "src": "https://stream.mux.com/3F01tjxp00gNsdqVNhaet8gktQvcHRv2ftAUPaH600NuEY/high.mp4", "duration": 6000, "__typename": "VideoRendition", "rendition_id": "progressive_video_high" }, { "src": "https://stream.mux.com/3F01tjxp00gNsdqVNhaet8gktQvcHRv2ftAUPaH600NuEY/medium.mp4", "duration": 6000, "__typename": "VideoRendition", "rendition_id": "progressive_video_medium" }, { "src": "https://stream.mux.com/3F01tjxp00gNsdqVNhaet8gktQvcHRv2ftAUPaH600NuEY/low.mp4", "duration": 6000, "__typename": "VideoRendition", "rendition_id": "progressive_video_low" }, { "src": "https://image.mux.com/3F01tjxp00gNsdqVNhaet8gktQvcHRv2ftAUPaH600NuEY/thumbnail.jpg?height=1080&time=0", "duration": null, "__typename": "VideoRendition", "rendition_id": "poster_high" }, { "src": "https://image.mux.com/3F01tjxp00gNsdqVNhaet8gktQvcHRv2ftAUPaH600NuEY/thumbnail.jpg?height=720&time=0", "duration": null, "__typename": "VideoRendition", "rendition_id": "poster_medium" }, { "src": "https://image.mux.com/3F01tjxp00gNsdqVNhaet8gktQvcHRv2ftAUPaH600NuEY/thumbnail.jpg?height=480&time=0", "duration": null, "__typename": "VideoRendition", "rendition_id": "poster_low" }, { "src": "https://image.mux.com/3F01tjxp00gNsdqVNhaet8gktQvcHRv2ftAUPaH600NuEY/thumbnail.jpg?fit_mode=crop&width=720&height=720", "duration": null, "__typename": "VideoRendition", "rendition_id": "square_thumbnail_720" }, { "src": "https://image.mux.com/3F01tjxp00gNsdqVNhaet8gktQvcHRv2ftAUPaH600NuEY/thumbnail.jpg?fit_mode=crop&width=480&height=480", "duration": null, "__typename": "VideoRendition", "rendition_id": "square_thumbnail_480" } ], "publication_id": "532b1916-23c9-5469-b16c-d929939797fb" }, "available_reactions_container": { "__typename": "AvailableContentReactionsContainer", "container_format": { "axis": "HORIZONTAL", "alignment": "LEADING", "__typename": "ContentReactionsContainerFormat" }, "available_reactions": [ { "count": 0, "__typename": "AvailableContentReaction", "show_count": true, "asset_format": { "__typename": "ContentReactionAssetFormat", "text_layout": "OUTSIDE_BUTTON_RIGHT", "corner_radius": "CIRCULAR", "disabled_format": { "__typename": "ContentReactionStateAssetFormat", "text_color": "coreGrayscaleBlackLight", "border_color": "coreGrayscaleGrayRegular", "ripple_color": "coreGrayscaleGrayLightWithAlpha10", "asset_locator": { "__typename": "ContentReactionBundledAssetLocator", "asset_name": "24x24_like_v2" }, "background_color": "coreGrayscaleWhite" }, "selected_format": { "__typename": "ContentReactionStateAssetFormat", "text_color": "coreGrayscaleBlackRegular", "border_color": "coreGrayscaleWhite", "ripple_color": "coreGrayscaleGrayLightWithAlpha50", "asset_locator": { "__typename": "ContentReactionBundledAssetLocator", "asset_name": "24x24_like_filled_v2" }, "background_color": "coreGrayscaleWhite" }, "collapsed_format": { "__typename": "ContentReactionStateAssetFormat", "text_color": "coreGrayscaleBlackRegular", "border_color": "coreGrayscaleWhite", "ripple_color": "coreGrayscaleGrayLightWithAlpha50", "asset_locator": { "__typename": "ContentReactionBundledAssetLocator", "asset_name": "16x16_like_filled_v2" }, "background_color": "coreGrayscaleWhite" }, "unselected_format": { "__typename": "ContentReactionStateAssetFormat", "text_color": "coreGrayscaleBlackLight", "border_color": "coreGrayscaleWhite", "ripple_color": "coreGrayscaleGrayLightWithAlpha50", "asset_locator": { "__typename": "ContentReactionBundledAssetLocator", "asset_name": "24x24_like_v2" }, "background_color": "coreGrayscaleWhite" }, "asset_content_type": "IMAGE" }, "display_text": "likes", "toggle_state": "UNSELECTED", "reaction_type": "BIZ_VIDEO_LIKE", "show_as_tooltip": false, "show_zero_count": false, "invert_text_order": true, "display_text_single_count": "like" } ], "is_mutually_exclusive": false } } ], "available_reactions": [ { "count": 1, "display_text": "Helpful", "reaction_type": "HELPFUL" }, { "count": 1, "display_text": "Thanks", "reaction_type": "THANKS" }, { "count": 1, "display_text": "Love this", "reaction_type": "LOVE_THIS" }, { "count": 0, "display_text": "Oh no", "reaction_type": "OH_NO" } ] } ], "pagination": { "next": 2, "current": 1, "other_pages": [], "total_pages": 155, "has_next_page": true, "total_results": 1545 }, "business_id": "cX5dOMkwZ5rqWbeIJpw_Ig" } ``` ## Documentation ## Overview Fetch paginated Yelp customer reviews for a business, including review text, star rating, author profile, reactions, and attached photos or videos. Pass the Yelp business ID (`biz_id` / encid). Each page returns up to 10 reviews. Browser rendering handles Cloudflare and returns structured JSON. ## Quickstart ``` GET https://api.piloterr.com/v2/yelp/reviews?query=cX5dOMkwZ5rqWbeIJpw_Ig ``` ``` GET https://api.piloterr.com/v2/yelp/reviews?query=cX5dOMkwZ5rqWbeIJpw_Ig&page=2 ``` ## Parameters | Parameter | Type | Required | Description | |---|---|---|---| | `query` | string | yes | Yelp business ID / encid (e.g. `cX5dOMkwZ5rqWbeIJpw_Ig`) | | `page` | integer | no | Page number, 10 reviews per page (default: `1`) | ## Response fields | Field | Type | Description | |---|---|---| | `business_id` | string | Yelp business encid | | `url` | string | Source Yelp URL | | `results` | array | Review objects | | `results[].encid` | string | Review encid | | `results[].rating` | integer | Star rating (1-5) | | `results[].text.full` | string | Full review text | | `results[].text.language` | string | Review language code | | `results[].author.display_name` | string | Reviewer display name | | `results[].author.encid` | string | Reviewer encid | | `results[].author.friend_count` | integer | Reviewer friend count | | `results[].author.review_count` | integer | Reviewer total reviews | | `results[].author.display_location` | string \| null | Reviewer location | | `results[].author.business_photo_count` | integer | Reviewer photo count on businesses | | `results[].business.name` | string | Business name | | `results[].business.alias` | string | Business slug | | `results[].business.encid` | string | Business encid | | `results[].feedback` | object | Legacy reaction counts (`useful_count`, etc.) | | `results[].created_at` | string \| null | Review timestamp when available | | `results[].business_photos` | array | Photos attached to the review | | `results[].business_videos` | array | Videos attached to the review | | `results[].available_reactions` | array | Reaction types with counts | | `pagination.current` | integer | Current page | | `pagination.next` | integer \| null | Next page number | | `pagination.total_pages` | integer | Total review pages | | `pagination.total_results` | integer | Total reviews when available | | `pagination.has_next_page` | boolean | Whether another page exists | ## Notes - Use `biz_id` from **Yelp Search** or `business_id` from **Yelp Business** as `query`. - Each page contains up to 10 reviews. - `created_at` and feedback counts may be `null` on some reviews. - Photo and video attachments vary per review; arrays may be empty. ## Main use cases - Monitor brand sentiment and review volume over time - Train NLP models on local business feedback - Detect reputation issues with paginated review ingestion - Extract user-generated photos and videos from reviews