Base URL: https://app.upratehq.com/api/v1

Authenticate

Create a key in Settings > API Keys and copy it right away. Uprate does not show it again. Keep it on your server.

Send it as Authorization: Bearer <API_KEY>. Requests run with your account's permissions and plan.

Reviews, topics and analytics belong to one app. Send its UUID as Uprate-App-Id: <APP_UUID>, or as the app_id query parameter. The header wins when you send both. GET /apps lists the UUIDs.

Each key can make 300 requests per minute. Above that you get HTTP 429 with a Retry-After header.

Responses and errors

Results are under data. Review and topic lists are paginated with links and meta. Use page and per_page: 25 per page by default, 100 at most.

Errors are JSON with a message. Validation errors add field-level errors, and some failed actions add an error code with details. A missing key returns 401, a missing app UUID 422, and an app you cannot access 403.

Replies publish by default

POST /reviews/{review}/reply posts the reply to the store unless you send draft: true. If the store result is unknown, Uprate blocks another publish until the next review sync confirms what happened. Do not retry blindly.

Endpoints

Paths are relative to the base URL. App, review, topic and rule IDs are UUIDs.

Without an app UUID:

  • GET /apps: apps you can access
  • GET /apps/{app}: one app
  • GET /apps/{app}/soul: the app's reply voice instructions
  • PUT /apps/{app}/soul: replace the reply voice instructions
  • GET /automation-rules: your automation rules
  • POST /automation-rules: create a rule
  • DELETE /automation-rules/{rule}: delete a rule
  • PATCH /automation-rules/{rule}/toggle: turn a rule on or off

With an app UUID:

  • GET /reviews: list and filter reviews
  • GET /reviews/{review}: one review with its reply
  • POST /reviews/{review}/reply: publish a reply or save a draft
  • PATCH /reviews/{review}/resolve: mark a review resolved
  • PATCH /reviews/{review}/unresolve: reopen it
  • GET /topics: review topics
  • GET /topics/{topic}/reviews: reviews that mention a topic
  • GET /analytics/summary: review totals
  • GET /analytics/platforms: totals per store
  • GET /analytics/response-times: response time trends and the age of unanswered reviews
  • GET /analytics/territories: totals per country

Example

curl 'https://app.upratehq.com/api/v1/reviews?per_page=10' \
  -H "Authorization: Bearer $UPRATE_API_KEY" \
  -H "Uprate-App-Id: $UPRATE_APP_UUID"

For in-app feedback and AI agents, see SDK and MCP.