openapi: 3.0.2 info: title: Klaviyo Accounts Reviews API version: '2026-04-15' description: The Klaviyo REST API. Please visit https://developers.klaviyo.com for more details. contact: name: Klaviyo Developer Experience Team email: developers@klaviyo.com url: https://developers.klaviyo.com termsOfService: https://www.klaviyo.com/legal/api-terms license: name: License url: https://www.klaviyo.com/legal servers: - url: https://a.klaviyo.com description: Production security: - Klaviyo-API-Key: [] tags: - name: Reviews description: reviews paths: /api/reviews: get: operationId: get_reviews summary: Get Reviews description: 'Get all reviews.

*Rate limits*:
Burst: `10/s`
Steady: `150/m` **Scopes:** `reviews:read`' parameters: - name: fields[event] in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets required: false schema: type: array items: type: string enum: - datetime - event_properties - timestamp - uuid explode: false - name: fields[review] in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets required: false schema: type: array items: type: string enum: - author - content - created - email - images - product - product.external_id - product.image_url - product.name - product.url - public_reply - public_reply.author - public_reply.content - public_reply.updated - rating - review_type - smart_quote - status - status.rejection_reason - status.rejection_reason.reason - status.rejection_reason.status_explanation - status.value - title - updated - verified explode: false - name: filter in: query description: 'For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`created`: `greater-or-equal`, `less-or-equal`
`rating`: `any`, `equals`, `greater-or-equal`, `less-or-equal`
`id`: `any`, `equals`
`item.id`: `any`, `equals`
`content`: `contains`
`status`: `equals`
`review_type`: `equals`
`verified`: `equals`' schema: type: string example: less-or-equal(created,2022-11-08T00:00:00+00:00) - name: include in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#relationships schema: type: array items: type: string enum: - events explode: false - name: page[cursor] in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#pagination required: false schema: type: string - name: page[size] in: query description: 'Default: 20. Min: 1. Max: 100.' required: false schema: type: integer default: 20 maximum: 100 minimum: 1 - name: sort in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sorting schema: type: string enum: - created - -created - rating - -rating - updated - -updated - name: revision in: header description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])' required: true schema: type: string default: '2026-04-15' responses: '200': description: Success content: application/vnd.api+json: schema: $ref: '#/components/schemas/GetReviewResponseDTOCollectionCompoundDocument' 4XX: $ref: '#/components/responses/ClientError' 5XX: $ref: '#/components/responses/ServerError' tags: - Reviews x-klaviyo-pre-release: None x-klaviyo-ratelimit: burst: 10/s steady: 150/m x-klaviyo-scopes: - reviews:read /api/reviews/{id}: get: operationId: get_review summary: Get Review description: 'Get the review with the given ID.

*Rate limits*:
Burst: `10/s`
Steady: `150/m` **Scopes:** `reviews:read`' parameters: - name: id in: path description: The ID of the review required: true schema: description: The ID of the review type: string example: '2134228' - name: fields[event] in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets required: false schema: type: array items: type: string enum: - datetime - event_properties - timestamp - uuid explode: false - name: fields[review] in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets required: false schema: type: array items: type: string enum: - author - content - created - email - images - product - product.external_id - product.image_url - product.name - product.url - public_reply - public_reply.author - public_reply.content - public_reply.updated - rating - review_type - smart_quote - status - status.rejection_reason - status.rejection_reason.reason - status.rejection_reason.status_explanation - status.value - title - updated - verified explode: false - name: include in: query description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#relationships schema: type: array items: type: string enum: - events explode: false - name: revision in: header description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])' required: true schema: type: string default: '2026-04-15' responses: '200': description: Success content: application/vnd.api+json: schema: $ref: '#/components/schemas/GetReviewResponseDTOCompoundDocument' 4XX: $ref: '#/components/responses/ClientError' 5XX: $ref: '#/components/responses/ServerError' tags: - Reviews x-klaviyo-pre-release: None x-klaviyo-ratelimit: burst: 10/s steady: 150/m x-klaviyo-scopes: - reviews:read patch: operationId: update_review summary: Update Review description: 'Update a review.

*Rate limits*:
Burst: `10/s`
Steady: `150/m` **Scopes:** `reviews:write`' parameters: - name: id in: path description: The id of the review (review ID). required: true schema: description: The id of the review (review ID). type: string - name: revision in: header description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])' required: true schema: type: string default: '2026-04-15' requestBody: description: DTO for updating reviews required: true content: application/vnd.api+json: schema: $ref: '#/components/schemas/ReviewPatchQuery' responses: '200': description: Success content: application/vnd.api+json: schema: $ref: '#/components/schemas/PatchReviewResponseDTO' 4XX: $ref: '#/components/responses/ClientError' 5XX: $ref: '#/components/responses/ServerError' tags: - Reviews x-klaviyo-pre-release: None x-klaviyo-ratelimit: burst: 10/s steady: 150/m x-klaviyo-scopes: - reviews:write components: schemas: ReviewPublicReply: type: object properties: content: description: The content of the public reply example: Thanks for the review! type: string author: description: The author of the public reply type: string example: Company X updated: description: The datetime when this public reply was updated type: string format: date-time example: '2022-11-08T00:00:00+00:00' required: - content - author - updated GetReviewResponseDTOCollectionCompoundDocument: type: object properties: data: type: array items: $ref: '#/components/schemas/ReviewResponseDTOObjectResource' links: $ref: '#/components/schemas/CollectionLinks' included: type: array items: $ref: '#/components/schemas/EventResponseObjectResource' required: - data CatalogItemEnum: type: string enum: - catalog-item ReviewPatchQuery: type: object properties: data: $ref: '#/components/schemas/ReviewPatchQueryResourceObject' required: - data EventResponseObjectResource: type: object properties: type: $ref: '#/components/schemas/EventEnum' id: description: The Event ID type: string attributes: type: object properties: timestamp: description: Event timestamp in seconds type: integer nullable: true event_properties: description: Event properties, can include identifiers and extra properties type: object nullable: true datetime: description: Event timestamp in ISO8601 format (YYYY-MM-DDTHH:MM:SS+hh:mm) type: string format: date-time example: '2022-11-08T01:23:45+00:00' nullable: true uuid: description: A unique identifier for the event, this can be used as a cursor in pagination type: string nullable: true relationships: type: object properties: profile: type: object properties: data: type: object properties: type: $ref: '#/components/schemas/ProfileEnum' id: description: Profile ID of the associated profile, if available type: string required: - type - id links: $ref: '#/components/schemas/RelationshipLinks' metric: type: object properties: data: type: object properties: type: $ref: '#/components/schemas/MetricEnum' id: description: The Metric ID type: string required: - type - id links: $ref: '#/components/schemas/RelationshipLinks' attributions: type: object properties: data: type: array items: type: object required: - type - id properties: type: $ref: '#/components/schemas/AttributionEnum' id: description: Attributions for this event type: string links: $ref: '#/components/schemas/RelationshipLinks' links: $ref: '#/components/schemas/ObjectLinks' required: - type - id - attributes - links RejectReasonMisleading: type: object properties: reason: description: rejected due to false or misleading content type: string enum: - false_or_misleading required: - reason ReviewPatchQueryResourceObject: type: object properties: type: $ref: '#/components/schemas/ReviewEnum' id: description: The id of the review (review ID). type: string attributes: type: object properties: status: description: The updated status intended for the review with this ID nullable: true oneOf: - $ref: '#/components/schemas/ReviewStatusRejected' - $ref: '#/components/schemas/ReviewStatusFeatured' - $ref: '#/components/schemas/ReviewStatusPublished' - $ref: '#/components/schemas/ReviewStatusUnpublished' - $ref: '#/components/schemas/ReviewStatusPending' required: - type - id - attributes AttributionEnum: type: string enum: - attribution ProfileEnum: type: string enum: - profile RejectReasonOther: type: object properties: reason: description: reject reason is other type: string enum: - other status_explanation: description: If review reject reason is other, we can provide further explanation type: string example: This review is just really poorly detailed and there is another with the same content nullable: true required: - reason ReviewStatusRejected: type: object properties: value: description: Rejected review status type: string enum: - rejected rejection_reason: description: The updated status intended for the review with this ID oneOf: - $ref: '#/components/schemas/RejectReasonOther' - $ref: '#/components/schemas/RejectReasonFake' - $ref: '#/components/schemas/RejectReasonMisleading' - $ref: '#/components/schemas/RejectReasonPrivateInformation' - $ref: '#/components/schemas/RejectReasonProfanity' - $ref: '#/components/schemas/RejectReasonUnrelated' required: - value - rejection_reason ReviewEnum: type: string enum: - review RejectReasonProfanity: type: object properties: reason: description: rejected due to profanity or inappropriate content type: string enum: - profanity_or_inappropriate required: - reason MetricEnum: type: string enum: - metric EventEnum: type: string enum: - event ReviewStatusPublished: type: object properties: value: description: Published review status type: string enum: - published required: - value PatchReviewResponseDTO: type: object properties: data: type: object properties: type: $ref: '#/components/schemas/ReviewEnum' id: description: The ID of the review type: string example: 925e385b52fb405715f3616c337cc65c attributes: type: object properties: email: description: The email of the author of this review type: string example: john@doe.com nullable: true status: description: The status of this review nullable: true oneOf: - $ref: '#/components/schemas/ReviewStatusRejected' - $ref: '#/components/schemas/ReviewStatusFeatured' - $ref: '#/components/schemas/ReviewStatusPublished' - $ref: '#/components/schemas/ReviewStatusUnpublished' - $ref: '#/components/schemas/ReviewStatusPending' verified: description: The verification status of this review (aka whether or not we have confirmation that the customer bought the product) type: boolean example: true review_type: description: The type of this review — either a review, question, or rating type: string example: review enum: - question - rating - review - store created: description: The datetime when this review was created type: string format: date-time example: '2022-11-08T00:00:00+00:00' updated: description: The datetime when this review was updated type: string format: date-time example: '2022-11-08T00:00:00+00:00' images: description: The list of images submitted with this review (represented as a list of urls). If there are no images, this field will be an empty list. type: array items: type: string example: - https://example.com/image1.jpg - https://example.com/image2.jpg product: description: The product associated with this review $ref: '#/components/schemas/ReviewProductDTO' nullable: true rating: description: The rating of this review on a scale from 1-5. If the review type is "question", this field will be null. type: integer example: 2 nullable: true author: description: The author of this review type: string example: John D nullable: true content: description: The content of this review example: Great product! I love the smell. I will be buying again. nullable: true type: string title: description: The title of this review type: string example: Smells great, would recommend nullable: true smart_quote: description: A quote from this review that summarizes the content type: string example: I love the smell nullable: true public_reply: description: The public reply to this review (if one exists) $ref: '#/components/schemas/ReviewPublicReply' nullable: true required: - verified - review_type - created - updated - images relationships: type: object properties: events: type: object properties: data: type: array items: type: object required: - type - id properties: type: $ref: '#/components/schemas/EventEnum' id: description: Related Events type: string links: $ref: '#/components/schemas/RelationshipLinks' item: type: object properties: data: type: object properties: type: $ref: '#/components/schemas/CatalogItemEnum' id: description: Related Catalog Item type: string required: - type - id links: $ref: '#/components/schemas/RelationshipLinks' links: $ref: '#/components/schemas/ObjectLinks' required: - type - id - attributes - links links: $ref: '#/components/schemas/ObjectLinks' required: - data ReviewStatusPending: type: object properties: value: description: Pending review status type: string enum: - pending required: - value ObjectLinks: type: object properties: self: type: string format: uri required: - self ReviewProductDTO: type: object properties: url: description: The URL of the product type: string example: https://example.com/product/123 name: description: The name of the product type: string image_url: description: The URL of the product image type: string example: https://example.com/image.jpg nullable: true external_id: description: The external ID of the product type: string example: '123456789' nullable: true required: - url - name RejectReasonUnrelated: type: object properties: reason: description: rejected due to unrelated content type: string enum: - unrelated required: - reason CollectionLinks: type: object properties: self: type: string format: uri first: type: string format: uri last: type: string format: uri prev: type: string format: uri next: type: string format: uri required: - self ReviewStatusFeatured: type: object properties: value: description: Featured review status type: string enum: - featured required: - value ReviewStatusUnpublished: type: object properties: value: description: Unpublished review status type: string enum: - unpublished required: - value RejectReasonFake: type: object properties: reason: description: rejected due to fake content type: string enum: - fake required: - reason GetReviewResponseDTOCompoundDocument: type: object properties: data: $ref: '#/components/schemas/ReviewResponseDTOObjectResource' included: type: array items: $ref: '#/components/schemas/EventResponseObjectResource' links: $ref: '#/components/schemas/ObjectLinks' required: - data RejectReasonPrivateInformation: type: object properties: reason: description: rejected due to private information type: string enum: - private_information required: - reason ReviewResponseDTOObjectResource: type: object properties: type: $ref: '#/components/schemas/ReviewEnum' id: description: The ID of the review type: string example: 925e385b52fb405715f3616c337cc65c attributes: type: object properties: email: description: The email of the author of this review type: string example: john@doe.com nullable: true status: description: The status of this review nullable: true oneOf: - $ref: '#/components/schemas/ReviewStatusRejected' - $ref: '#/components/schemas/ReviewStatusFeatured' - $ref: '#/components/schemas/ReviewStatusPublished' - $ref: '#/components/schemas/ReviewStatusUnpublished' - $ref: '#/components/schemas/ReviewStatusPending' verified: description: The verification status of this review (aka whether or not we have confirmation that the customer bought the product) type: boolean example: true review_type: description: The type of this review — either a review, question, or rating type: string example: review enum: - question - rating - review - store created: description: The datetime when this review was created type: string format: date-time example: '2022-11-08T00:00:00+00:00' updated: description: The datetime when this review was updated type: string format: date-time example: '2022-11-08T00:00:00+00:00' images: description: The list of images submitted with this review (represented as a list of urls). If there are no images, this field will be an empty list. type: array items: type: string example: - https://example.com/image1.jpg - https://example.com/image2.jpg product: description: The product associated with this review $ref: '#/components/schemas/ReviewProductDTO' nullable: true rating: description: The rating of this review on a scale from 1-5. If the review type is "question", this field will be null. type: integer example: 2 nullable: true author: description: The author of this review type: string example: John D nullable: true content: description: The content of this review example: Great product! I love the smell. I will be buying again. nullable: true type: string title: description: The title of this review type: string example: Smells great, would recommend nullable: true smart_quote: description: A quote from this review that summarizes the content type: string example: I love the smell nullable: true public_reply: description: The public reply to this review (if one exists) $ref: '#/components/schemas/ReviewPublicReply' nullable: true required: - verified - review_type - created - updated - images relationships: type: object properties: events: type: object properties: data: type: array items: type: object required: - type - id properties: type: $ref: '#/components/schemas/EventEnum' id: description: Related Events type: string links: $ref: '#/components/schemas/RelationshipLinks' item: type: object properties: data: type: object properties: type: $ref: '#/components/schemas/CatalogItemEnum' id: description: Related Catalog Item type: string required: - type - id links: $ref: '#/components/schemas/RelationshipLinks' links: $ref: '#/components/schemas/ObjectLinks' required: - type - id - attributes - links RelationshipLinks: type: object properties: self: type: string format: uri related: type: string format: uri required: - self - related responses: ClientError: description: Client Error content: application/vnd.api+json: schema: type: object properties: errors: type: array items: type: object required: - id - code - title - detail properties: id: type: string code: type: string title: type: string detail: type: string source: type: object properties: pointer: type: string parameter: type: string required: - errors ServerError: description: Server Error content: application/vnd.api+json: schema: type: object properties: errors: type: array items: type: object required: - id - code - title - detail properties: id: type: string code: type: string title: type: string detail: type: string source: type: object properties: pointer: type: string parameter: type: string required: - errors securitySchemes: Klaviyo-API-Key: type: apiKey in: header name: Authorization description: Private key authentication for /api/ endpoints is performed by setting the `Authorization` header to `Klaviyo-API-Key your-private-api-key`
For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#authentication x-default: Klaviyo-API-Key your-private-api-key x-readme: explorer-enabled: false proxy-enabled: true samples-enabled: true