Layers

GET /v1/influencers/:influencerId

Read one influencer, including reference images and identity fields.

View as Markdown
GET/v1/influencers/:influencerId
Phase 1stable
Auth
Bearer
Scope
influencers:write

Returns the full influencer record. Influencer ids are globally unique - the path is not nested under a project. Access is gated by the influencer's project belonging to your org; cross-org reads collapse to 404 NOT_FOUND.

Path parameters

  • influencerId
    string (uuid)required
    The influencer id.

Request

terminal
curl https://api.layers.com/v1/influencers/{influencerId} \
  -H "Authorization: Bearer $LAYERS_API_KEY"
get-influencer.ts
const res = await fetch(
  `https://api.layers.com/v1/influencers/${influencerId}`,
  { headers: { 'Authorization': `Bearer ${process.env.LAYERS_API_KEY}` } },
);
const influencer = await res.json();
get_influencer.py
import os, httpx

r = httpx.get(
    f"https://api.layers.com/v1/influencers/{influencer_id}",
    headers={"Authorization": f"Bearer {os.environ[\'LAYERS_API_KEY\']}"},
)
influencer = r.json()

Responses

200Full influencer record.
{
  "influencerId": "inf_4a8e1bc2...",
  "projectId": "prj_9e2dca1f...",
  "name": "Ava Chen",
  "imageUrl": "https://media.layers.com/.../ava.png",
  "gender": "female",
  "ageRange": "young_adult",
  "brandVoice": "casual",
  "language": "en",
  "status": "ready",
  "errorMessage": null,
  "createdAt": "2026-04-01T14:22:10Z",
  "updatedAt": "2026-04-10T09:00:00Z"
}
404Influencer not in this org, or soft-deleted.
{
  "error": {
    "code": "NOT_FOUND",
    "message": "Influencer not found.",
    "requestId": "req_..."
  }
}

Field semantics

  • status - pending | training | ready | failed. Only ready influencers are usable for content generation without waiting.
  • imageUrl - URL of the generated face image (the primary artifact of the create-influencer workflow). null until status === 'ready'. Always a permanent CDN URL — no expiration, safe to cache or hotlink.
  • gender - male | female | non_binary. Never null — content generation requires a gender mapping, so the column carries a real value (server default: female). Partners that omit gender on create get the project's targetGender if usable, else female.
  • ageRange - teen | young_adult | adult | mid_adult | mature | senior. Never null — content generation reads this to pick persona presets, so every row carries a real value (server default: young_adult when omitted on create; auto-created influencers inherit from the project's target audience).
  • brandVoice - authentic | witty | professional | warm | casual | educational. Drives tone in generated captions, hooks, and engagement comments. Defaults to authentic for influencers created without an explicit value. Influencers are the source of truth for voice — there's no per-content override.
  • language - BCP 47 locale tag (en, en-US, pt-BR, zh-Hans-CN). Defaults to en. To run the same character in multiple languages, clone the influencer with a different language rather than swapping it per piece of content.
  • errorMessage - Populated only when status === 'failed'; explains why the create workflow failed (Gemini quota, content-policy block, transient infra). null on every other status.
  • Soft-deleted influencers return 404. DELETE flips is_archived; they disappear from GET as well as list. There is no way to retrieve a deleted influencer via the partner API.

Errors

CodeWhen
NOT_FOUNDId not in this org, or soft-deleted.
FORBIDDEN_SCOPEKey lacks influencers:write.

See also

On this page