Crayonz Photoshoot API
Model and product photoshoots from a design or mockup
Model and product photoshoots from a design or mockup
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/crayonz-ai:crayonz-ai-photoshoot-api"
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.
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: 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