Skip to main content

POST /api/recipes

Creates a new Fujifilm film simulation recipe.
Requires authentication.

Request Body

{
  "title": "Classic Chrome Street",
  "description": "Moody street photography look",
  "cameraModel": "X-T5",
  "filmSimulation": "Classic Chrome",
  "dynamicRange": "DR200",
  "grainEffect": "Weak Small",
  "colorChromeEffect": "Strong",
  "colorChromeEffectBlue": "Weak",
  "whiteBalanceMode": "Daylight",
  "whiteBalanceKelvin": 5500,
  "whiteBalanceRed": 2,
  "whiteBalanceBlue": -3,
  "highlight": -1,
  "shadow": 2,
  "color": 1,
  "sharpness": -2,
  "noiseReduction": -3,
  "clarity": 0,
  "isoSetting": "Auto",
  "exposureCompensation": "+2/3",
  "tags": ["street", "moody", "urban"],
  "images": [
    { "imageUrl": "https://...", "isCover": true, "order": 1 },
    { "imageUrl": "https://...", "isCover": false, "order": 2 }
  ]
}

Fujifilm Settings

FieldTypeRange/Options
filmSimulationstringProvia, Velvia, Astia, Classic Chrome, Classic Neg, Eterna, Acros, Nostalgic Neg, Reala Ace, etc.
dynamicRangestringDR100, DR200, DR400, Auto
grainEffectstringOff, Weak Small, Weak Large, Strong Small, Strong Large
colorChromeEffectstringOff, Weak, Strong
whiteBalanceModestringAuto, Daylight, Shade, Fluorescent 1/2/3, Incandescent, Underwater, Kelvin
highlightinteger-2 to +4
shadowinteger-2 to +4
colorinteger-4 to +4
sharpnessinteger-4 to +4
noiseReductioninteger-4 to +4
clarityinteger-5 to +5

Response (201)

{
  "message": "Recipe created successfully",
  "recipe": {
    "id": "uuid",
    "title": "Classic Chrome Street",
    ...
  }
}

Errors

StatusCodeReason
400VALIDATION_ERRORInvalid fields or out-of-range settings
401UNAUTHORIZEDNot authenticated