Skip to content

Models, styles and scenes

A shoot puts your product photo into a scene. A scene is one model in one pose in one style, and only a scene whose status is ready can be shot with.

Terminal window
curl https://api.shootika.com/v1/models \
-H "Authorization: Bearer $SHOOTIKA_API_KEY"

Each model has an id, a name, is_custom, gender_presentation, body_type, skin_tone (from 1, very light, to 6, dark; 0 when not specified), the poses it can take, and a preview image (or null when there is none yet). The list is not paged.

Terminal window
curl https://api.shootika.com/v1/styles \
-H "Authorization: Bearer $SHOOTIKA_API_KEY"

A style is a look and setting. Each has a key, a name and a description. A style with is_reference: true was made from a photo you uploaded in the web app. The list is not paged.

Send a model’s id, a style’s key, and one of that model’s poses:

Terminal window
curl https://api.shootika.com/v1/scenes \
-H "Authorization: Bearer $SHOOTIKA_API_KEY" \
-H "Content-Type: application/json" \
-d "{\"model_id\": \"$MODEL_ID\", \"style\": \"$STYLE\", \"pose\": \"$POSE\"}"
  • 200: your store already had this scene, and it is returned as it is. If it had failed, it is requested again.
  • 201: the scene was added to your store now. It may already be ready; if its status is generating, it is being prepared, which can take a minute or more.
  • 404 not_found: that model does not exist or your store cannot use it.
  • 422 validation_error: a field is missing, or the style or the pose is not one this model can take. The details name the fields.

Requesting the same scene twice is safe: the second request returns the scene you already have.

Terminal window
curl https://api.shootika.com/v1/scenes/$SCENE_ID \
-H "Authorization: Bearer $SHOOTIKA_API_KEY"

Poll until status is ready. If it is failed, request it again with POST /v1/scenes. A ready scene has a preview in image.

Terminal window
curl "https://api.shootika.com/v1/scenes?status=ready" \
-H "Authorization: Bearer $SHOOTIKA_API_KEY"

Filter with model (a model id), style, pose and status (ready, generating or failed). A model that matches nothing gives an empty list, not an error. A status that is not one of those three answers 422 validation_error. The list is paged with page and page_size.

The list can include scenes whose style is not in GET /v1/styles: these are scenes made from your own uploaded pose photos. Use them like any other scene.

Rarely, POST /v1/frames refuses a listed scene with 422 scene_unsupported. Pick another scene and start the shoot again.