> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aigenstudio.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Product Photo job status

> Returns the current Product Photo job state and item results for the API key owner.



## OpenAPI

````yaml /openapi.yaml get /product-photo-jobs/{jobId}
openapi: 3.1.0
info:
  title: AI Gen Studio Product Photo API
  version: 1.0.0
  summary: Product Photo workflow API for commerce catalogs.
  description: >-
    The Product Photo API turns raw product photos into cleaner ecommerce
    visuals while preserving the real product, packaging, labels, logos,
    proportions, and color identity. Use sandbox keys for integration tests and
    live keys for paid catalog processing.
servers:
  - url: https://aigenstudio.app/api/v1
    description: Production
security:
  - bearerApiKey: []
tags:
  - name: Product Photo Jobs
    description: Create, list, and inspect asynchronous Product Photo jobs.
  - name: Product Photo Metadata
    description: Discover supported Product Photo operations and presets.
paths:
  /product-photo-jobs/{jobId}:
    get:
      tags:
        - Product Photo Jobs
      summary: Get Product Photo job status
      description: >-
        Returns the current Product Photo job state and item results for the API
        key owner.
      operationId: getProductPhotoJob
      parameters:
        - name: jobId
          in: path
          required: true
          schema:
            type: string
            format: uuid
        - $ref: '#/components/parameters/RequestIdHeader'
      responses:
        '200':
          description: Product Photo job status returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductPhotoJobStatusResponse'
        '401':
          $ref: '#/components/responses/InvalidApiKey'
        '404':
          $ref: '#/components/responses/JobNotFound'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
components:
  parameters:
    RequestIdHeader:
      name: X-Request-Id
      in: header
      required: false
      schema:
        type: string
        maxLength: 160
      description: Optional client correlation id. AI Gen Studio also returns `request_id`.
  schemas:
    ProductPhotoJobStatusResponse:
      type: object
      required:
        - job
        - request_id
      properties:
        job:
          $ref: '#/components/schemas/ProductPhotoJob'
        request_id:
          type: string
    ProductPhotoJob:
      allOf:
        - $ref: '#/components/schemas/ProductPhotoJobSummary'
        - type: object
          properties:
            completed_items:
              type: integer
              minimum: 0
            failed_items:
              type: integer
              minimum: 0
            credits_used:
              type: integer
              minimum: 0
            items:
              type: array
              items:
                $ref: '#/components/schemas/ProductPhotoJobItem'
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
            - request_id
          properties:
            code:
              type: string
            message:
              type: string
            request_id:
              type: string
    ProductPhotoJobSummary:
      type: object
      required:
        - credits_reserved
        - id
        - sandbox
        - status
        - total_items
      properties:
        id:
          type: string
          format: uuid
        status:
          $ref: '#/components/schemas/ProductPhotoJobStatus'
        total_items:
          type: integer
          minimum: 1
        credits_reserved:
          type: integer
          minimum: 0
        sandbox:
          type: boolean
    ProductPhotoJobItem:
      type: object
      required:
        - id
        - status
      properties:
        id:
          type: string
          format: uuid
        external_id:
          type:
            - string
            - 'null'
        status:
          $ref: '#/components/schemas/ProductPhotoJobItemStatus'
        credits_reserved:
          type: integer
          minimum: 0
        credits_used:
          type: integer
          minimum: 0
        result_url:
          type:
            - string
            - 'null'
          format: uri
        thumbnail_url:
          type:
            - string
            - 'null'
          format: uri
        error_code:
          type:
            - string
            - 'null'
        error_message:
          type:
            - string
            - 'null'
    ProductPhotoJobStatus:
      type: string
      enum:
        - queued
        - processing
        - completed
        - partially_completed
        - failed
        - cancelled
    ProductPhotoJobItemStatus:
      type: string
      enum:
        - queued
        - processing
        - completed
        - failed
        - cancelled
  responses:
    InvalidApiKey:
      description: API key is missing, invalid, expired, inactive, or revoked.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    JobNotFound:
      description: >-
        Product Photo job does not exist or does not belong to this API key
        environment.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    RateLimitExceeded:
      description: The request exceeded an API rate or concurrency limit.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    bearerApiKey:
      type: http
      scheme: bearer
      bearerFormat: AI Gen Studio API key

````