Jobs
Check the status of a job and retrieve its output when complete.
All Pixii generation endpoints are asynchronous. They return a job_id immediately and process in the background. Use the Jobs API to check a job’s status and retrieve its output when complete.
Get a job
GET /v2/api/jobs/{job_id}Response fields
| Field | Type | Description |
|---|---|---|
job_id | string | Unique job identifier |
job_type | string | create_listing, create_anything, scale, creative_strategy or download_visuals |
brand_id | number | The brand the job runs in. See Brands |
session_id | string | The Pixii session of the job. Present for create_listing and create_anything jobs from submission on |
status | string | Current job status, see below |
created_at | string | ISO 8601 timestamp when the job was submitted |
started_at | string | null | ISO 8601 timestamp when processing began |
completed_at | string | null | ISO 8601 timestamp when the job finished |
credit_cost | number | Credits charged for this job |
credits_refunded | number | Credits refunded so far, for a failed job or for failed visuals inside a completed one |
error | object | null | code and message when status is failed. See job errors |
output | object | null | Job output. null until status is completed |
Job statuses
pending Job received and queued processing Job is actively running completed output is ready failed Job failed, check the error object Output
The shape of output depends on the endpoint that created the job. Each endpoint page documents its own output:
- Create listing:
product,session_id,listing_type,campaign_ads[], optionalcreative_strategy - Create anything:
product,session_id,campaign_ads[] - Scale:
factory_id,scale_mode,zip_url,products[]each withcampaign_ads[] - Creative strategy:
asin,country_code,creative_strategy - Download visuals:
product,session_ids,visual_count,zip_url
Campaign ads
Wherever a job returns generated visuals, each one is a campaign ad:
| Field | Type | Description |
|---|---|---|
id | string | Id of the campaign ad inside Pixii |
preview | string | null | Signed URL of the image. For a video ad this is the poster frame. null if the ad failed |
video_url | string | null | Signed URL of the MP4 for video ads, null for image ads |
platform | string | Amazon, Amazon Mobile, Shopify, Walmart, TikTok or Instagram |
asset_type | string | What the visual is: Main Image, Product Photo, Title and Bullets, an A+ format, a video format or an Amazon Ads format |
deliverable_number | number | The deliverable the ad belongs to. Every requested deliverable (one per format) gets its own number, in request order |
grid_order | number | null | Position of the ad in the app grid |
status | string | completed or failed |
Partial failures: if some ads fail while others succeed, the job status is still completed. Failed ads have status: "failed" and a null preview, and their credits are refunded; check credits_refunded on the job.
Signed URLs expire. They are minted fresh each time you read the job, so poll the job again to get new links. The job record itself does not expire.
Errors
| Code | HTTP | Description |
|---|---|---|
VALIDATION_ERROR | 400 | job_id is not a valid UUID |
UNAUTHORIZED | 401 | Missing or invalid API key |
JOB_NOT_FOUND | 404 | Job not found or does not belong to your organization |