Crayonz Photoshoot API

Model and product photoshoots from a design or mockup

GitHub OpenAPI

Operations 3

POST /api/photoshoot/v3/generate Model photoshoot #
POST /api/photoshoot/v3/generate-product Product photoshoot #
POST /api/photoshoot/recommend-vibes Recommend photoshoot vibes #

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/crayonz-ai:crayonz-ai-photoshoot-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

crayonz-ai-photoshoot-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Crayonz Ai Photoshoot API
  version: 1.0.0
  contact:
    name: Crayonz API Support
    url: https://crayonz.ai/api-console
  description: 'Operations tagged Photoshoot across 2 of this provider''s published API definitions: crayonz-ai-openapi.json, crayonz-ai-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.crayonz.ai
  description: Production
security:
- ApiKeyAuth: []
tags:
- name: Photoshoot
  description: Model and product photoshoots from a design or mockup
paths:
  /api/photoshoot/v3/generate:
    post:
      summary: Model photoshoot
      description: Editorial photos of a real-looking model wearing your design. Pass the transparent design and, for a faithful print, the front mockup from /api/mockup/render. Pick a vibe (skater, streetwear, minimal, gym, festival, …) or ask /api/photoshoot/recommend-vibes first. Returns one URL per shot with the pose, cast and location used; check succeeded against requested.
      tags:
      - Photoshoot
      operationId: design_pipeline_photoshoot_model
      security:
      - ApiKeyAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                design_reference_url:
                  type: string
                  description: Public https URL of the transparent design PNG (file_url from /api/design/custom)
                  example: https://…/design.png
                front_side:
                  type: object
                  description: '{ mockup_url, design_url } for the front of the garment — mockup_url should be the /api/mockup/render output so the print is placed exactly'
                  example:
                    mockup_url: https://…/mockups/…/front.png
                    design_url: https://…/design.png
                back_side:
                  type: object
                  description: Same shape as front_side, for back-print designs
                garment_type:
                  type: string
                  description: tshirt, oversized_tshirt, hoodie, zipper_hoodie, polo, acid_wash_tshirt
                  example: hoodie
                garment_color_hex:
                  type: string
                  description: 'Garment colour as #rrggbb'
                  example: '#000000'
                garment_color_name:
                  type: string
                  description: Garment colour name, used in the prompt
                  example: black
                pattern:
                  type: string
                  description: Which side carries the print
                  example: front
                  enum:
                  - front
                  - back
                vibe:
                  type: string
                  description: streetwear, minimal, grit, y2k, kinfolk, editorial, hiphop, sports_fan, festival, academia, techwear, gym, retro_90s, beach, punk, outdoor_adventure, anime_otaku, skater, corporate_casual, college_campus, funny, casual_kickback, date_night, gamer, music_scene, football_fan, cricket_fan, f1_fan, basketball_fan
                  example: skater
                shot_count:
                  type: integer
                  description: 1–6 shots; the default rotation is front hero, back view, detail
                  example: 2
                shot_types:
                  type: array
                  description: 'Optional per-shot types, same length as shot_count: front_hero, back_view, detail_context, mirror_selfie, phone_selfie, disposable_cam, polaroid, duo_matching, friends_group, couple, crowd_solo, …'
                  items:
                    type: string
                seed:
                  type: integer
                  description: Repeat a batch with the same casting and locations
                  example: 0
              required:
              - design_reference_url
            example:
              design_reference_url: https://…/design.png
              front_side:
                mockup_url: https://…/mockups/…/front.png
                design_url: https://…/design.png
              garment_type: hoodie
              garment_color_hex: '#000000'
              garment_color_name: black
              pattern: front
              vibe: skater
              shot_count: 2
              seed: 0
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  shots:
                    type: array
                    description: 'One entry per successful shot: shot_type, url, pose_used, cast_used, location_used, cost_usd'
                    items:
                      type: object
                  requested:
                    type: integer
                    description: shot_count from the request
                  succeeded:
                    type: integer
                    description: How many of the requested shots actually came back — check this against requested
                  failure_reason:
                    type:
                    - string
                    - 'null'
                    description: Set when succeeded < requested; null otherwise
                  model_used:
                    type: string
              example:
                shots:
                - shot_type: front_hero
                  url: https://…/model-shots-v3/…/a.png
                  pose_used: hand-through-hair mid-motion
                  cast_used: a woman in her forties …
                  location_used: concrete quarter-pipe against a warehouse wall
                  cost_usd: 0.09
                - shot_type: back_view
                  url: https://…/model-shots-v3/…/b.png
                  pose_used: over-the-shoulder glance walking away
                  cast_used: a man in his sixties …
                  location_used: empty basketball court
                  cost_usd: 0.09
                requested: 2
                succeeded: 2
                failure_reason: null
                model_used: gemini-3.1-flash-image
        '401':
          description: Unauthorized — invalid or missing API key
        '402':
          description: Insufficient credits
        '429':
          description: Rate limit exceeded
    servers:
    - url: https://api.crayonz.ai
      description: Production
  /api/photoshoot/v3/generate-product:
    post:
      summary: Product photoshoot
      description: Catalogue photos of the garment alone — packshots, flatlays, hanging and detail shots — from the mockup /api/mockup/render produced, so colour and print stay exact. Pick one to twelve shot types and a style.
      tags:
      - Photoshoot
      operationId: design_pipeline_photoshoot_product
      security:
      - ApiKeyAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                compositor_flatlay_url:
                  type: string
                  description: Front mockup_url from /api/mockup/render (the colour-true reference)
                  example: https://…/mockups/…/front.png
                back_flatlay_url:
                  type: string
                  description: Back mockup_url, used for shots whose side is back
                shot_types:
                  type: array
                  description: packshot_white, flatlay_overhead, flatlay_stack, hanging_hanger, hanging_rope, backlit_window, fabric_face, collar_rib, seam_stitch, care_label, on_bed_props, on_chair_back, next_to_sneaker, size_compare_layflat, fingertips_wall, half_tuck_waistband, pocket_shot, wide_flatlay, hanging_hanger_wide
                  example:
                  - packshot_white
                  - flatlay_overhead
                  items:
                    type: string
                shot_sides:
                  type: array
                  description: front or back per shot, same length as shot_types; defaults to front
                  items:
                    type: string
                style_preset:
                  type: string
                  example: studio_clean
                  enum:
                  - studio_clean
                  - editorial_moody
                  - catalog_flat
                  - lifestyle_warm
                style_reference_url:
                  type: string
                  description: Optional mood-board or campaign photo to match
                garment_type:
                  type: string
                  description: tshirt, oversized_tshirt, hoodie, zipper_hoodie, polo, acid_wash_tshirt
                  example: tshirt
                garment_color_hex:
                  type: string
                  example: '#ffffff'
                garment_color_name:
                  type: string
                  example: white
                seed:
                  type: integer
                  example: 0
              required:
              - compositor_flatlay_url
              - shot_types
            example:
              compositor_flatlay_url: https://…/mockups/…/front.png
              shot_types:
              - packshot_white
              - flatlay_overhead
              style_preset: studio_clean
              garment_type: tshirt
              garment_color_hex: '#ffffff'
              garment_color_name: white
              seed: 0
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  shots:
                    type: array
                    description: 'One entry per shot: shot_type, visible_side, url, style_preset, cost_usd'
                    items:
                      type: object
                  model_used:
                    type: string
              example:
                shots:
                - shot_type: packshot_white
                  visible_side: front
                  url: https://…/product-shots-v1/…/a.png
                  style_preset: studio_clean
                  cost_usd: 0.09
                - shot_type: flatlay_overhead
                  visible_side: front
                  url: https://…/product-shots-v1/…/b.png
                  style_preset: studio_clean
                  cost_usd: 0.09
                model_used: gemini-3.1-flash-image
        '401':
          description: Unauthorized — invalid or missing API key
        '402':
          description: Insufficient credits
        '429':
          description: Rate limit exceeded
    servers:
    - url: https://api.crayonz.ai
      description: Production
  /api/photoshoot/recommend-vibes:
    post:
      summary: Recommend photoshoot vibes
      description: Ranks the model-photoshoot vibes for a design from its title and description, with a one-line reason each. One credit; use the top result as the vibe for /api/photoshoot/v3/generate.
      tags:
      - Photoshoot
      operationId: design_pipeline_photoshoot_vibes
      security:
      - ApiKeyAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                  description: Design title or the idea you generated it from
                  example: U.O.S. Skate Co. campus skate supplies badge
                description:
                  type: string
                  description: What is in the design
                  example: Vintage circular badge with a bulldog on a skateboard, gold and black
                top_k:
                  type: integer
                  description: 1–5 recommendations
                  example: 3
                image_url:
                  type: string
                  description: Optional design URL so the ranking can look at the artwork
              required:
              - title
            example:
              title: U.O.S. Skate Co. campus skate supplies badge
              description: Vintage circular badge with a bulldog on a skateboard, gold and black
              top_k: 3
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  recommendations:
                    type: array
                    description: 'Up to top_k entries, ranked: vibe, confidence (0–1), why'
                    items:
                      type: object
                  model_used:
                    type: string
              example:
                recommendations:
                - vibe: skater
                  confidence: 0.95
                  why: Directly references 'Skate Co.' and a skateboard.
                - vibe: sports_fan
                  confidence: 0.85
                  why: Bulldog mascot and collegiate gear read as team apparel.
                model_used: gemini-3.8-flash
        '401':
          description: Unauthorized — invalid or missing API key
        '402':
          description: Insufficient credits
        '429':
          description: Rate limit exceeded
    servers:
    - url: https://api.crayonz.ai
      description: Production
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: API key prefixed cz_live_ (production) or cz_test_ (sandbox).
x-refined-from:
- crayonz-ai-openapi.json
- crayonz-ai-openapi.yml