FLAM

Text tools

5 Text tools routes on the FLAM API: 20 facial-feature keywords from a portrait (vision lane); Categorized keyword sets for a vibe; Generate N varied.

Base URL https://api.flam.fashion. Send Authorization: Bearer flam_sk_… on every call; a handful of routes are session-only and say so. How keys and roles work.

POST /api/toolkit/ai/face-features

20 facial-feature keywords from a portrait (vision lane)

Request bodyapplication/json (required)

FieldTypeRequiredNotes
imageUrlstringno
{
  "imageUrl": "string"
}

Responses

StatusMeaning
200Keywords (empty + faceDetected=false when no face)
400IMAGE_REQUIRED | EMPTY_IMAGE | BAD_FORM
401No valid session
402AI_NEEDS_BILLING
413IMAGE_TOO_LARGE
502AI_BAD_OUTPUT | AI_FAILED
503AI_NOT_CONFIGURED

200 returns:

{
  "ok": true,
  "faceDetected": true,
  "keywords": [
    "string"
  ]
}

Call it

curl -X POST "https://api.flam.fashion/api/toolkit/ai/face-features" \
  -H "Authorization: Bearer $FLAM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"imageUrl":"string"}'

POST /api/toolkit/ai/inspiration-keywords

Categorized keyword sets for a vibe

Request bodyapplication/json (required)

FieldTypeRequiredNotes
vibestringyes
{
  "vibe": "string"
}

Responses

StatusMeaning
200Keyword categories
400VIBE_REQUIRED
401No valid session
402AI_NEEDS_BILLING
502AI_BAD_OUTPUT | AI_FAILED
503AI_NOT_CONFIGURED

200 returns:

{
  "ok": true,
  "categories": [
    {
      "category": "string",
      "keywords": [
        "string"
      ]
    }
  ]
}

Call it

curl -X POST "https://api.flam.fashion/api/toolkit/ai/inspiration-keywords" \
  -H "Authorization: Bearer $FLAM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"vibe":"string"}'

POST /api/toolkit/ai/midjourney-prompts

Generate N varied shot prompts from a reference description

Request bodyapplication/json (required)

FieldTypeRequiredNotes
descriptionstringyes
directionstringno
countintegerno
{
  "description": "string",
  "direction": "string",
  "count": 0
}

Responses

StatusMeaning
200Labeled shot prompts
400DESCRIPTION_REQUIRED
401No valid session
402AI_NEEDS_BILLING
502AI_BAD_OUTPUT | AI_FAILED
503AI_NOT_CONFIGURED

200 returns:

{
  "ok": true,
  "shots": [
    {
      "label": "string",
      "prompt": "string"
    }
  ]
}

Call it

curl -X POST "https://api.flam.fashion/api/toolkit/ai/midjourney-prompts" \
  -H "Authorization: Bearer $FLAM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"description":"string","direction":"string","count":0}'

POST /api/toolkit/ai/prompt-builder

Build one photographic prompt from a subject

Request bodyapplication/json (required)

FieldTypeRequiredNotes
subjectstringyes
vibestringno
{
  "subject": "string",
  "vibe": "string"
}

Responses

StatusMeaning
200The built prompt
400SUBJECT_REQUIRED
401No valid session
402AI_NEEDS_BILLING
502AI_BAD_OUTPUT | AI_FAILED
503AI_NOT_CONFIGURED

200 returns:

{
  "ok": true,
  "prompt": "string"
}

Call it

curl -X POST "https://api.flam.fashion/api/toolkit/ai/prompt-builder" \
  -H "Authorization: Bearer $FLAM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"subject":"string","vibe":"string"}'

POST /api/toolkit/ai/prompt-enhancer

Improve a rough prompt (sync text lane)

Request bodyapplication/json (required)

FieldTypeRequiredNotes
promptstringyes
intentstringno
{
  "prompt": "string",
  "intent": "string"
}

Responses

StatusMeaning
200Improved prompt + notes
400PROMPT_REQUIRED
401No valid session
402AI_NEEDS_BILLING
502AI_BAD_OUTPUT | AI_FAILED
503AI_NOT_CONFIGURED

200 returns:

{
  "ok": true,
  "improved": "string",
  "notes": [
    "string"
  ]
}

Call it

curl -X POST "https://api.flam.fashion/api/toolkit/ai/prompt-enhancer" \
  -H "Authorization: Bearer $FLAM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt":"string","intent":"string"}'