---
title: "Get creative tests (v2)"
method: GET
path: "/api/v1/research/creative-tests-v2/{id}"
tags: ["research"]
---

# Get creative tests (v2)

`GET /api/v1/research/creative-tests-v2/{id}`

## Request

- Base URL: `https://point11.ai`
- URL: `https://point11.ai/api/v1/research/creative-tests-v2/{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`)

Read this caller's creative test by its start request's Idempotency-Key, without generating more work: its exact selection, shared interpretation, preparation counts and the progress of the ordinary Research run it launched, and also why it failed (failure: the stage, design, preparation, launch or interviews, and its code; a launch refused by Billing names Billing's reason, and message says it in Billing's words), every creative it froze by digest (a video by its source's and its storyboard's), the exact roster with each person's snapshot hash, the seller profile version, the Designer's measures (the question that rates each metric of each creative), each participant's preparation and its failure code, and when it started, launched and ended. Once launched, campaignId and runId name that run's results; cancel a launched test by deleting its campaign with campaigns_lifecycles_delete. Only the caller that started a test reads it; list yours with research_creative_tests_list.

## Path parameters

- `id` string, uuid, required: The start request's Idempotency-Key.

## Headers

- `Point11-Organization` string, uuid

## Response `200`

Success.

- ResearchCreativeTestsGetV2Response
  - `name` string, required
  - `attachments` object[], required
    - `artifactId` string, required
    - `filename` string, required
    - `mediaType` 'image/png' | 'image/jpeg' | 'image/webp' | 'application/pdf' | 'text/plain' | 'text/markdown' | 'text/csv' | 'video/mp4' | 'video/webm' | 'audio/mpeg' | 'audio/wav', required
    - `byteLength` integer, required
  - `preparationRunId` string, uuid, required
  - `status` 'preparing' | 'unsupported' | 'failed' | 'cancelled' | 'launched', required: cancelled once a launched test's campaign was deleted (campaigns_lifecycles_delete) or its run stopped.
  - `campaignId` string, uuid, nullable, required
  - `runId` string, uuid, nullable, required
  - `message` string, nullable, required
  - `studyMode` union, required
    - object
      - `kind` 'first_impressions', required
    - object
      - `kind` 'buying_scenario', required
      - `direction` string, required
  - `metrics` string[], required: What each creative is rated on, as the start named them or the Designer chose them; empty when the study chose its own questions, and until the Designer has chosen.
  - `platforms` string[], required: Where the creative might run.
  - `phase` 'reading_creative' | 'preparing_participants' | 'interviewing' | 'analyzing' | 'results' | 'failed' | 'cancelled' | 'unsupported', required
  - `selection` object[], required
    - `customerId` string, uuid, required
    - `customerVersionId` string, uuid, required
    - `version` integer, required
    - `contentFingerprint` string, required
    - `displayName` string, nullable, required
  - `plannedInterviewCount` integer, required
  - `preparation` object, required
    - `required` integer, required
    - `completed` integer, required
    - `failed` integer, required
  - `interviews` object, required
    - `completed` integer, required
    - `failed` integer, required
  - `interpretation` ResearchInterpretation, nullable, required
    - `brand` object, required
      - `value` string, required
      - `basis` 'customer_fact' | 'caller_fact' | 'creative_claim' | 'explicit_assumption' | 'unknown', required
    - `category` object, required
      - `value` string, required
      - `basis` 'customer_fact' | 'caller_fact' | 'creative_claim' | 'explicit_assumption' | 'unknown', required
    - `offering` object, required
      - `value` string, required
      - `basis` 'customer_fact' | 'caller_fact' | 'creative_claim' | 'explicit_assumption' | 'unknown', required
    - `intendedAudience` object, required
      - `value` string, required
      - `basis` 'customer_fact' | 'caller_fact' | 'creative_claim' | 'explicit_assumption' | 'unknown', required
    - `claims` object[], required
      - `value` string, required
      - `basis` 'customer_fact' | 'caller_fact' | 'creative_claim' | 'explicit_assumption' | 'unknown', required
    - `uncertainties` string[], required
  - `scenario` object, nullable, required
    - `condition` string, required
    - `respondentExposure` string, required
    - `limitations` string[], required
  - `failure` object, nullable, required: Why a failed test failed; null unless status is failed.
    - `stage` 'design' | 'preparation' | 'launch' | 'interviews', required: Where the test failed: the Designer, a participant's preparation, its launch, or the launched run's interviews.
    - `code` string, required: Why, as its owner recorded it: a launch refused by Billing names Billing's reason (such as interaction_unavailable), one whose quoted price moved price_changed; interviews name the launched run's status.
    - `paymentDisputeHold` true: Present when the message words the account's payment-dispute hold.
  - `creatives` object[], required: Every file the test froze and shows, by digest.
    - `artifactId` string, uuid, required
    - `filename` string, required
    - `mediaType` 'image/png' | 'image/jpeg' | 'image/webp' | 'application/pdf' | 'text/plain' | 'text/markdown' | 'text/csv' | 'video/mp4' | 'video/webm' | 'audio/mpeg' | 'audio/wav', required
    - `byteLength` integer, required
    - `sha256` string, required: The stored file's digest, as the test froze it.
    - `storyboard` object, nullable, required: A video's storyboard manifest, the frames and transcript a model sees.
      - `artifactId` string, uuid, required
      - `sha256` string, required
  - `roster` object, required: The exact people the test interviews, each at the Customer Version it froze.
    - `audienceProfileId` string, uuid, required
    - `participants` object[], required
      - `customerId` string, uuid, required
      - `customerVersionId` string, uuid, required
      - `version` integer, required
      - `snapshotHash` string, required: The digest of the Research snapshot frozen from that exact Customer Version.
  - `seller` object, nullable, required: The seller profile version the test was designed with; null without one.
    - `profileId` string, uuid, required
    - `profileVersionId` string, uuid, required
  - `measures` object[], required: The Designer's measures: the scale question that rates each named metric of each creative. Empty for a test that named no metrics.
    - `metric` 'stopping_power' | 'clarity' | 'relevance' | 'appeal' | 'believability' | 'distinctiveness' | 'brand_clarity' | 'platform_fit' | 'intent_to_act', required: The metric the question rates.
    - `artifactId` string, uuid, required: The rated creative: its attachment's artifactId.
    - `questionId` string, required: The scale question that asks it.
  - `participants` object[], required: Each participant's buying-scenario preparation; empty for first impressions. One failed or unsupported preparation launches no interviews.
    - `customerId` string, uuid, required
    - `customerVersionId` string, uuid, required
    - `status` 'reserved' | 'running' | 'succeeded' | 'failed', required
    - `outcome` 'prepared' | 'unchanged_baseline' | 'unsupported', nullable, required: The preparation's outcome once delivered; null before, or once erased.
    - `failureCode` string, nullable, required
  - `timestamps` object, required
    - `startedAt` string, date-time, nullable, required
    - `launchedAt` string, date-time, nullable, required
    - `completedAt` string, date-time, nullable, required: When the launched run ended, or the preparation when nothing launched.

## 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)
