---
title: "Get creative test quotes"
method: GET
path: "/api/v1/research/creative-test-quotes/{id}"
tags: ["research"]
---

# Get creative test quotes

`GET /api/v1/research/creative-test-quotes/{id}`

## Request

- Base URL: `https://point11.ai`
- URL: `https://point11.ai/api/v1/research/creative-test-quotes/{id}`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://auth.point11.ai/oauth2/authorize`, token URL `https://auth.point11.ai/oauth2/token`)

Quote a creative test's interviews before starting it (id "organization"), generating no work: the interviews it would run (one per selected person, whatever the number of creatives), the organization's interview price and subtotal, the catalog row and version that priced them, and Billing's answer to that batch now (included in the plan, overage, or refused in Billing's words). It refuses what research_creative_tests_start would refuse first (an audience or seller it cannot use, more customers than a study interviews). The Designer's and each participant's preparation draw Alpha credits at their exact model cost, settled after delivery and never estimated here. Pass expectedPrice to research_creative_tests_start to refuse the start if the price changes.

## Path parameters

- `id` 'organization', required: Always "organization".

## Query parameters

- `sellerProfileId` string, uuid, nullable: The seller profile the start would name; omit or null for none.

## Headers

- `Point11-Organization` string, uuid

## Response `200`

Success.

- ResearchCreativeTestQuotesGetResponse
  - `plannedInterviewCount` integer, required: The interviews the test would run: one per selected person.
  - `unitPriceCents` integer, required: The organization's interview price.
  - `subtotalCents` integer, required
  - `catalogRow` object, required: The catalog row and version that priced the interviews.
    - `priceId` string, uuid, required
    - `version` integer, required
  - `expectedPrice` object, required: Pass to research_creative_tests_start to refuse the start if this price changes.
    - `productSlug` string, required
    - `dimensionKey` string, required
    - `unitPriceCents` integer, required
    - `quantity` integer, required
    - `totalCents` integer, required
  - `admission` object, required
    - `outcome` 'included' | 'overage' | 'refused' | 'unavailable', required: Billing's answer to the interviews now: within the plan, overage, refused, or unavailable when it could not be read (which refuses nothing).
    - `reason` string, nullable, required: Billing's refusal reason.
    - `message` string, nullable, required: Billing's refusal, in its own words.
    - `paymentDisputeHold` boolean, required
  - `preparation` 'alpha_credits_at_cost', required: The Designer and each participant's preparation draw Alpha credits at their exact model cost, settled after delivery; never estimated here.

## Other responses

- `400`: The input, query, or Idempotency-Key is invalid.
- `401`: The bearer is missing, expired, or not accepted.
- `403`: The credential lacks the operation's scope or role, or the operation needs a different door.
- `404`: The resource or organization does not exist for this caller.
- `405`: This path takes another HTTP method, named in `Allow`.
- `409`: The request conflicts with current state or with prior use of its Idempotency-Key.
- `413`: The request, or the answer it asks for, is too large; narrow it.
- `429`: The credential's rate budget is spent; retry after `Retry-After` seconds.
- `500`: An unexpected server failure; retry later. Only `request_id` identifies it.
- `503`: A dependency is temporarily unavailable; retry after `Retry-After` seconds.
- `default`: Another status a product answers for its own refusal (for example `415` for an unsupported attachment); branch on `code`.

---

[API](https://skmtc.dev/point11/apis/point11-api.md) · [All operations](https://skmtc.dev/point11/apis/point11-api/llms.txt) · [OpenAPI document](https://skmtc.dev/point11/apis/point11-api/revisions/36a84c7aca11?raw)
