# Get review request

> Returns one review invitation and its recorded completion state.

Breadcrumb: API › Get review request
Docs index: https://docs.cevoid.com/developers/llms.txt

`GET https://api.cevoid.com/v2/review-requests/{request_id}`

Returns one review invitation and its recorded completion state.

## Authorizations

Bearer token in the Authorization header: `Authorization: Bearer <key>` (API key).

## Path parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `request_id` | `string` | Yes | Opaque Cevoid identifier. Length: `1 to 200`. Example: `rev_abc123`. |

## Query parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `market` | `string` | No | Presentation market. Defaults to the workspace default; does not filter collection origin. Length: `1 to 200`. Example: `mar_abc123`. |
| `include` | `string` | No | Comma-separated includes: products, reviews. Products requires products:read. Reviews includes related product and company reviews and requires reviews:read. Questions and localization are not supported. Maximum length: `100`. Example: `products,reviews`. |

## Response

### 200: Successful response

`application/json`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | `object` | Yes |  |
| `data.id` | `string` | Yes | Opaque Cevoid identifier. Length: `1 to 200`. Example: `rev_abc123`. |
| `data.kind` | `enum<string>` | Yes | Allowed values: `PRODUCT`, `COMPANY`. Example: `PRODUCT`. |
| `data.state` | `enum<string>` | Yes | Allowed values: `SCHEDULED`, `ACTIVE`, `EXPIRED`, `CANCELLED`. Example: `SCHEDULED`. |
| `data.profile_id` | `string \| null` | Yes | Opaque Cevoid identifier. Length: `1 to 200`. Example: `prf_abc123`. |
| `data.order_id` | `string \| null` | Yes | Opaque Cevoid identifier. Length: `1 to 200`. Example: `ord_abc123`. |
| `data.market_id` | `string \| null` | Yes | Opaque Cevoid identifier. Length: `1 to 200`. Example: `mar_abc123`. |
| `data.language` | `string` | Yes | Example: `en`. |
| `data.items` | `object[]` | Yes |  |
| `data.items[].product_id` | `string \| null` | Yes | Opaque Cevoid identifier. Length: `1 to 200`. Example: `prd_abc123`. |
| `data.items[].variant_id` | `string \| null` | Yes | Opaque Cevoid identifier. Length: `1 to 200`. Example: `var_abc123`. |
| `data.items[].external_line_id` | `string` | No | Example: `line_1`. |
| `data.items[].review_id` | `string` | No | Opaque Cevoid identifier. Length: `1 to 200`. Example: `rev_abc123`. |
| `data.items[].completed_at` | `string<date-time>` | No | Example: `2026-09-01T10:00:00.000Z`. |
| `data.company_review_id` | `string` | No | Opaque Cevoid identifier. Length: `1 to 200`. Example: `crv_abc123`. |
| `data.company_completed_at` | `string<date-time>` | No | Example: `2026-09-01T10:00:00.000Z`. |
| `data.invited_at` | `string<date-time>` | No | Example: `2026-09-01T10:00:00.000Z`. |
| `data.expires_at` | `string<date-time>` | No | Example: `2026-09-01T10:00:00.000Z`. |
| `data.responded_at` | `string<date-time>` | No | Example: `2026-09-01T10:00:00.000Z`. |
| `data.created_at` | `string<date-time>` | Yes | Example: `2026-09-01T10:00:00.000Z`. |
| `data.updated_at` | `string<date-time>` | Yes | Example: `2026-09-01T10:00:00.000Z`. |
| `included` | `object` | No |  |
| `included.products` | `object[]` | No |  |
| `included.products[].market_id` | `string` | Yes | Cevoid market ID for this product presentation. Example: `mar_sweden`. |
| `included.products[].external_id` | `string` | No | Product identifier from the connected commerce platform. Example: `shopify_product_123`. |
| `included.products[].title` | `string` | No | Market-specific product title. Example: `Merino crew neck`. |
| `included.products[].variant_title` | `string` | No | Market-specific variant option label. Example: `Navy / M`. |
| `included.products[].sku` | `string` | No | Market-specific stock keeping unit. Example: `MERINO-NAVY-M`. |
| `included.products[].url` | `string<uri>` | No | Storefront URL for the selected market presentation. Example: `https://shop.example/products/merino-crew`. |
| `included.products[].image_url` | `string<uri>` | No | Primary image for the selected market presentation. Example: `https://cdn.cevoid.com/products/merino-crew/0.jpg`. |
| `included.products[].availability` | `enum<string>` | No | Availability for the selected market presentation. Allowed values: `IN_STOCK`, `OUT_OF_STOCK`. Example: `IN_STOCK`. |
| `included.products[].id` | `string` | Yes | Cevoid product or variant ID. Example: `prd_abc123def456gh`. |
| `included.products[].type` | `enum<string>` | Yes | Product family. Allowed value: `PRODUCT`. Example: `PRODUCT`. |
| `included.products[].price` | `object` | No | Market-specific Product price range. |
| `included.products[].price.currency` | `string` | Yes | ISO 4217 currency code. Example: `SEK`. |
| `included.products[].price.min_amount` | `number` | Yes | Lowest Variant price. Range: `0 <= x`. Example: `799`. |
| `included.products[].price.max_amount` | `number` | Yes | Highest Variant price. Range: `0 <= x`. Example: `999`. |
| `included.products[].market_id` | `string` | Yes | Cevoid market ID for this product presentation. Example: `mar_sweden`. |
| `included.products[].external_id` | `string` | No | Product identifier from the connected commerce platform. Example: `shopify_product_123`. |
| `included.products[].title` | `string` | No | Market-specific product title. Example: `Merino crew neck`. |
| `included.products[].variant_title` | `string` | No | Market-specific variant option label. Example: `Navy / M`. |
| `included.products[].sku` | `string` | No | Market-specific stock keeping unit. Example: `MERINO-NAVY-M`. |
| `included.products[].url` | `string<uri>` | No | Storefront URL for the selected market presentation. Example: `https://shop.example/products/merino-crew`. |
| `included.products[].image_url` | `string<uri>` | No | Primary image for the selected market presentation. Example: `https://cdn.cevoid.com/products/merino-crew/0.jpg`. |
| `included.products[].availability` | `enum<string>` | No | Availability for the selected market presentation. Allowed values: `IN_STOCK`, `OUT_OF_STOCK`. Example: `IN_STOCK`. |
| `included.products[].id` | `string` | Yes | Cevoid product or variant ID. Example: `prd_abc123def456gh`. |
| `included.products[].type` | `enum<string>` | Yes | Purchasable Product variant. Allowed value: `VARIANT`. Example: `VARIANT`. |
| `included.products[].parent_product_id` | `string` | Yes | Cevoid product ID. Present when type is VARIANT. Example: `prd_abc123def456gh`. |
| `included.products[].price` | `object` | No | Market-specific Variant price. |
| `included.products[].price.currency` | `string` | Yes | ISO 4217 currency code. Example: `SEK`. |
| `included.products[].price.amount` | `number` | Yes | Current Variant price. Range: `0 <= x`. Example: `899`. |
| `included.products[].price.sale_amount` | `number` | No | Sale price when active. Range: `0 <= x`. Example: `799`. |
| `included.product_reviews` | `object[]` | No |  |
| `included.product_reviews[].id` | `string` | Yes | Cevoid public product review identifier. Example: `rev_abc123`. |
| `included.product_reviews[].rating` | `integer` | Yes | Score from 1 to 5. Range: `1 <= x <= 5`. Example: `5`. |
| `included.product_reviews[].title` | `string` | No | Reviewer-supplied headline. In localized responses, title and body both use source text unless a complete translation is available. Example: `Comfortable everyday fit`. |
| `included.product_reviews[].body` | `string` | No | Reviewer-supplied text. Absent for star-only reviews. In localized responses, title and body both use source text unless a complete translation is available. Example: `Comfortable and true to size.`. |
| `included.product_reviews[].language` | `string` | Yes | BCP-47 language of the original submission, even when the returned text is translated. Example: `en`. |
| `included.product_reviews[].status` | `enum<string>` | Yes | Moderation and conversion state. Allowed values: `PENDING`, `PUBLISHED`, `REJECTED`, `CONVERTED`. Example: `PUBLISHED`. |
| `included.product_reviews[].rejection_reasons` | `enum<string>[]` | Yes | Policy reasons recorded when moderation rejected the review. Empty unless status is REJECTED; a single take-down can carry several. Allowed values: `SPAM`, `FAKE`, `DUPLICATE`, `OFF_TOPIC`, `PROFANE`, `ILLEGAL`, `PII`. |
| `included.product_reviews[].identity_verification` | `enum<string>` | Yes | Author verification state. Public display requires CONFIRMED. Allowed values: `PENDING`, `CONFIRMED`, `EXPIRED`. Example: `CONFIRMED`. |
| `included.product_reviews[].purchase_verification` | `enum<string>` | Yes | Purchase evidence state behind verified-buyer display. Allowed values: `VERIFIED`, `UNVERIFIED`. Example: `UNVERIFIED`. |
| `included.product_reviews[].is_incentivized` | `boolean` | Yes | Whether a reward influenced submission. Example: `false`. |
| `included.product_reviews[].is_insider` | `boolean` | Yes | Whether the reviewer is brand-connected. Example: `false`. |
| `included.product_reviews[].channel` | `enum<string>` | Yes | How the review entered Cevoid. Allowed values: `REQUEST`, `WIDGET`, `LINK`, `IMPORT`, `SYNDICATED_IN`. Example: `IMPORT`. |
| `included.product_reviews[].source` | `object` | No | External provenance. Present for imported or syndicated reviews. |
| `included.product_reviews[].source.platform` | `string` | Yes | Source-system slug, such as okendo or yotpo. Example: `yotpo`. |
| `included.product_reviews[].source.external_id` | `string` | No | Review identifier in the source system. Example: `review_123`. |
| `included.product_reviews[].source.url` | `string` | No | Link to the review in its source system. Example: `https://example.com/reviews/123`. |
| `included.product_reviews[].profile_id` | `string \| null` | Yes | Reviewer reference; null when the profile no longer resolves. Length: `1 to 200`. Example: `prf_abc123`. |
| `included.product_reviews[].market_id` | `string` | No | Cevoid public market identifier. Example: `mar_abc123`. |
| `included.product_reviews[].order_id` | `string` | No | Cevoid public identifier of the matched order. Example: `ord_abc123`. |
| `included.product_reviews[].reward_id` | `string` | No | Granted reward, when the review was incentivized. Example: `rwd_abc123`. |
| `included.product_reviews[].converted_from_id` | `string` | No | Review this one was converted from. Example: `rev_original`. |
| `included.product_reviews[].converted_to_id` | `string` | No | Replacement review created by conversion. Example: `crv_replacement`. |
| `included.product_reviews[].media` | `object[]` | Yes |  |
| `included.product_reviews[].media[].type` | `enum<string>` | Yes | Whether the item is an image or a video. Allowed values: `IMAGE`, `VIDEO`. Example: `IMAGE`. |
| `included.product_reviews[].media[].url` | `string` | Yes | Delivery URL for the full asset. Example: `https://example.com/reviews/123`. |
| `included.product_reviews[].media[].thumbnail_url` | `string` | Yes | Delivery URL for the thumbnail. Example: `https://example.com/reviews/123`. |
| `included.product_reviews[].media[].aspect_ratio` | `number` | Yes | Width divided by height. Example: `1.5`. |
| `included.product_reviews[].media[].aspect_ratio_type` | `enum<string>` | Yes | Coarse orientation bucket. Allowed values: `LANDSCAPE`, `PORTRAIT`, `SQUARE`. Example: `LANDSCAPE`. |
| `included.product_reviews[].media[].video_length` | `number` | No | Video duration in seconds. Example: `12`. |
| `included.product_reviews[].media[].moderation_status` | `enum<string>` | No | Moderation state for this asset, independent from the review itself. Allowed values: `PENDING`, `APPROVED`, `DECLINED`. Example: `APPROVED`. |
| `included.product_reviews[].media[].id` | `string` | Yes | Stable opaque asset identity shared by detail and preview. Example: `rmed_abc123`. |
| `included.product_reviews[].media[].alt` | `string` | No | Available image alternative text, localized with source fallback. Example: `Blue shirt worn outdoors`. |
| `included.product_reviews[].media[].thumbnail_alt` | `string` | No | Available video poster alternative text. Example: `Blue shirt video preview`. |
| `included.product_reviews[].media[].video_description` | `string` | No | Available description of video imagery. Example: `A shopper shows the fit of a blue shirt.`. |
| `included.product_reviews[].media[].video_captions` | `string` | No | Available WebVTT captions with cue timing, localized with source fallback. Example: `WEBVTT

00:00.000 --> 00:01.000
The fit is comfortable.`. |
| `included.product_reviews[].responses` | `object[]` | Yes |  |
| `included.product_reviews[].responses[].body` | `string` | Yes | Reply text as published. Example: `Comfortable and true to size.`. |
| `included.product_reviews[].responses[].author_type` | `enum<string>` | Yes | Whether the workspace or a named team member authored the reply. Allowed values: `WORKSPACE`, `TEAM_MEMBER`. Example: `WORKSPACE`. |
| `included.product_reviews[].responses[].created_at` | `string<date-time>` | Yes | ISO 8601 timestamp when the reply was created. Example: `2026-09-01T10:00:00.000Z`. |
| `included.product_reviews[].responses[].updated_at` | `string<date-time>` | No | ISO 8601 timestamp when the reply was last edited. Example: `2026-09-01T10:00:00.000Z`. |
| `included.product_reviews[].responses[].id` | `string` | Yes | Opaque Cevoid identifier. Length: `1 to 200`. Example: `rev_abc123`. |
| `included.product_reviews[].helpful_up_count` | `number` | Yes | Positive helpful votes from shoppers. Example: `3`. |
| `included.product_reviews[].helpful_down_count` | `number` | Yes | Negative helpful votes, when down-voting is enabled. Example: `0`. |
| `included.product_reviews[].submitted_at` | `string<date-time>` | No | ISO 8601 timestamp when submission completed. Example: `2026-09-01T10:00:00.000Z`. |
| `included.product_reviews[].approved_at` | `string<date-time>` | No | ISO 8601 timestamp when moderation approved it. Example: `2026-09-01T10:00:00.000Z`. |
| `included.product_reviews[].published_at` | `string<date-time>` | No | ISO 8601 timestamp when it first became public. Example: `2026-09-01T10:00:00.000Z`. |
| `included.product_reviews[].created_at` | `string<date-time>` | Yes | ISO 8601 timestamp when Cevoid created the review. Example: `2026-09-01T10:00:00.000Z`. |
| `included.product_reviews[].updated_at` | `string<date-time>` | Yes | ISO 8601 timestamp when Cevoid last updated the review. Example: `2026-09-01T10:00:00.000Z`. |
| `included.product_reviews[].answers` | `object[]` | Yes |  |
| `included.product_reviews[].answers[].question_id` | `string` | Yes | Opaque Cevoid identifier. Length: `1 to 200`. Example: `rvq_abc123`. |
| `included.product_reviews[].answers[].value` | `number \| string \| boolean \| string[]` | Yes | Original submitted value; selection keys are never translated. Example: `4`. |
| `included.product_reviews[].pinned_at` | `string<date-time>` | No | ISO 8601 timestamp when pinned to its product. Example: `2026-09-01T10:00:00.000Z`. |
| `included.product_reviews[].edited_at` | `string<date-time>` | No | Last reviewer edit; unrelated processing does not change this timestamp. Example: `2026-09-01T10:00:00.000Z`. |
| `included.product_reviews[].product_id` | `string \| null` | Yes | Opaque Cevoid identifier. Length: `1 to 200`. Example: `prd_abc123`. |
| `included.product_reviews[].variant_id` | `string \| null` | Yes | Opaque Cevoid identifier. Length: `1 to 200`. Example: `var_abc123`. |
| `included.company_reviews` | `object[]` | No |  |
| `included.company_reviews[].id` | `string` | Yes | Cevoid public company review identifier. Example: `crv_abc123`. |
| `included.company_reviews[].rating` | `integer` | Yes | Score from 1 to 5. Range: `1 <= x <= 5`. Example: `5`. |
| `included.company_reviews[].title` | `string` | No | Reviewer-supplied headline. In localized responses, title and body both use source text unless a complete translation is available. Example: `Comfortable everyday fit`. |
| `included.company_reviews[].body` | `string` | No | Reviewer-supplied text. Absent for star-only reviews. In localized responses, title and body both use source text unless a complete translation is available. Example: `Comfortable and true to size.`. |
| `included.company_reviews[].language` | `string` | Yes | BCP-47 language of the original submission, even when the returned text is translated. Example: `en`. |
| `included.company_reviews[].status` | `enum<string>` | Yes | Moderation and conversion state. Allowed values: `PENDING`, `PUBLISHED`, `REJECTED`, `CONVERTED`. Example: `PUBLISHED`. |
| `included.company_reviews[].rejection_reasons` | `enum<string>[]` | Yes | Policy reasons recorded when moderation rejected the review. Empty unless status is REJECTED; a single take-down can carry several. Allowed values: `SPAM`, `FAKE`, `DUPLICATE`, `OFF_TOPIC`, `PROFANE`, `ILLEGAL`, `PII`. |
| `included.company_reviews[].identity_verification` | `enum<string>` | Yes | Author verification state. Public display requires CONFIRMED. Allowed values: `PENDING`, `CONFIRMED`, `EXPIRED`. Example: `CONFIRMED`. |
| `included.company_reviews[].purchase_verification` | `enum<string>` | Yes | Purchase evidence state behind verified-buyer display. Allowed values: `VERIFIED`, `UNVERIFIED`. Example: `UNVERIFIED`. |
| `included.company_reviews[].is_incentivized` | `boolean` | Yes | Whether a reward influenced submission. Example: `false`. |
| `included.company_reviews[].is_insider` | `boolean` | Yes | Whether the reviewer is brand-connected. Example: `false`. |
| `included.company_reviews[].channel` | `enum<string>` | Yes | How the review entered Cevoid. Allowed values: `REQUEST`, `WIDGET`, `LINK`, `IMPORT`, `SYNDICATED_IN`. Example: `IMPORT`. |
| `included.company_reviews[].source` | `object` | No | External provenance. Present for imported or syndicated reviews. |
| `included.company_reviews[].source.platform` | `string` | Yes | Source-system slug, such as okendo or yotpo. Example: `yotpo`. |
| `included.company_reviews[].source.external_id` | `string` | No | Review identifier in the source system. Example: `review_123`. |
| `included.company_reviews[].source.url` | `string` | No | Link to the review in its source system. Example: `https://example.com/reviews/123`. |
| `included.company_reviews[].profile_id` | `string \| null` | Yes | Reviewer reference; null when the profile no longer resolves. Length: `1 to 200`. Example: `prf_abc123`. |
| `included.company_reviews[].market_id` | `string` | No | Cevoid public market identifier. Example: `mar_abc123`. |
| `included.company_reviews[].order_id` | `string` | No | Cevoid public identifier of the matched order. Example: `ord_abc123`. |
| `included.company_reviews[].reward_id` | `string` | No | Granted reward, when the review was incentivized. Example: `rwd_abc123`. |
| `included.company_reviews[].converted_from_id` | `string` | No | Review this one was converted from. Example: `rev_original`. |
| `included.company_reviews[].converted_to_id` | `string` | No | Replacement review created by conversion. Example: `crv_replacement`. |
| `included.company_reviews[].media` | `object[]` | Yes |  |
| `included.company_reviews[].media[].type` | `enum<string>` | Yes | Whether the item is an image or a video. Allowed values: `IMAGE`, `VIDEO`. Example: `IMAGE`. |
| `included.company_reviews[].media[].url` | `string` | Yes | Delivery URL for the full asset. Example: `https://example.com/reviews/123`. |
| `included.company_reviews[].media[].thumbnail_url` | `string` | Yes | Delivery URL for the thumbnail. Example: `https://example.com/reviews/123`. |
| `included.company_reviews[].media[].aspect_ratio` | `number` | Yes | Width divided by height. Example: `1.5`. |
| `included.company_reviews[].media[].aspect_ratio_type` | `enum<string>` | Yes | Coarse orientation bucket. Allowed values: `LANDSCAPE`, `PORTRAIT`, `SQUARE`. Example: `LANDSCAPE`. |
| `included.company_reviews[].media[].video_length` | `number` | No | Video duration in seconds. Example: `12`. |
| `included.company_reviews[].media[].moderation_status` | `enum<string>` | No | Moderation state for this asset, independent from the review itself. Allowed values: `PENDING`, `APPROVED`, `DECLINED`. Example: `APPROVED`. |
| `included.company_reviews[].media[].id` | `string` | Yes | Stable opaque asset identity shared by detail and preview. Example: `rmed_abc123`. |
| `included.company_reviews[].media[].alt` | `string` | No | Available image alternative text, localized with source fallback. Example: `Blue shirt worn outdoors`. |
| `included.company_reviews[].media[].thumbnail_alt` | `string` | No | Available video poster alternative text. Example: `Blue shirt video preview`. |
| `included.company_reviews[].media[].video_description` | `string` | No | Available description of video imagery. Example: `A shopper shows the fit of a blue shirt.`. |
| `included.company_reviews[].media[].video_captions` | `string` | No | Available WebVTT captions with cue timing, localized with source fallback. Example: `WEBVTT

00:00.000 --> 00:01.000
The fit is comfortable.`. |
| `included.company_reviews[].responses` | `object[]` | Yes |  |
| `included.company_reviews[].responses[].body` | `string` | Yes | Reply text as published. Example: `Comfortable and true to size.`. |
| `included.company_reviews[].responses[].author_type` | `enum<string>` | Yes | Whether the workspace or a named team member authored the reply. Allowed values: `WORKSPACE`, `TEAM_MEMBER`. Example: `WORKSPACE`. |
| `included.company_reviews[].responses[].created_at` | `string<date-time>` | Yes | ISO 8601 timestamp when the reply was created. Example: `2026-09-01T10:00:00.000Z`. |
| `included.company_reviews[].responses[].updated_at` | `string<date-time>` | No | ISO 8601 timestamp when the reply was last edited. Example: `2026-09-01T10:00:00.000Z`. |
| `included.company_reviews[].responses[].id` | `string` | Yes | Opaque Cevoid identifier. Length: `1 to 200`. Example: `rev_abc123`. |
| `included.company_reviews[].helpful_up_count` | `number` | Yes | Positive helpful votes from shoppers. Example: `3`. |
| `included.company_reviews[].helpful_down_count` | `number` | Yes | Negative helpful votes, when down-voting is enabled. Example: `0`. |
| `included.company_reviews[].submitted_at` | `string<date-time>` | No | ISO 8601 timestamp when submission completed. Example: `2026-09-01T10:00:00.000Z`. |
| `included.company_reviews[].approved_at` | `string<date-time>` | No | ISO 8601 timestamp when moderation approved it. Example: `2026-09-01T10:00:00.000Z`. |
| `included.company_reviews[].published_at` | `string<date-time>` | No | ISO 8601 timestamp when it first became public. Example: `2026-09-01T10:00:00.000Z`. |
| `included.company_reviews[].created_at` | `string<date-time>` | Yes | ISO 8601 timestamp when Cevoid created the review. Example: `2026-09-01T10:00:00.000Z`. |
| `included.company_reviews[].updated_at` | `string<date-time>` | Yes | ISO 8601 timestamp when Cevoid last updated the review. Example: `2026-09-01T10:00:00.000Z`. |
| `included.company_reviews[].answers` | `object[]` | Yes |  |
| `included.company_reviews[].answers[].question_id` | `string` | Yes | Opaque Cevoid identifier. Length: `1 to 200`. Example: `rvq_abc123`. |
| `included.company_reviews[].answers[].value` | `number \| string \| boolean \| string[]` | Yes | Original submitted value; selection keys are never translated. Example: `4`. |
| `included.company_reviews[].edited_at` | `string<date-time>` | No | Last reviewer edit; unrelated processing does not change this timestamp. Example: `2026-09-01T10:00:00.000Z`. |

Response headers:

| Header | Type | Description |
| --- | --- | --- |
| `Cevoid-Processing-Ms` | `string` | End-to-end request processing time in milliseconds |
| `Cevoid-Request-Id` | `string` | Request identifier for support and tracing |
| `RateLimit-Limit` | `string` | Current rate limit bucket size |
| `RateLimit-Remaining` | `string` | Remaining requests in the current rate limit window |
| `RateLimit-Reset` | `integer` | Seconds until the next request token is available |

```json
{
  "data": {
    "id": "rrq_abc123",
    "kind": "PRODUCT",
    "state": "ACTIVE",
    "profile_id": "prf_abc123",
    "order_id": "ord_abc123",
    "market_id": "mar_abc123",
    "language": "en",
    "items": [
      {
        "product_id": "prd_abc123",
        "variant_id": "var_abc123",
        "external_line_id": "line_1"
      }
    ],
    "created_at": "2026-09-01T10:00:00.000Z",
    "updated_at": "2026-09-01T10:00:00.000Z"
  }
}
```

### 400: Bad request

`application/json`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `additional_data` | `object` | No | Optional machine-readable error details. |
| `additional_data.{key}` | `any` | No |  |
| `status` | `number` | Yes | HTTP status code for the error response. Example: `404`. |
| `code` | `string` | Yes | Stable machine-readable error code. Example: `not_found`. |
| `message` | `string` | Yes | Human-readable description of the error. Example: `Route not found`. |
| `request_id` | `string` | No | Request identifier for support and tracing. Example: `req_abc123`. |

Response headers: the same as 200.

```json
{
  "additional_data": {
    "errors": [
      {
        "field": "query.market",
        "message": "Invalid input: expected string, received array"
      }
    ]
  },
  "status": 400,
  "code": "bad_request",
  "message": "Bad request",
  "request_id": "req_abc123"
}
```

### 401: Unauthorized

`application/json`

Same fields as 400.

Response headers: the same as 200.

```json
{
  "status": 401,
  "code": "unauthorized",
  "message": "Unauthorized",
  "request_id": "req_abc123"
}
```

### 403: Forbidden

`application/json`

Same fields as 400.

Response headers: the same as 200.

```json
{
  "status": 403,
  "code": "forbidden",
  "message": "Forbidden",
  "request_id": "req_abc123"
}
```

### 404: Not found

`application/json`

Same fields as 400.

Response headers: the same as 200.

```json
{
  "additional_data": {
    "errors": [
      {
        "field": "query.market",
        "message": "Invalid input: expected string, received array"
      }
    ]
  },
  "status": 404,
  "code": "not_found",
  "message": "Route not found",
  "request_id": "req_abc123"
}
```

### 409: Conflict

`application/json`

Same fields as 400.

Response headers: the same as 200.

```json
{
  "status": 409,
  "code": "conflict",
  "message": "Conflict",
  "request_id": "req_abc123"
}
```

### 422: Validation error

`application/json`

Same fields as 400.

Response headers: the same as 200.

```json
{
  "additional_data": {
    "errors": [
      {
        "field": "query.market",
        "message": "Invalid input: expected string, received array"
      }
    ]
  },
  "status": 422,
  "code": "validation_error",
  "message": "Validation error",
  "request_id": "req_abc123"
}
```

### 429: Too many requests

`application/json`

Same fields as 400.

Response headers:

| Header | Type | Description |
| --- | --- | --- |
| `Cevoid-Processing-Ms` | `string` | End-to-end request processing time in milliseconds |
| `Cevoid-Request-Id` | `string` | Request identifier for support and tracing |
| `RateLimit-Limit` | `string` | Current rate limit bucket size |
| `RateLimit-Remaining` | `string` | Remaining requests in the current rate limit window |
| `RateLimit-Reset` | `integer` | Seconds until the next request token is available |
| `Retry-After` | `integer` | Seconds to wait before retrying the request |

```json
{
  "status": 429,
  "code": "too_many_requests",
  "message": "Too many requests",
  "request_id": "req_abc123"
}
```

### 500: Internal server error

`application/json`

Same fields as 400.

Response headers: the same as 200.

```json
{
  "status": 500,
  "code": "internal_server_error",
  "message": "Internal server error",
  "request_id": "req_abc123"
}
```

## Request example

```bash
curl 'https://api.cevoid.com/v2/review-requests/rev_abc123' \
  -H "Authorization: Bearer ${CEVOID_API_KEY}"
```

---

Canonical: https://docs.cevoid.com/developers/api/reviews/get-review-request
