Moderator-grade fetch of a report subject's stored record and lifecycle state, INCLUDING rows the public read surface hides: taken-down content, soft-deleted rows inside the 30-day evidence window, and tombstoned rows (record is then null — 'purged' — and the console shows a banner instead of content). ADR-009 future-work item 'expose retained content through the moderation surface'. Requires the caller to be an active moderator. When media attachments ship, CSAM-quarantined blobs are NEVER rendered through this endpoint (metadata only — plan invariant).
Parameters
Output
application/jsoncid
stringcid
Optional
A content identifier (CID) referencing immutable data.
deletedAt
stringdatetime
Optional
Set when the row is soft-deleted (user delete or account cascade).
did
stringdid
Optional
Author DID for post/reply subjects (null once tombstoned), account DID for account subjects.
indexedAt
integer
Required
No description available.
isTombstone
boolean
Required
No description available.
moderationStatus
string
Required
No description available.
live, reported, tagged, legalHoldrecord
unknown
Optional
The stored record verbatim. Null when tombstonification already destroyed it — render a 'content destroyed by retention' banner.
subjectType
string
Required
No description available.
post, reply, accounturi
stringat-uri
Optional
An AT Protocol URI (e.g., at://did:plc:xyz/app.bsky.feed.post/abc).
Errors
Forbidden
Caller is not an active moderator. InvalidSubject
Neither subjectUri nor subjectDid was provided, or both were provided. SubjectNotFound
No row exists for the subject: never indexed, or already hard-deleted. Try It
Requests are sent directly from your browser. Some servers may block requests due to CORS.
View raw schema
{
"type": "query",
"errors": [
{
"name": "Forbidden",
"description": "Caller is not an active moderator."
},
{
"name": "InvalidSubject",
"description": "Neither subjectUri nor subjectDid was provided, or both were provided."
},
{
"name": "SubjectNotFound",
"description": "No row exists for the subject: never indexed, or already hard-deleted."
}
],
"output": {
"schema": {
"type": "object",
"required": [
"subjectType",
"moderationStatus",
"isTombstone",
"indexedAt"
],
"properties": {
"cid": {
"type": "string",
"format": "cid"
},
"did": {
"type": "string",
"format": "did",
"description": "Author DID for post/reply subjects (null once tombstoned), account DID for account subjects."
},
"uri": {
"type": "string",
"format": "at-uri"
},
"record": {
"type": "unknown",
"description": "The stored record verbatim. Null when tombstonification already destroyed it — render a 'content destroyed by retention' banner."
},
"deletedAt": {
"type": "string",
"format": "datetime",
"description": "Set when the row is soft-deleted (user delete or account cascade)."
},
"indexedAt": {
"type": "integer"
},
"isTombstone": {
"type": "boolean"
},
"subjectType": {
"type": "string",
"maxLength": 100,
"knownValues": [
"post",
"reply",
"account"
]
},
"moderationStatus": {
"type": "string",
"maxLength": 100,
"knownValues": [
"live",
"reported",
"tagged",
"legalHold"
]
}
}
},
"encoding": "application/json"
},
"parameters": {
"type": "params",
"properties": {
"subjectDid": {
"type": "string",
"format": "did",
"description": "Actor DID for an account subject (profile record). Mutually exclusive with subjectUri."
},
"subjectUri": {
"type": "string",
"format": "at-uri",
"description": "AT-URI of a post or reply subject. Probed as a post first, then a reply. Mutually exclusive with subjectDid."
}
}
},
"description": "Moderator-grade fetch of a report subject's stored record and lifecycle state, INCLUDING rows the public read surface hides: taken-down content, soft-deleted rows inside the 30-day evidence window, and tombstoned rows (record is then null — 'purged' — and the console shows a banner instead of content). ADR-009 future-work item 'expose retained content through the moderation surface'. Requires the caller to be an active moderator. When media attachments ship, CSAM-quarantined blobs are NEVER rendered through this endpoint (metadata only — plan invariant)."
}