Yelp Respond to Reviews API

Respond to Reviews API operations documented in the Yelp developer reference: Respond to Review; Get Access Token; Get Businesses Associated with Access Token; Retrieve Business Owner Information.

Operations 2

POST /reviews/v1/{review_id} Respond to Review #
GET /v1/business_owner/me/profile Retrieve Business Owner Information #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/yelp:yelp-respond-to-reviews-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

yelp-respond-to-reviews-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Respond to Reviews API
  version: '1.0'
servers:
- url: https://partner-api.yelp.com/
security:
- {}
tags:
- name: Respond to Reviews
paths:
  /reviews/v1/{review_id}:
    post:
      tags:
      - Respond to Reviews
      summary: Respond to Review
      operationId: create_review_response
      description: Create a new review response.
      parameters:
      - name: review_id
        in: path
        required: true
        description: 22-character unique ID of a review. Review IDs are usually obtained from the Yelp Places API Review endpoints, GraphQL API, or a Yelp Partner Feed.
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                response_text:
                  description: Response text (only UTF-8 characters, no emojis)
                  type: string
                response_type:
                  type: string
                  enum:
                  - public_comment
              required:
              - response_text
              - response_type
      responses:
        '200':
          description: Successfully responded to the given review.
          content:
            application/json:
              schema:
                type: object
                properties: []
              examples:
                Result:
                  value: {}
        '400':
          description: "There are multiple scenarios in which different errors can be returned.\n\n## General Error Responses:\n\n| id                       | description                                                                                             | http_code\n| ------------------------ | ------------------------------------------------------------------------------------------------------- | -----------\n| INVALID_REQUEST          |\tMissing a required parameter or includes an unsupported parameter.                                     | HTTPBadRequest (400)\n| INSUFFICIENT_SCOPE       |\tThe request requires higher privileges than provided by the access token.                              | HTTPBadRequest (400)\n| R2R_COMMENTS_NOT_ALLOWED |\tThis location does not include the respond-to-reviews feature. Contact your Yelp sales exec to enable. | HTTPBadRequest (400)\n\n## Public R2R Error Responses:\n\n| id                             | description\t                                                                                                                                                                | http_code\n| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------\n| R2R_PROBLEM_WITH_USER_PHOTO    | Photo is missing, unacceptable, or pending. (A business owner needs to upload their own photo on biz.yelp.com - a valid photo is required in order to use R2R API.)            | HTTPBadRequest (400)\n| R2R_UNACCEPTABLE_BIZ_USER_NAME | Unacceptable biz user name.\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t| HTTPBadRequest (400)\n| R2R_REVIEW_DOES_NOT_EXIST\t   | Review does not exist.\t \t                  \t                  \t                  \t                  \t                  \t                  \t                            | HTTPBadRequest (400)\n| R2R_INVALID_RESPONSE_TYPE      | Invalid response type.\t\t                  \t                  \t                  \t                  \t              \t                  \t                  \t            | HTTPBadRequest (400)\n| R2R_INVALID_RESPONSE_TEXT      | Invalid response text. (This error happens if the response is empty or exceeds 5K characters or has foul language or is too similar to a comment that's already been posted.)\t| HTTPBadRequest (400)\n| R2R_PUBLIC_COMMENTS_DISABLED   | Invalid response type.\t\t                  \t                  \t                  \t                  \t                  \t            \t                                | HTTPBadRequest (400)\n| R2R_BUSINESS_NOT_CLAIMED       | Cannot determine the status of your business. \t                  \t                  \t                  \t                  \t           \t                                    | HTTPBadRequest (400)\n| R2R_PERMISSION_DENIED          | You do not have permission to comment on that review.\t\t                  \t                  \t                  \t                \t                                    | HTTPBadRequest (400)\n| R2R_COMMENT_QUOTA_EXCEEDED     | You have made too many comments recently. (There is a maximum of 20 comments for each location per biz owner per day).\t\t              \t                                    | HTTPBadRequest (400)\n"
          content:
            application/json:
              $ref: '#/paths/~1token~1v1/post/responses/400/content/application~1json'
              examples:
                Invalid Request:
                  value:
                    id: INVALID_REQUEST
                    description: Missing a required parameter or includes an unsupported parameter.
                    http_code: HTTPBadRequest (400)
                Invalid Response Type:
                  value:
                    id: R2R_INVALID_RESPONSE_TYPE
                    description: Invalid response type.
                    http_code: HTTPBadRequest (400)
        '401':
          type: object
          description: Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.
          x-ae-placeholder: true
  /v1/business_owner/me/profile:
    get:
      tags:
      - Respond to Reviews
      summary: Retrieve Business Owner Information
      operationId: retrieve_business_owner_information
      description: Retrieve information about the business owner associated with the given access token.
      responses:
        '200':
          description: Successfully retrieved business owner information.
          content:
            application/json:
              examples:
                Result:
                  value:
                    first_name: Chris
                    last_name: Sample
                    email: chris.sample@companyname.com
                    position: MANAGER
                    id: ziUn,iIXzXAuv-hUpCOadA
                    photo_url: https://s3-media0.fl.yelpcdn.com/buphoto/tTs_H5N5QtY7umnkv44VXA/ms.jpg
              schema:
                type: object
                properties:
                  first_name:
                    type: string
                  last_name:
                    type: string
                  email:
                    type: string
                  position:
                    type: string
                  id:
                    type: string
                  photo_url:
                    type: string
        '400':
          description: Bad Request.
          content:
            application/json:
              schema:
                type: object
                properties: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'To authenticate API calls with the API Key, set the Authorization HTTP header value as `Bearer API_KEY`.


        Example: `Bearer 23813239889e947efd3e787cc41b0b839f442a85c5bfd30bd4b9a85ec3a54d5cae4d52b37ff52e64deb9c83bd04883812a6cebde04f2f25752f31be0ac74b514`.


        You can create or find your API Key at [yelp.com](https://www.yelp.com/developers/v3/manage_app).

        '
x-readme-fauxas: true
x-provenance:
  method: searched
  source: https://docs.developer.yelp.com/reference
  harvested: '2026-11-05'
  tool: harvest-readme-openapi.py
  note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored.
  assembled_from:
  - https://docs.developer.yelp.com/reference/create_review_response.md
  - https://docs.developer.yelp.com/reference/get-businesses-associated-with-an-access-token.md
  - https://docs.developer.yelp.com/reference/get_businesses_associated_with_access_token.md
  - https://docs.developer.yelp.com/reference/redeem_authorization_code_for_access_token.md
  - https://docs.developer.yelp.com/reference/retrieve_business_owner_information-1.md
  merge:
    pages: 5
    deduped: 5
    conflicts_kept_first: 2