---
title: "Reply or schedule a reply to a review"
method: POST
path: "/v1/reviews/reply"
tags: ["reviews_endpoints"]
---

# Reply or schedule a reply to a review

`POST /v1/reviews/reply`

## Request

- Base URL: `https://partners.tryotter.com`
- URL: `https://partners.tryotter.com/v1/reviews/reply`
- Auth: OAuth 2
  - Authorization code: `/v1/auth/oauth2/authorize`
  - Client credentials
  - Token URL: `/v1/auth/token` scopes: `reviews.reply`
- TypeScript: <https://skmtc.dev/cloudkitchens/apis/otter-api/docs/v1/reviews/reply/post.ts> (a function with typed inputs; its response is checked against the schema)

## Request body

- ReviewReplyRequest: The request to reply to a review.
  - `reviewId` string: The review ID.
  - `externalStoreId` string: External store ID of the review you are responding to. Fails the requests if invalid external store ID is passed.
  - `serviceSlug` string: The slug of the service for the review.
  - `replyText` string: The reply text. Limits vary by serviceSlug and are measured in UTF-8 bytes.
  - `scheduledAt` integer, nullable: Unix timestamp in seconds for requested scheduled execution. A successful response confirms scheduling only; execution may occur later.

## Response `200`

The immediate reply was posted, or the scheduled reply task was created. A scheduled response does not confirm later provider execution.

- ReviewReplyResponse: The response to reply to a review.
  - `replyId` string, nullable: Opaque reply identifier returned by the target service for an immediate reply. Scheduled responses do not include an eventual reply ID.

## Other responses

- `400`: The request is malformed.
- `401`: Invalid authorization.
- `403`: Authorization not valid for the requested resource.
- `404`: Resource not found.

---

[API](https://skmtc.dev/cloudkitchens/apis/otter-api.md) - [All operations](https://skmtc.dev/cloudkitchens/apis/otter-api/llms.txt) - [OpenAPI document](https://skmtc.dev/cloudkitchens/apis/otter-api/revisions/4c868194a467?raw)
