Skip to content

Create or update an author

PUT/v1/authors/{external_id}Key scope write

Creates the author when the id is new and updates the properties sent. Use it to register an author before their first moderation, to attach your own metadata, or to pin a trust level.

Needs a key with the write scope. Authentication

curl -X PUT https://api.useinfrared.com/v1/authors/user_4821 \
  -H "Authorization: Bearer $INFRARED_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "display_name": "Maya Okafor",
    "metadata": {
      "country": "GB",
      "email_verified": true
    }
  }'
200 OKResponse
{
  "object": "author",
  "id": "aut_7ZRftUOZyMjsmFWvJifaOJ",
  "project_id": "prj_0TBAgHGtdMketrbltGFHuk",
  "external_id": "user_4821",
  "display_name": "Maya Okafor",
  "status": "enabled",
  "status_reason": "Appeal accepted",
  "status_until": null,
  "trust_level": "new",
  "trust_level_automatic": "new",
  "trust_override": null,
  "risk_score": 0.9,
  "stats": {
    "moderations": 4,
    "flagged": 4,
    "rejected": 4,
    "reviewed": 0,
    "reports": 0
  },
  "first_seen_at": "2026-10-08T08:50:58.962Z",
  "last_seen_at": "2026-10-08T09:17:23.321Z",
  "metadata": {
    "country": "GB",
    "email_verified": true
  },
  "created_at": "2026-10-08T08:50:59.118Z",
  "updated_at": "2026-10-08T09:18:07.193Z"
}

Path parameters

external_idstringRequired

Your id for the end user. An id longer than 200 characters is cut to 200.

Request body

display_namestring or null

A name to show for the author in the dashboard, up to 200 characters. Null clears it. Omit it to leave it unchanged.

metadataobject

An object of your own data, stored with the author. It replaces the stored object as a whole, so keys you leave out are removed.

trust_overrideenum or null

A trust level to pin: new, basic, regular, established or trusted. While set, it is the author's trust_level and content rules read it; the automatic level keeps being computed underneath. Null removes the override.

One ofnewbasicregularestablishedtrusted

Returns

The author, with status 200 whether it was created or updated. The body is optional: an empty request creates the author with default values. The author.trust_level_changed event is emitted when the effective trust level changed.

Errors

422
validation_error

The body has an unknown key, display_name is longer than 200 characters, or trust_override is not a trust level.

Every endpoint can also answer the errors any request can meet: a missing key, a rate limit, a malformed body. Errors

Something missing or unclear on this page? Write to support@useinfrared.com.