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 body — application/json (required)
| Field | Type | Required | Notes |
|---|---|---|---|
imageUrl | string | no | — |
{
"imageUrl": "string"
}Responses
| Status | Meaning |
|---|---|
200 | Keywords (empty + faceDetected=false when no face) |
400 | IMAGE_REQUIRED | EMPTY_IMAGE | BAD_FORM |
401 | No valid session |
402 | AI_NEEDS_BILLING |
413 | IMAGE_TOO_LARGE |
502 | AI_BAD_OUTPUT | AI_FAILED |
503 | AI_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 body — application/json (required)
| Field | Type | Required | Notes |
|---|---|---|---|
vibe | string | yes | — |
{
"vibe": "string"
}Responses
| Status | Meaning |
|---|---|
200 | Keyword categories |
400 | VIBE_REQUIRED |
401 | No valid session |
402 | AI_NEEDS_BILLING |
502 | AI_BAD_OUTPUT | AI_FAILED |
503 | AI_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 body — application/json (required)
| Field | Type | Required | Notes |
|---|---|---|---|
description | string | yes | — |
direction | string | no | — |
count | integer | no | — |
{
"description": "string",
"direction": "string",
"count": 0
}Responses
| Status | Meaning |
|---|---|
200 | Labeled shot prompts |
400 | DESCRIPTION_REQUIRED |
401 | No valid session |
402 | AI_NEEDS_BILLING |
502 | AI_BAD_OUTPUT | AI_FAILED |
503 | AI_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 body — application/json (required)
| Field | Type | Required | Notes |
|---|---|---|---|
subject | string | yes | — |
vibe | string | no | — |
{
"subject": "string",
"vibe": "string"
}Responses
| Status | Meaning |
|---|---|
200 | The built prompt |
400 | SUBJECT_REQUIRED |
401 | No valid session |
402 | AI_NEEDS_BILLING |
502 | AI_BAD_OUTPUT | AI_FAILED |
503 | AI_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 body — application/json (required)
| Field | Type | Required | Notes |
|---|---|---|---|
prompt | string | yes | — |
intent | string | no | — |
{
"prompt": "string",
"intent": "string"
}Responses
| Status | Meaning |
|---|---|
200 | Improved prompt + notes |
400 | PROMPT_REQUIRED |
401 | No valid session |
402 | AI_NEEDS_BILLING |
502 | AI_BAD_OUTPUT | AI_FAILED |
503 | AI_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"}'