Authors
An author is one of your end users, identified by your own id. Infrared keeps a status, a trust level and a history per author, and content rules can read all three.
Endpoints
- GET/v1/authorsList authors
- GET/v1/authors/{external_id}Retrieve an author
- PUT/v1/authors/{external_id}Create or update an author
- POST/v1/authors/{external_id}/blockBlock an author
- POST/v1/authors/{external_id}/suspendSuspend an author
- POST/v1/authors/{external_id}/enableEnable an author
- GET/v1/authors/{external_id}/moderationsList an author's moderations
The author object
One of your end users in a project, with the status, trust level and history that content rules can read.
{
"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": 5,
"flagged": 5,
"rejected": 5,
"reviewed": 0,
"reports": 0
},
"first_seen_at": "2026-10-08T08:50:58.962Z",
"last_seen_at": "2026-10-08T09:28:46.195Z",
"metadata": {
"country": "GB",
"email_verified": true
},
"created_at": "2026-10-08T08:50:59.118Z",
"updated_at": "2026-10-08T09:28:46.195Z"
}Attributes
object"author"Always
author.idstringId of the author:
aut_plus 22 base62 characters. API paths useexternal_idinstead.external_idstringYour id for the end user, up to 200 characters.
display_namestring or nullA name shown in the dashboard, or null.
statusenumenabled,suspendedorblocked. Content rules can test it.One of
enabledsuspendedblockedstatus_reasonstring or nullThe reason given with the last status change, or null.
status_untiltimestamp or nullWhen a suspension ends, ISO 8601 in UTC. Null for a suspension without an end date and for the other statuses.
trust_levelenumThe effective trust level, from lowest to highest:
new,basic,regular,established,trusted. It istrust_overridewhen one is set, else the automatic level.One of
newbasicregularestablishedtrustedtrust_overrideenum or nullA trust level pinned by you, or null.
One of
newbasicregularestablishedtrustedrisk_scorenumber or nullA number from 0 to 1 that grows with the share of flagged and rejected moderations and with a suspension or a block. Null until the author's first counted moderation or status change.
statsobjectCounters over the author's live moderations. Test key traffic, dry runs and invalid submissions are not counted.
moderationsintegerModerations counted.
flaggedintegerOf those, the number that were flagged.
rejectedintegerOf those, the number with the recommendation
reject.reviewedintegerOf those, the number with the recommendation
review.reportsintegerReserved. Nothing writes this counter yet, so it is always 0.
first_seen_attimestamp or nullWhen the author was first seen: the first moderation, action or upsert that named them. ISO 8601 in UTC.
last_seen_attimestamp or nullWhen the author's last counted moderation finished, ISO 8601 in UTC. The creation time until then.
metadataobjectYour own data stored with the author. An empty object when none was set.
project_idstringId of the project:
prj_plus 22 base62 characters.trust_level_automaticstringThe level computed from history after every counted moderation. Defaults:
basicfrom 5 moderations with at most 10% rejected;regularfrom 20 moderations, at most 5% rejected and 7 days since first seen;establishedfrom 100, 2% and 30 days;trustedfrom 500, 1% and 90 days. A project can set its own values.newwhile the author is not enabled.created_attimestampWhen the author was created, ISO 8601 in UTC.
updated_attimestampWhen the author last changed, ISO 8601 in UTC.
Something missing or unclear on this page? Write to support@useinfrared.com.