Layers

DELETE /v1/influencers/:influencerId

Soft-delete an influencer. Hides it from list and GET.

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

Soft-delete. The influencer is archived: it disappears from list, GET returns 404, and PATCH / clone / reference-images all return 404. Content that already references the influencer keeps working.

There is no hard-delete through the partner surface.

Path parameters

  • influencerId
    string (uuid)required
    The influencer id.

Body

Body (optional)
  • reason
    string (max 1024)optional
    Audit note. Persisted under `attributes.deletion` for compliance follow-up.

An empty body is accepted. If you send JSON, it must parse and match the schema.

Request

terminal
curl -X DELETE https://api.layers.com/v1/influencers/{influencerId} \
  -H "X-Api-Key: $LAYERS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "reason": "Partner requested deletion." }'
delete-influencer.ts
const res = await fetch(
  `https://api.layers.com/v1/influencers/${influencerId}`,
  {
    method: 'DELETE',
    headers: {
      'X-Api-Key': process.env.LAYERS_API_KEY!,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({ reason: 'Customer requested removal.' }),
  },
);
const result = await res.json();
delete_influencer.py
import os, httpx

r = httpx.request(
    "DELETE",
    f"https://api.layers.com/v1/influencers/{influencer_id}",
    headers={
        "X-Api-Key": os.environ["LAYERS_API_KEY"],
        "Content-Type": "application/json",
    },
    json={"reason": "No longer needed."},
)
result = r.json()

Responses

200Deleted.
{
  "influencerId": "inf_01HXZ9...",
  "status": "deleted",
  "deletedAt": "2026-04-18T09:21:00Z"
}
404Not found in this org, or already deleted.
{
  "error": {
    "code": "NOT_FOUND",
    "message": "Influencer not found.",
    "requestId": "req_..."
  }
}

Notes

Deletion is soft-only. The row stays in the database with is_archived = true for audit, but is invisible to every partner read. There is no way to undelete through the partner API.

  • Existing content is unaffected. Containers and scheduled posts that already carry this influencerId continue to work — they don't check liveness on every read.
  • Reason is persisted. If provided, it's stored on attributes.deletion with the calling API key id and timestamp, for your audit trail.

Errors

CodeWhen
NOT_FOUNDInfluencer not in this org, or already deleted.
VALIDATIONBody present but malformed.
FORBIDDEN_SCOPEKey lacks influencers:write.

See also

On this page