Skip to main content
GET
/
public
/
generation
/
:id
curl "https://your-store.myshopify.com/apps/proxy_genlook-x/public/generation/gen_xyz789abc"
{
  "generationId": "gen_xyz789abc",
  "status": "COMPLETED",
  "resultImageKey": "generations/gen_xyz789abc.jpg",
  "resultImageUrl": "https://storage.googleapis.com/bucket-name/generations/gen_xyz789abc.jpg?X-Goog-Signature=...",
  "createdAt": "2024-01-15T10:30:00Z",
  "updatedAt": "2024-01-15T10:32:15Z"
}
Poll this endpoint until status is COMPLETED or FAILED. Recommended interval: every 2 seconds, max 60 attempts.

Path Parameters

id
string
required
The jobId from the create generation response.
curl "https://your-store.myshopify.com/apps/proxy_genlook-x/public/generation/gen_xyz789abc"

Response

generationId
string
required
The generation job ID.
status
string
required
PENDING | PROCESSING | COMPLETED | FAILED
resultImageKey
string
Storage key of the generated image. Present when COMPLETED.
resultImageUrl
string
Temporary signed URL of the generated image. Present when COMPLETED.
errorMessage
string
Error description. Present when FAILED.
createdAt
string
required
ISO 8601 timestamp.
updatedAt
string
required
ISO 8601 timestamp.
{
  "generationId": "gen_xyz789abc",
  "status": "COMPLETED",
  "resultImageKey": "generations/gen_xyz789abc.jpg",
  "resultImageUrl": "https://storage.googleapis.com/bucket-name/generations/gen_xyz789abc.jpg?X-Goog-Signature=...",
  "createdAt": "2024-01-15T10:30:00Z",
  "updatedAt": "2024-01-15T10:32:15Z"
}

Polling Example

async function pollGeneration(jobId) {
  for (let i = 0; i < 60; i++) {
    const res = await fetch(`/apps/proxy_genlook-x/public/generation/${jobId}`);
    const data = await res.json();

    if (data.status === 'COMPLETED') return data;
    if (data.status === 'FAILED') throw new Error(data.errorMessage);

    await new Promise(r => setTimeout(r, 2000));
  }
  throw new Error('Generation timeout');
}
Most generations complete within 30-60 seconds.