# GET /v1/influencers/:influencerId (/docs/api/reference/influencers/get-influencer)



<Endpoint method="GET" path="/v1/influencers/:influencerId" scope="influencers:write" phase="1" />

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 [#path-parameters]

<Parameters
  rows="[
  { name: 'influencerId', type: 'string (uuid)', required: true, description: 'The influencer id.' },
]"
/>

## Request [#request]

<Tabs items="['curl', 'TypeScript', 'Python']">
  <Tab value="curl">
    ```sh title="terminal"
    curl https://api.layers.com/v1/influencers/{influencerId} \
      -H "X-Api-Key: $LAYERS_API_KEY"
    ```
  </Tab>

  <Tab value="TypeScript">
    ```ts title="get-influencer.ts"
    const res = await fetch(
      `https://api.layers.com/v1/influencers/${influencerId}`,
      { headers: { 'X-Api-Key': process.env.LAYERS_API_KEY! } },
    );
    const influencer = await res.json();
    ```
  </Tab>

  <Tab value="Python">
    ```py title="get_influencer.py"
    import os, httpx

    r = httpx.get(
        f"https://api.layers.com/v1/influencers/{influencer_id}",
        headers={"X-Api-Key": os.environ["LAYERS_API_KEY"]},
    )
    influencer = r.json()
    ```
  </Tab>
</Tabs>

## Responses [#responses]

<Response status="200" description="Full influencer record.">
  ```json
  {
    "influencerId": "inf_01HXZ9...",
    "projectId": "proj_01HX...",
    "name": "Ava Chen",
    "gender": "female",
    "ageRange": "25-34",
    "ethnicity": null,
    "bodyType": null,
    "hairColor": null,
    "hairStyle": null,
    "style": "minimalist streetwear",
    "vibe": "warm and curious",
    "voiceDescription": null,
    "personality": {
      "traits": ["curious", "warm", "direct"],
      "tone": "conversational",
      "humor": "dry"
    },
    "referenceImages": [
      {
        "assetId": "asset_01HXZ9...",
        "url": "https://media.layers.com/.../ava-01.jpg",
        "thumbnailUrl": "https://media.layers.com/.../ava-01-thumb.jpg",
        "addedAt": "2026-04-01T14:22:10Z"
      }
    ],
    "status": "ready",
    "createdAt": "2026-04-01T14:22:10Z",
    "updatedAt": "2026-04-10T09:00:00Z"
  }
  ```
</Response>

<Response status="404" description="Influencer not in this org, or soft-deleted.">
  ```json
  {
    "error": {
      "code": "NOT_FOUND",
      "message": "Influencer not found.",
      "requestId": "req_..."
    }
  }
  ```
</Response>

## Field semantics [#field-semantics]

* **`status`** — `draft` | `pending` | `training` | `ready` | `failed`. Only `ready` influencers are usable for content generation without the workflow blocking.
* **`gender`** — `male` | `female` | `nonbinary` | `unspecified` (or `null` if never set).
* **`referenceImages[]`** — array of objects with `{assetId, url, thumbnailUrl, addedAt}`. Populated by the create job and [`POST /v1/influencers/:influencerId/reference-images`](/docs/api/reference/influencers/reference-images).
* **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 [#errors]

| Code              | When                                 |
| ----------------- | ------------------------------------ |
| `NOT_FOUND`       | Id not in this org, or soft-deleted. |
| `FORBIDDEN_SCOPE` | Key lacks `influencers:write`.       |

## See also [#see-also]

* [List influencers](/docs/api/reference/influencers/list-influencers)
* [Patch an influencer](/docs/api/reference/influencers/patch-influencer)
* [Delete an influencer](/docs/api/reference/influencers/delete-influencer)
