Layers

PATCH /v1/influencers/:influencerId

Update identity fields on an influencer in place.

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

Patch identity fields you want to change. Everything omitted is left alone. The body is strict — unknown fields are rejected. Returns the full updated record.

Path parameters

  • influencerId
    string (uuid)required
    The influencer id.

Body

Body (all optional, at least one)
  • name
    stringoptional
    Display name (1-128).
  • gender
    string | nulloptional
    Pass null to clear.
    One of: male, female, nonbinary, unspecified
  • ageRange
    string | nulloptional
    Pass null to clear.
  • ethnicity
    string | nulloptional
  • bodyType
    string | nulloptional
  • hairColor
    string | nulloptional
  • hairStyle
    string | nulloptional
  • style
    string | nulloptional
  • vibe
    string | nulloptional
  • voiceDescription
    string | nulloptional
  • personality
    objectoptional
    Nested partial. Merges with existing traits — pass only the keys you want to change.

Reference images aren't patched here; use POST /v1/influencers/:influencerId/reference-images.

Request

terminal
curl -X PATCH https://api.layers.com/v1/influencers/{influencerId} \
  -H "X-Api-Key: $LAYERS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "vibe": "precise and energetic", "personality": { "humor": "observational" } }'
patch-influencer.ts
const res = await fetch(
  `https://api.layers.com/v1/influencers/${influencerId}`,
  {
    method: 'PATCH',
    headers: {
      'X-Api-Key': process.env.LAYERS_API_KEY!,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({ vibe: 'precise and energetic' }),
  },
);
const influencer = await res.json();
patch_influencer.py
import os, httpx

r = httpx.patch(
    f"https://api.layers.com/v1/influencers/{influencer_id}",
    headers={
        "X-Api-Key": os.environ["LAYERS_API_KEY"],
        "Content-Type": "application/json",
    },
    json={"vibe": "precise and energetic"},
)
influencer = r.json()

Responses

200Full updated influencer row (same shape as GET).
{
  "influencerId": "inf_01HXZ9...",
  "projectId": "proj_01HX...",
  "name": "Ava Chen",
  "gender": "female",
  "ageRange": "25-34",
  "vibe": "precise and energetic",
  "personality": {
    "traits": ["curious", "warm", "direct"],
    "humor": "observational"
  },
  "referenceImages": [],
  "status": "ready",
  "createdAt": "2026-04-01T14:22:10Z",
  "updatedAt": "2026-04-18T09:18:44Z"
}
422Validation failed — bad enum, unknown field, or wrong type.
{
  "error": {
    "code": "VALIDATION",
    "message": "Invalid body.",
    "requestId": "req_...",
    "details": { "fieldErrors": { "gender": ["Invalid enum value"] } }
  }
}
404Influencer not in this org, or deleted.
{
  "error": {
    "code": "NOT_FOUND",
    "message": "Influencer not found.",
    "requestId": "req_..."
  }
}

Notes

  • Personality is merged, not replaced. The server reads existing personality JSON and shallow-merges your patch. To clear a key, set it to null explicitly.
  • Attributes outside the schema are dropped. Unknown fields produce a VALIDATION response.

Errors

CodeWhen
VALIDATIONBad type, unknown field, enum out of range.
NOT_FOUNDInfluencer not in this org.
FORBIDDEN_SCOPEKey lacks influencers:write.

See also

On this page