---
title: "Quiz image analysis"
method: GET
path: "/v1/quizzes/{quiz_id}/analytics/image_analysis"
tags: ["analytics"]
---

# Quiz image analysis

`GET /v1/quizzes/{quiz_id}/analytics/image_analysis`

## Request

- Base URL: `https://api.octaneai.com`
- URL: `https://api.octaneai.com/v1/quizzes/{quiz_id}/analytics/image_analysis`
- Auth: HTTP bearer

What became of the photos shoppers sent to each Image analysis block of the quiz: the visits
that reached the block's page, sent a photo and had one read, the photos by outcome, the photos
that used credits and the checks photos failed. Ranges are capped at 92 days.

## Path parameters

- `quiz_id` string, required

## Query parameters

- `from` string, date, nullable: First day, inclusive, in tz; 29 days before `to` when absent
- `to` string, date, nullable: Last day, inclusive, in tz; today when absent
- `tz` string
- `channel` string, nullable
- `device` string, nullable
- `new_returning` string, nullable
- `country` string, nullable

## Headers

- `if-none-match` string, nullable

## Response `200`

Analytics for the range. ETag identifies the cached response.

- AnalyticsImageAnalysis
  - `quiz_id` string, required: The quiz
  - `range` AnalyticsRange, required
    - `start` string, date, required: First day of the range, inclusive, in timezone
    - `end` string, date, required: Last day of the range, inclusive, in timezone
    - `days` integer, required
    - `timezone` string, required: IANA name of the timezone the days are counted in; UTC unless the request named one
  - `filters` AnalyticsFilters, required
    - `channel` string, nullable, required: The channel filter applied: direct | organic_search | paid_search | organic_social | paid_social | email | sms | affiliate | display | paid_other | referral | ai_assistant | other | shared_results; null for all
    - `device` string, nullable, required: The device filter applied: mobile | tablet | desktop; null for all
    - `new_returning` string, nullable, required: The visitor filter applied: new | returning; null for all
    - `country` string, nullable, required: The country filter applied, ISO 3166-1 alpha-2; null for all
  - `freshness` Freshness, required
    - `as_of` string, date-time, nullable, required: When the numbers for past hours were last brought up to date, UTC ISO 8601; today's visits and orders are always counted live; null before the first update
    - `next_refresh_at` string, date-time, nullable, required: When the next update is due, UTC ISO 8601; null when none is scheduled or the numbers are read live
    - `stale` boolean, required
    - `pending` boolean, required: True until every update behind these numbers has run once, so they may be incomplete
    - `closed_days_through` string, date, required: The last day whose numbers are settled: yesterday in the request's timezone
    - `today_live` boolean, required
  - `blocks` ImageBlockRow[], required: One row per Image analysis block: the published version's blocks in page order, then the blocks that took photos in the range but are no longer published; empty when there is none
    - `page_key` string, required: The page the block is on
    - `page_title` string, nullable, required: That page's title; null when it has none
    - `component_key` string, required: The block's key; its description answers under the same key
    - `label` string, required: The block's label, else its key
    - `removed` boolean, required: True for a block that took photos in the range but is gone from the published version
    - `sessions_reached` integer, required: Visits that entered the block's page; the page, not the block, so an upper bound when the block has a visibility rule
    - `sessions_sent` integer, required: Visits that sent at least one photo to the block
    - `sessions_read` integer, required: Visits where a photo passed every check and was read
    - `send_rate` number, nullable, required: sessions_sent as a percentage of sessions_reached, 0 to 100; null under 30 visits that sent a photo
    - `read_rate` number, nullable, required: sessions_read as a percentage of sessions_sent, 0 to 100; null under 30 visits that sent a photo
    - `attempts` integer, required: Photos sent to the block: reads + retakes + refused + unavailable; previews are not counted
    - `reads` integer, required: Photos that passed every check and were read
    - `retakes` integer, required: Photos sent back because they failed a check
    - `refused` integer, required: Photos refused for explicit nudity, hate symbols or graphic violence
    - `unavailable` integer, required: Photos that could not be read at that moment; they use no credits
    - `retake_rate` number, nullable, required: retakes as a percentage of attempts, 0 to 100; null under 30 visits that sent a photo
    - `charged_reads` integer, required: Photos that used credits: reads + retakes + refused
    - `failed_checks` ImageFailedCheck[], required: The checks photos failed, the one with the most retakes first; their retakes add up to retakes
      - `check` string, required: The check photos failed, in the words it had when the photo was sent; a removed check when the check can no longer be named
      - `current` boolean, required: True when the published version still has a check with these words; false for a check reworded or removed since
      - `retakes` integer, required: Photos sent back for failing this check
      - `retake_share` number, nullable, required: retakes as a percentage of the block's retakes, 0 to 100; null under 30 visits that sent a photo

## Other responses

- `304`: If-None-Match matches the cached response; no body is sent.
- `401`: The key is missing, malformed, revoked or expired.
- `403`: The store's plan has no API access, or the key lacks the scope.
- `404`: Not found
- `422`: A request parameter is invalid.
- `429`: The key's or the store's bucket is full; Retry-After says when to try again.
- `503`: Request limits could not be checked for the body, or the store's details could not be read.
- `504`: The request timed out.

---

[API](https://skmtc.dev/octaneai/apis/octane-ai-merchant-api.md) - [All operations](https://skmtc.dev/octaneai/apis/octane-ai-merchant-api/llms.txt) - [OpenAPI document](https://skmtc.dev/octaneai/apis/octane-ai-merchant-api/revisions/dc2d1aa2b7c6?raw)
