Vizit Public APIAPI
Spark Ideas

Retrieve a Spark Idea

Poll for the result of a previously requested Spark Idea.

GET/v1/images/{image_id}/spark/ideas/{idea_id}

Returns the current state of a Spark Idea. Poll until status moves from PROCESSING to COMPLETED or ERROR.

data carries the suggestion markdown only when status is COMPLETED. Ideas that have been non-terminal for longer than the 5-minute timeout are reported as ERROR here even when the database row still reads as in-flight.

Authorization

bearerAuth
Authorization<token>

Short-lived access token issued by Create a token. Send it on every request as Authorization: Bearer <token>.

In: header

Path Parameters

image_id*string

Root image the Idea was requested for.

Formatuuid
idea_id*string

The idea_id returned by Request a Spark Idea.

Formatuuid

Response Body

application/json

application/json

application/json

curl -X GET "https://ext.vizit.com/v1/images/497f6eca-6276-4993-bfeb-53cbbbba6f08/spark/ideas/497f6eca-6276-4993-bfeb-53cbbbba6f08"
{  "idea_id": "513dcbd6-3206-4305-8a7e-8651161eebfb",  "image_id": "84c230fd-5520-4984-8119-37365b66fd80",  "pdp_id": "2ed2d86b-85b6-49b8-bfaf-11ce19f11301",  "status": "PROCESSING",  "error_code": "SPARK_GENERATION_FAILED",  "data": "string",  "created_at": "2019-08-24T14:15:22Z"}
Empty
{  "detail": "string",  "status_code": 0,  "error_code": "IMAGE_DOWNLOAD_FAILED",  "request_id": "266ea41d-adf5-480b-af50-15b940c2b846",  "extra": {    "failed_urls": [      {        "url": "https://cdn.example.com/broken.jpg",        "reason": "IMAGE_DOWNLOAD_TIMEOUT"      },      {        "url": "https://cdn.example.com/icon.svg",        "reason": "UNSUPPORTED_IMAGE_FORMAT"      }    ]  },  "timestamp": "2019-08-24T14:15:22Z"}
{  "detail": "string",  "status_code": 0,  "error_code": "IMAGE_DOWNLOAD_FAILED",  "request_id": "266ea41d-adf5-480b-af50-15b940c2b846",  "extra": {    "failed_urls": [      {        "url": "https://cdn.example.com/broken.jpg",        "reason": "IMAGE_DOWNLOAD_TIMEOUT"      },      {        "url": "https://cdn.example.com/icon.svg",        "reason": "UNSUPPORTED_IMAGE_FORMAT"      }    ]  },  "timestamp": "2019-08-24T14:15:22Z"}

POSTRequest a Spark Idea

Queues a Spark Idea for the image and returns immediately with `status: PROCESSING` — a fresh request starts in flight, and an idempotent reuse only ever matches an in-flight Idea. Use [Retrieve a Spark Idea](/api/spark-ideas/getSparkIdea) to poll for terminal states (`COMPLETED` / `ERROR`). Idempotent on `image_id`: while an Idea is in flight for the image, subsequent calls return the existing Idea with `200 OK` instead of creating a new one. A fresh create returns `202 Accepted`. The organization check runs before the idempotent lookup, so callers from a different organization cannot reuse another org's in-flight Idea — they get `404 IMAGE_NOT_FOUND` instead. Hero images with GS1 hero analysis available are only accepted once their GS1 component scores are stored; until then the request returns `409 HERO_GS1_SCORES_MISSING`. Wait for [Retrieve an image score](/api/images/getImageScore) to report `COMPLETED` with `hero_gs1_components` populated before requesting Spark work. The 409 `detail` says whether the scores are still being computed or will never be available for the image.

POSTRequest a Spark Images batch

Queues a Spark Images batch for the image and returns immediately with `status: PROCESSING` — a fresh request starts in flight, and an idempotent reuse only ever matches an in-flight batch. Use [Retrieve a Spark Images batch](/api/spark-images/getSparkImagesBatch) to poll for terminal states (`COMPLETED` / `ERROR`). Idempotent on `image_id`: while a batch is in flight for the image, subsequent calls return the existing batch with `200 OK` instead of creating a new one. A fresh create returns `202 Accepted`. The organization check runs before the idempotent lookup, so callers from a different organization cannot reuse another org's in-flight batch — they get `404 IMAGE_NOT_FOUND` instead. Hero images with GS1 hero analysis available are only accepted once their GS1 component scores are stored; until then the request returns `409 HERO_GS1_SCORES_MISSING`. Wait for [Retrieve an image score](/api/images/getImageScore) to report `COMPLETED` with `hero_gs1_components` populated before requesting Spark work. The 409 `detail` says whether the scores are still being computed or will never be available for the image.