Genlook tryon API

Genlook tryon API as documented publicly: 25 operations. Contract generated from the documentation by API Evangelist (2026-11-09); not the provider's own document.

GitHub OpenAPI

Operations 25

GET /account/credits get_credits Credits left and the plans link. #
GET /generations Migrating from the alpha - Genlook Documentation #
GET /generations/{id} get_try_on Gets a try-on, with the image once it is done. #
POST /images/upload add_photo_from_url Adds your photo from a public image link. #
GET /products List, Get & Delete Products - Genlook Documentation #
POST /products POST /products is optional: use it only for products that should never expire or should appear in GET /products. #
DELETE /products/{externalid} List, Get & Delete Products - Genlook Documentation #
GET /products/{externalid} metadata object Any JSON, returned on GET /products/:externalId . #
PATCH /products/{externalid} Migrating from the alpha - Genlook Documentation #
POST /try-on try_on Puts a product on your current photo, from a product image link or an attached image. #
POST /try-on/sync POST /try-on/sync #
GET /tryon/v1/account/credits GET /tryon/v1/account/credits #
POST /tryon/v1/batches POST /tryon/v1/batches #
POST /tryon/v1/batches/c4b1s2.../cancel POST /tryon/v1/batches/c4b1s2.../cancel #
DELETE /tryon/v1/customers/user-123 DELETE /tryon/v1/customers/user-123 #
GET /tryon/v1/generations/cm8gen456xyz GET /tryon/v1/generations/cm8gen456xyz #
POST /tryon/v1/images/upload POST /tryon/v1/images/upload #
GET /tryon/v1/products GET /tryon/v1/products #
POST /tryon/v1/products POST /tryon/v1/products #
DELETE /tryon/v1/products/shirt-42 DELETE /tryon/v1/products/shirt-42 #
GET /tryon/v1/products/shirt-42 GET /tryon/v1/products/shirt-42 #
GET /tryon/v1/products/shirt-42/stats GET /tryon/v1/products/shirt-42/stats #
POST /tryon/v1/try-on POST /tryon/v1/try-on #
POST /tryon/v1/try-on/sync POST /tryon/v1/try-on/sync #
GET /upload GET /upload #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/genlook-app:tryon-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

genlook-app-tryon-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: Genlook tryon API
  version: '2026-11-09'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-11-09: 25 operation(s) read from 15 public documentation page(s) (each
    operation names its page in x-source). This is not the provider''s published contract; Genlook has published no machine-readable contract
    that the pipeline could find. Engine: local.'
  x-evidence-tiers:
    code-example: 16
    documentation: 14
    pages-with-code: 17
    pages-read: 23
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-11-09'
  x-generator: generate-contract-from-docs.py
  x-engine: local
  x-sources:
  - https://genlook.app/docs/tryon-api/breaking-changes
  - https://genlook.app/docs/tryon-api/endpoints/cancel-batch
  - https://genlook.app/docs/tryon-api/endpoints/check-credits
  - https://genlook.app/docs/tryon-api/endpoints/create-batch
  - https://genlook.app/docs/tryon-api/endpoints/create-product
  - https://genlook.app/docs/tryon-api/endpoints/create-try-on
  - https://genlook.app/docs/tryon-api/endpoints/create-try-on-sync
  - https://genlook.app/docs/tryon-api/endpoints/delete-customer
  - https://genlook.app/docs/tryon-api/endpoints/generation-status
  - https://genlook.app/docs/tryon-api/endpoints/list-products
  - https://genlook.app/docs/tryon-api/endpoints/product-stats
  - https://genlook.app/docs/tryon-api/endpoints/upload-image
  - https://genlook.app/docs/tryon-api/introduction
  - https://genlook.app/docs/tryon-api/mcp
  - https://genlook.app/docs/tryon-api/quickstart
  x-docs-section: tryon-api
servers:
- url: https://api.genlook.app
paths:
  /account/credits:
    get:
      operationId: get_account_credits
      tags:
      - Account
      summary: get_credits Credits left and the plans link.
      x-source: https://genlook.app/docs/tryon-api/mcp
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /generations:
    get:
      operationId: get_generations
      tags:
      - Generations
      summary: Migrating from the alpha - Genlook Documentation
      x-source: https://genlook.app/docs/tryon-api/breaking-changes
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /generations/{id}:
    get:
      operationId: get_generations_id
      tags:
      - Generations
      summary: get_try_on Gets a try-on, with the image once it is done.
      x-source: https://genlook.app/docs/tryon-api/mcp
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /images/upload:
    post:
      operationId: post_images_upload
      tags:
      - Images
      summary: add_photo_from_url Adds your photo from a public image link.
      x-source: https://genlook.app/docs/tryon-api/mcp
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /products:
    get:
      operationId: get_products
      tags:
      - Products
      summary: List, Get & Delete Products - Genlook Documentation
      x-source: https://genlook.app/docs/tryon-api/endpoints/list-products
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: number
        description: 'default: "50" 1 to 200.'
      - name: cursor
        in: query
        required: false
        schema:
          type: string
        description: nextCursor of the previous page.
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetProductsResponse'
      x-evidence:
        kind: documentation
    post:
      operationId: post_products
      tags:
      - Products
      summary: 'POST /products is optional: use it only for products that should never expire or should appear in GET /products.'
      x-source: https://genlook.app/docs/tryon-api/introduction
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /products/{externalid}:
    delete:
      operationId: delete_products_externalid
      tags:
      - Products
      summary: List, Get & Delete Products - Genlook Documentation
      x-source: https://genlook.app/docs/tryon-api/endpoints/list-products
      parameters:
      - name: externalid
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteProductsExternalidResponse'
      x-evidence:
        kind: documentation
    get:
      operationId: get_products_externalid
      tags:
      - Products
      summary: metadata object Any JSON, returned on GET /products/:externalId .
      description: Retrieves product metadata for the given externalId.
      x-source: https://genlook.app/docs/tryon-api/endpoints/create-try-on
      parameters:
      - name: externalid
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetProductsExternalidResponse'
      x-evidence:
        kind: documentation
    patch:
      operationId: patch_products_externalid
      tags:
      - Products
      summary: Migrating from the alpha - Genlook Documentation
      x-source: https://genlook.app/docs/tryon-api/breaking-changes
      parameters:
      - name: externalid
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /try-on:
    post:
      operationId: post_try_on
      tags:
      - Try On
      summary: try_on Puts a product on your current photo, from a product image link or an attached image.
      x-source: https://genlook.app/docs/tryon-api/mcp
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /try-on/sync:
    post:
      operationId: post_try_on_sync
      tags:
      - Try On
      summary: POST /try-on/sync
      description: Creates a try‑on synchronously using the same request body as the asynchronous create endpoint and returns the result immediately.
      x-source: https://genlook.app/docs/tryon-api/quickstart
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /tryon/v1/account/credits:
    get:
      operationId: get_tryon_v1_account_credits
      tags:
      - Tryon
      summary: GET /tryon/v1/account/credits
      x-source: https://genlook.app/docs/tryon-api/endpoints/check-credits
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTryonV1AccountCreditsResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl Node SDK curl \"https://api.genlook.app/tryon/v1/account/credits\"  -H \"x-api-key: gk_your_api_key\" \n const {creditBalance}\
          \ = await client . account . credits (); \n 200 { \n \"creditBalance\" : 422 \n } \n Account Check Credits Copy page Copy page Read\
          \ your remaining credit balance. Copy page Copy page GET / tryon / v1 / account / credits Try it cURL Node SDK curl \"https://api.genlook.app/tryon/v1/a"
  /tryon/v1/batches:
    post:
      operationId: post_tryon_v1_batches
      tags:
      - Tryon
      summary: POST /tryon/v1/batches
      x-source: https://genlook.app/docs/tryon-api/endpoints/create-batch
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostTryonV1BatchesRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl curl -X POST \"https://api.genlook.app/tryon/v1/batches\"  -H \"x-api-key: gk_your_api_key\"  -H \"Content-Type: application/json\"\
          \  -d '{ \n \"items\": [ \n { \n \"customId\": \"look-1\", \n \"products\": [{ \"externalId\": \"shirt-42\" }], \n \"person\": { \"\
          image\": { \"source\": { \"id\": \"ephemeral/customer/ttl-7d/...\" } } } \n }, \n { \n \"customId\": \"look-2\", \n \"products\": [{\
          \ \"externalId\": \"dress-7\" }], \n \"person\": { \"i"
  /tryon/v1/batches/c4b1s2.../cancel:
    post:
      operationId: post_tryon_v1_batches_c4b1s2_cancel
      tags:
      - Tryon
      summary: POST /tryon/v1/batches/c4b1s2.../cancel
      x-source: https://genlook.app/docs/tryon-api/endpoints/cancel-batch
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl curl -X POST \"https://api.genlook.app/tryon/v1/batches/c4b1s2.../cancel\"  -H \"x-api-key: gk_your_api_key\" \n Batches\
          \ Cancel Batch Copy page Copy page Stop the items of a batch that have not started. Copy page Copy page POST / tryon / v1 / batches\
          \ / {batchId} / cancel Try it cURL curl -X POST \"https://api.genlook.app/tryon/v1/batches/c4b1s2.../cancel\"  -H \"x-api-key: gk_your_api_key\"\
          \ \n Items th"
  /tryon/v1/customers/user-123:
    delete:
      operationId: delete_tryon_v1_customers_user_123
      tags:
      - Tryon
      summary: DELETE /tryon/v1/customers/user-123
      x-source: https://genlook.app/docs/tryon-api/endpoints/delete-customer
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl Node SDK curl -X DELETE \"https://api.genlook.app/tryon/v1/customers/user-123\"  -H \"x-api-key: gk_your_api_key\" \n await\
          \ client . customers . delete ( \"user-123\" ); \n Account Delete Customer Data Copy page Copy page GDPR erasure: delete every image\
          \ of one of your users. Copy page Copy page DELETE / tryon / v1 / customers / :externalUserId Try it cURL Node SDK curl -X DELETE \"\
          https://api.genlook"
  /tryon/v1/generations/cm8gen456xyz:
    get:
      operationId: get_tryon_v1_generations_cm8gen456xyz
      tags:
      - Tryon
      summary: GET /tryon/v1/generations/cm8gen456xyz
      x-source: https://genlook.app/docs/tryon-api/endpoints/generation-status
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTryonV1GenerationsCm8Gen456XyzResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl Node SDK (waitFor) Node SDK (single read) curl "https://api.genlook.app/tryon/v1/generations/cm8gen456xyz"  -H "x-api-key:
          gk_your_api_key" '
  /tryon/v1/images/upload:
    post:
      operationId: post_tryon_v1_images_upload
      tags:
      - Tryon
      summary: POST /tryon/v1/images/upload
      x-source: https://genlook.app/docs/tryon-api/endpoints/upload-image
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostTryonV1ImagesUploadResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl No crop Python Node SDK curl -X POST "https://api.genlook.app/tryon/v1/images/upload"  -H "x-api-key: gk_your_api_key"  -F
          "file=@customer.jpg" '
  /tryon/v1/products:
    get:
      operationId: get_tryon_v1_products
      tags:
      - Tryon
      summary: GET /tryon/v1/products
      x-source: https://genlook.app/docs/tryon-api/endpoints/list-products
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl "https://api.genlook.app/tryon/v1/products?limit=10"  -H "x-api-key: gk_your_api_key" '
    post:
      operationId: post_tryon_v1_products
      tags:
      - Tryon
      summary: POST /tryon/v1/products
      x-source: https://genlook.app/docs/tryon-api/endpoints/create-product
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostTryonV1ProductsRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostTryonV1ProductsResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -X POST \"https://api.genlook.app/tryon/v1/products\"  -H \"x-api-key: gk_your_api_key\"  -H \"Content-Type: application/json\"\
          \  -d '{ \n \"externalId\": \"shirt-42\", \n \"title\": \"Red cotton t-shirt\", \n \"description\": \"Regular fit crew neck tee, short\
          \ sleeves, hip length.\", \n \"images\": [ \n { \"source\": { \"url\": \"https://cdn.example.com/front.jpg\" } }, \n { \"source\": {\
          \ \"url\": \"https://cdn.example.com/back."
  /tryon/v1/products/shirt-42:
    delete:
      operationId: delete_tryon_v1_products_shirt_42
      tags:
      - Tryon
      summary: DELETE /tryon/v1/products/shirt-42
      x-source: https://genlook.app/docs/tryon-api/endpoints/list-products
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -X DELETE \"https://api.genlook.app/tryon/v1/products/shirt-42\"  -H \"x-api-key: gk_your_api_key\" \n const page = await\
          \ client . products . list ({ limit: 10 }); \n for await ( const p of client . products . iterate ()) console . log ( p . externalId\
          \ ); //all pages \n const product = await client . products . get ( \"shirt-42\" ); \n await client . products . delete ( \"shirt-42\"\
          \ ); \n List 404 { \n \"it"
    get:
      operationId: get_tryon_v1_products_shirt_42
      tags:
      - Tryon
      summary: GET /tryon/v1/products/shirt-42
      x-source: https://genlook.app/docs/tryon-api/endpoints/list-products
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl "https://api.genlook.app/tryon/v1/products/shirt-42"  -H "x-api-key: gk_your_api_key" '
  /tryon/v1/products/shirt-42/stats:
    get:
      operationId: get_tryon_v1_products_shirt_42_stats
      tags:
      - Tryon
      summary: GET /tryon/v1/products/shirt-42/stats
      x-source: https://genlook.app/docs/tryon-api/endpoints/product-stats
      parameters:
      - name: from
        in: query
        required: false
        schema:
          type: string
      - name: to
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTryonV1ProductsShirt42StatsResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl Node SDK curl \"https://api.genlook.app/tryon/v1/products/shirt-42/stats?from=2026-04-01T00:00:00Z&to=2026-05-01T00:00:00Z\"\
          \  -H \"x-api-key: gk_your_api_key\" \n const stats = await client . products . stats ( \"shirt-42\" , { \n from: new Date ( \"2026-04-01\"\
          \ ), //optional, Date or ISO string \n to: new Date ( \"2026-05-01\" ), \n }); \n 200 { \n \"totalGenerations\" : 187 , \n \"completedGenerations\"\
          \ : 181 ,"
  /tryon/v1/try-on:
    post:
      operationId: post_tryon_v1_try_on
      tags:
      - Tryon
      summary: POST /tryon/v1/try-on
      x-source: https://genlook.app/docs/tryon-api/endpoints/create-try-on
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostTryonV1TryOnRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostTryonV1TryOnResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -X POST \"https://api.genlook.app/tryon/v1/try-on\"  -H \"x-api-key: gk_your_api_key\"  -H \"Content-Type: application/json\"\
          \  -d '{ \n \"products\": [{ \n \"externalId\": \"shirt-42\", \n \"title\": \"Red cotton t-shirt\", \n \"description\": \"Regular fit\
          \ crew neck tee, short sleeves, hip length.\", \n \"images\": [ \n { \"source\": { \"url\": \"https://cdn.example.com/red-tee-front.jpg\"\
          \ } }, \n { \"source\": { \"url\": \"https:"
  /tryon/v1/try-on/sync:
    post:
      operationId: post_tryon_v1_try_on_sync
      tags:
      - Tryon
      summary: POST /tryon/v1/try-on/sync
      x-source: https://genlook.app/docs/tryon-api/endpoints/create-try-on-sync
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostTryonV1TryOnSyncRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostTryonV1TryOnSyncResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl Python Node SDK JavaScript curl -X POST \"https://api.genlook.app/tryon/v1/try-on/sync\"  -H \"x-api-key: gk_your_api_key\"\
          \  -H \"Content-Type: application/json\"  --max-time 100  -d '{ \n \"products\": [{ \n \"externalId\": \"shirt-42\", \n \"title\": \"\
          Red cotton t-shirt\", \n \"description\": \"Regular fit crew neck tee, short sleeves, hip length.\", \n \"images\": [ \n { \"source\"\
          : { \"url\": \"https://cdn.example.com/r"
  /upload:
    get:
      operationId: get_upload
      tags:
      - Upload
      summary: GET /upload
      x-source: https://genlook.app/docs/tryon-api/mcp
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -F \"file=@/path/to/photo.jpg\" https://mcp.genlook.app/upload/ < toke n > \n Coding-agent sandboxes may ask you once to\
          \ allow network access for this. \n Your photo stays the current one for your next try-ons until you add another or it expires. \n ​\
          \ Example prompts \n “Here’s a dress I like: <URL>. Show me wearing it.” \n “Try this shirt with these trousers: <URL> and <URL>.” \n\
          \ “Use this photo of "
security:
- apiKey: []
components:
  schemas:
    GetProductsResponse:
      type: object
      properties:
        items:
          type: array
          description: list of products
        nextCursor:
          type: string
          description: null on the last page
        hasMore:
          type: boolean
        count:
          type: integer
        externalId:
          type: string
          description: required
        title:
          type: string
          description: required
        description:
          type: string
          description: required
        images:
          type: array
          description: required
        metadata:
          type: object
        validForDays:
          type: integer
          description: Lifetime after last use. null means forever.
        lastUsedAt:
          type: string
          description: Last try-on on this product.
        expiresAt:
          type: string
          description: Deletion date if unused. null when kept forever.
        createdAt:
          type: string
          description: required
        updatedAt:
          type: string
          description: required
    DeleteProductsExternalidResponse:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
        status:
          type: integer
    GetProductsExternalidResponse:
      type: object
      properties:
        metadata:
          type: object
          description: Any JSON, returned on GET /products/:externalId.
    GetTryonV1AccountCreditsResponse:
      type: object
      properties:
        creditBalance:
          type: integer
    PostTryonV1BatchesRequest:
      type: object
      properties:
        items:
          type: array
          items:
            type: object
            properties:
              customId:
                type: string
              products:
                type: array
                items:
                  type: object
                  properties:
                    externalId:
                      type: string
              person:
                type: object
                properties:
                  image:
                    type: object
                    properties:
                      source:
                        type: object
                        properties:
                          id:
                            type: string
    GetTryonV1GenerationsCm8Gen456XyzResponse:
      type: object
      properties:
        generationId:
          type: string
        status:
          type: string
        resultImageUrl:
          type: string
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
    PostTryonV1ImagesUploadResponse:
      type: object
      properties:
        imageId:
          type: string
        imageUrl:
          type: string
    PostTryonV1ProductsRequest:
      type: object
      properties:
        externalId:
          type: string
        title:
          type: string
        description:
          type: string
        images:
          type: array
          items:
            type: object
            properties:
              source:
                type: object
                properties:
                  url:
                    type: string
    PostTryonV1ProductsResponse:
      type: object
      properties:
        externalId:
          type: string
        title:
          type: string
        description:
          type: string
        images:
          type: array
          items:
            type: object
            properties:
              sourceUrl:
                type: string
              classifications:
                type: object
              order:
                type: integer
        metadata:
          type:
          - string
          - 'null'
        validForDays:
          type:
          - string
          - 'null'
        expiresAt:
          type:
          - string
          - 'null'
        lastUsedAt:
          type:
          - string
          - 'null'
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
    GetTryonV1ProductsShirt42StatsResponse:
      type: object
      properties:
        totalGenerations:
          type: integer
        completedGenerations:
          type: integer
        failedGenerations:
          type: integer
        avgGenerationTimeMs:
          type: integer
    PostTryonV1TryOnRequest:
      type: object
      properties:
        products:
          type: array
          items:
            type: object
            properties:
              externalId:
                type: string
              title:
                type: string
              description:
                type: string
              images:
                type: array
                items:
                  type: object
                  properties:
                    source:
                      type: object
                      properties:
                        url:
                          type: string
        person:
          type: object
          properties:
            image:
              type: object
              properties:
                source:
                  type: object
                  properties:
                    id:
                      type: string
    PostTryonV1TryOnResponse:
      type: object
      properties:
        generationId:
          type: string
        status:
          type: string
        productExternalIds:
          type: array
          items:
            type: string
    PostTryonV1TryOnSyncRequest:
      type: object
      properties:
        products:
          type: array
          items:
            type: object
            properties:
              externalId:
                type: string
              title:
                type: string
              description:
                type: string
              images:
                type: array
                items:
                  type: object
                  properties:
                    source:
                      type: object
                      properties:
                        url:
                          type: string
        person:
          type: object
          properties:
            image:
              type: object
              properties:
                source:
                  type: object
                  properties:
                    url:
                      type: string
    PostTryonV1TryOnSyncResponse:
      type: object
      properties:
        externalId:
          type: string
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: Authorization
tags:
- name: Account
- name: Generations
- name: Images
- name: Products
- name: Try On
- name: Tryon
- name: Upload