Skip to main content
POST
Create and update a review from a custom partner

Authorizations

x-APIKey
string
header
required

The authentication system on Partoo API is using API Key that should be put in the header of the request (the name of the header is x-APIKey). An api_key is linked to a user. This user's role will give you different access level to the API features.

Body

application/json

The review to create or update

partner_slug
string
required

Slug of the custom partner the review comes from.

It must be a partner enabled on your organization, returned with is_custom: true by List review partners.

Required string length: 1 - 100
Example:

"custom_partner"

external_id
string
required

The review's unique id on the source platform. This is the key of the upsert: re-sending the same external_id for the same partner_slug updates the review instead of creating a new one.

It is returned as key and partner_id on the review. An external_id already used by a review of another partner is rejected with a 409.

Required string length: 1 - 255
Example:

"ue-review-8f21c0"

business_id
string
required

Business id

Example:

"5409c35a97bbc544d8e26737"

rating
integer
required

Star rating given by the author.

Required range: 1 <= x <= 5
Example:

4

author
object
required

Author of the review, as displayed on the source platform.

date
string<date-time>
required

When the review was posted on the source platform.

The offset is required (for example +02:00 or Z); Partoo stores the date in UTC and renders it in the business timezone.

Two reviews of the same business cannot share the same date and author.display_name: such a push answers 409.

Example:

"2026-09-15T18:32:11+02:00"

content
string | null

Body of the review. Omit it for a rating-only review.

Maximum string length: 4096
Example:

"Fast delivery, meal was still hot. Thanks !"

update_date
string<date-time>

Last update of the review on the source platform. Defaults to date, and cannot be earlier than it.

Example:

"2026-09-16T09:04:55+02:00"

Public URL of the review on the source platform.

Example:

"https://www.custom_partner.com/reviews/8f21c0"

reply
object | null

The reply already published on the source platform, if any. It is created with the review, and updated on a later push carrying a different content or date.

Replies written from Partoo are handled by Post a reply to a review instead.

Response

The review that was created or updated

Business Review on partner

key
string

Identifier of the review on the partner platform. For a review pushed through a custom partner, this is the external_id you sent.

org_id
integer

Unique identifier of an organization in Partoo.

Example:

42

id
integer

Review id

Example:

34

business_id
string

Business id

Example:

"5409c35a97bbc544d8e26737"

partner
string

Review partner slug

Example:

"google_my_business"

partner_id
string

Review id on publisher

Example:

"accounts/114063712393225091258/locations/74805271119400652054"

author_name
string

The author name of the review.

Note: Replies don't have an author.

Example:

"Castorche"

date
string<datetime>

Review creation date

Example:

"2017-07-01T16:10:23.156000+02:00"

update_date
string<datetime>

Review update date

Example:

"2017-08-01T19:15:54.256000+02:00"

delete_date
string<datetime>

Review deletion date (only specified if the review has been deleted)

rating
integer

Review rating (can be null)

Required range: 0 <= x <= 5
Example:

3

Review recommended (can be null)

title
string

Review title

content
string

Review body content

Example:

"Magasin un peu vieillot , mais personnel très sympathique, nombreuses références en rayons , un très bon choix côté vin..."

state
enum<string>

Reply state

Available options:
treated,
not_treated,
deleted

Link to review on publisher platform

comments
object[]

Replies to the review

tags
object[]

Tags associated to the review

Array of Google photo URLs associated with the review.

Populated when with_media_links=true query parameter is used. Empty array if no associated media found or if with_media_links=false.

Example: