---
title: "Submit registered customer review"
method: POST
path: "/v1/actions/public-review"
tags: ["Moderated Actions"]
---

# Submit registered customer review

`POST /v1/actions/public-review`

## Request

- Base URL: `https://loppee.com`
- URL: `https://loppee.com/v1/actions/public-review`
- Auth: HTTP bearer

Submit a signed-in customer review for a published business or a visible Registry-page business. Registry-page submissions require customer_confirmed=true. Reviewer-quality authority requires Passkey or verified-phone identity verification and is disclosed separately from interaction evidence. Verified reviewer means the registered account completed Passkey or phone verification. It does not prove a transaction or government identity.

## Request body

- PublicReviewRequest
  - `target_business_id` string, required
  - `rating` integer, required
  - `subject` string, required
  - `message` string, required
  - `service_date` union: Optional real, non-future service date in YYYY-MM-DD format; empty means not provided.
    - ''
    - string
  - `attestation_accepted` true, required
  - `customer_confirmed` boolean: Set true to confirm you were a customer of this business. Required when the target business has not claimed its page.

## Response `200`

ReviewResponse

- union
  - object
    - `status` 'review_published' | 'review_updated', required
    - `trust_model_version` 'v3', required
    - `review_id` string, required
    - `account_id` string, required
    - `target_business_id` string, required
    - `target_business_name` string, required
    - `rating` integer, required
    - `visibility` 'public' | 'removed', required
    - `authoring_mode` 'human' | 'customer_agent', required
    - `agent_assisted` boolean, required
    - `moderation_policy` string, required
    - `created_at` string, required
    - `target_source` 'published_profile' | 'registry_record', required
    - `verification_label` 'Unverified', required
    - `ranking_weight` unknown, required
    - `reviewer_verification_label` 'Verified reviewer', required
    - `reviewer_verification_disclosure` 'Verified reviewer means the registered account completed Passkey or phone verification. It does not prove a transaction or government identity.', required
    - `quality_ranking_weight` unknown, required
  - object
    - `status` 'review_published' | 'review_updated', required
    - `trust_model_version` 'v3', required
    - `review_id` string, required
    - `account_id` string, required
    - `target_business_id` string, required
    - `target_business_name` string, required
    - `rating` integer, required
    - `visibility` 'public' | 'removed', required
    - `authoring_mode` 'human' | 'customer_agent', required
    - `agent_assisted` boolean, required
    - `moderation_policy` string, required
    - `created_at` string, required
    - `target_source` 'published_profile' | 'registry_record', required
    - `verification_label` 'Verified interaction', required
    - `ranking_weight` unknown, required
    - `reviewer_verification_label` 'Verified reviewer', required
    - `reviewer_verification_disclosure` 'Verified reviewer means the registered account completed Passkey or phone verification. It does not prove a transaction or government identity.', required
    - `quality_ranking_weight` unknown, required

## Other responses

- `400`: ErrorResponse
- `401`: ErrorResponse
- `403`: ErrorResponse
- `429`: RateLimitError
- `default`: ErrorResponse

---

[API](https://skmtc.dev/loppee/apis/loppee-business-registry-api-for-external-agents.md) · [All operations](https://skmtc.dev/loppee/apis/loppee-business-registry-api-for-external-agents/llms.txt) · [OpenAPI document](https://skmtc.dev/loppee/apis/loppee-business-registry-api-for-external-agents/revisions/37285f7cddcd?raw)
