Bluesky · Capability
Bluesky Social API — Ozone Moderation
Bluesky Social API — Ozone Moderation. 9 operations. Lead operation: Bluesky Take a moderation action on an actor.. Self-contained Naftiko capability covering one Bluesky business surface.
What You Can Do
POST
Ozonemoderationemitevent
— Bluesky Take a moderation action on an actor.
/v1/xrpc/tools-ozone-moderation-emitevent
GET
Ozonemoderationgetevent
— Bluesky Get details about a moderation event.
/v1/xrpc/tools-ozone-moderation-getevent
GET
Ozonemoderationgetrecord
— Bluesky Get details about a record.
/v1/xrpc/tools-ozone-moderation-getrecord
GET
Ozonemoderationgetrecords
— Bluesky Get details about some records.
/v1/xrpc/tools-ozone-moderation-getrecords
GET
Ozonemoderationgetrepo
— Bluesky Get details about a repository.
/v1/xrpc/tools-ozone-moderation-getrepo
GET
Ozonemoderationgetrepos
— Bluesky Get details about some repositories.
/v1/xrpc/tools-ozone-moderation-getrepos
GET
Ozonemoderationqueryevents
— Bluesky List moderation events related to a subject.
/v1/xrpc/tools-ozone-moderation-queryevents
GET
Ozonemoderationquerystatuses
— Bluesky View moderation statuses of subjects (record or repo).
/v1/xrpc/tools-ozone-moderation-querystatuses
GET
Ozonemoderationsearchrepos
— Bluesky Find repositories based on a search term.
/v1/xrpc/tools-ozone-moderation-searchrepos
MCP Tools
bluesky-take-moderation-action-actor
Bluesky Take a moderation action on an actor.
bluesky-get-details-about-moderation
Bluesky Get details about a moderation event.
read-only
idempotent
bluesky-get-details-about-record
Bluesky Get details about a record.
read-only
idempotent
bluesky-get-details-about-some
Bluesky Get details about some records.
read-only
idempotent
bluesky-get-details-about-repository
Bluesky Get details about a repository.
read-only
idempotent
bluesky-get-details-about-some-2
Bluesky Get details about some repositories.
read-only
idempotent
bluesky-list-moderation-events-related
Bluesky List moderation events related to a subject.
read-only
idempotent
bluesky-view-moderation-statuses-subjects
Bluesky View moderation statuses of subjects (record or repo).
read-only
idempotent
bluesky-find-repositories-based-search
Bluesky Find repositories based on a search term.
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Bluesky Social API — Ozone Moderation
description: 'Bluesky Social API — Ozone Moderation. 9 operations. Lead operation: Bluesky Take a moderation action on an
actor.. Self-contained Naftiko capability covering one Bluesky business surface.'
tags:
- Bluesky
- Ozone Moderation
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
BLUESKY_API_KEY: BLUESKY_API_KEY
capability:
consumes:
- type: http
namespace: bluesky-ozone-moderation
baseUri: https://bsky.social/xrpc
description: Bluesky Social API — Ozone Moderation business capability. Self-contained, no shared references.
resources:
- name: xrpc-tools.ozone.moderation.emitEvent
path: /xrpc/tools.ozone.moderation.emitEvent
operations:
- name: ozonemoderationemitevent
method: POST
description: Bluesky Take a moderation action on an actor.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: xrpc-tools.ozone.moderation.getEvent
path: /xrpc/tools.ozone.moderation.getEvent
operations:
- name: ozonemoderationgetevent
method: GET
description: Bluesky Get details about a moderation event.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: query
type: integer
required: true
- name: xrpc-tools.ozone.moderation.getRecord
path: /xrpc/tools.ozone.moderation.getRecord
operations:
- name: ozonemoderationgetrecord
method: GET
description: Bluesky Get details about a record.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: uri
in: query
type: string
required: true
- name: cid
in: query
type: string
- name: xrpc-tools.ozone.moderation.getRecords
path: /xrpc/tools.ozone.moderation.getRecords
operations:
- name: ozonemoderationgetrecords
method: GET
description: Bluesky Get details about some records.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: uris
in: query
type: array
required: true
- name: xrpc-tools.ozone.moderation.getRepo
path: /xrpc/tools.ozone.moderation.getRepo
operations:
- name: ozonemoderationgetrepo
method: GET
description: Bluesky Get details about a repository.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: did
in: query
type: string
required: true
- name: xrpc-tools.ozone.moderation.getRepos
path: /xrpc/tools.ozone.moderation.getRepos
operations:
- name: ozonemoderationgetrepos
method: GET
description: Bluesky Get details about some repositories.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: dids
in: query
type: array
required: true
- name: xrpc-tools.ozone.moderation.queryEvents
path: /xrpc/tools.ozone.moderation.queryEvents
operations:
- name: ozonemoderationqueryevents
method: GET
description: Bluesky List moderation events related to a subject.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: types
in: query
type: array
description: The types of events (fully qualified string in the format of tools.ozone.moderation.defs#modEvent<name>)
to filter by. If not specified, all events are returned
- name: createdBy
in: query
type: string
- name: sortDirection
in: query
type: string
description: Sort direction for the events. Defaults to descending order of created at timestamp.
- name: createdAfter
in: query
type: string
description: Retrieve events created after a given timestamp
- name: createdBefore
in: query
type: string
description: Retrieve events created before a given timestamp
- name: subject
in: query
type: string
- name: collections
in: query
type: array
description: If specified, only events where the subject belongs to the given collections will be returned. When
subjectType is set to 'account', this will be ignored.
- name: subjectType
in: query
type: string
description: If specified, only events where the subject is of the given type (account or record) will be returned.
When this is set to 'account' the 'collections' parameter
- name: includeAllUserRecords
in: query
type: boolean
description: If true, events on all record types (posts, lists, profile etc.) or records from given 'collections'
param, owned by the did are returned.
- name: limit
in: query
type: integer
- name: hasComment
in: query
type: boolean
description: If true, only events with comments are returned
- name: comment
in: query
type: string
description: If specified, only events with comments containing the keyword are returned
- name: addedLabels
in: query
type: array
description: If specified, only events where all of these labels were added are returned
- name: removedLabels
in: query
type: array
description: If specified, only events where all of these labels were removed are returned
- name: addedTags
in: query
type: array
description: If specified, only events where all of these tags were added are returned
- name: removedTags
in: query
type: array
description: If specified, only events where all of these tags were removed are returned
- name: reportTypes
in: query
type: array
- name: cursor
in: query
type: string
- name: xrpc-tools.ozone.moderation.queryStatuses
path: /xrpc/tools.ozone.moderation.queryStatuses
operations:
- name: ozonemoderationquerystatuses
method: GET
description: Bluesky View moderation statuses of subjects (record or repo).
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: includeAllUserRecords
in: query
type: boolean
description: All subjects, or subjects from given 'collections' param, belonging to the account specified in the
'subject' param will be returned.
- name: subject
in: query
type: string
description: The subject to get the status for.
- name: comment
in: query
type: string
description: Search subjects by keyword from comments
- name: reportedAfter
in: query
type: string
description: Search subjects reported after a given timestamp
- name: reportedBefore
in: query
type: string
description: Search subjects reported before a given timestamp
- name: reviewedAfter
in: query
type: string
description: Search subjects reviewed after a given timestamp
- name: hostingDeletedAfter
in: query
type: string
description: Search subjects where the associated record/account was deleted after a given timestamp
- name: hostingDeletedBefore
in: query
type: string
description: Search subjects where the associated record/account was deleted before a given timestamp
- name: hostingUpdatedAfter
in: query
type: string
description: Search subjects where the associated record/account was updated after a given timestamp
- name: hostingUpdatedBefore
in: query
type: string
description: Search subjects where the associated record/account was updated before a given timestamp
- name: hostingStatuses
in: query
type: array
description: Search subjects by the status of the associated record/account
- name: reviewedBefore
in: query
type: string
description: Search subjects reviewed before a given timestamp
- name: includeMuted
in: query
type: boolean
description: By default, we don't include muted subjects in the results. Set this to true to include them.
- name: onlyMuted
in: query
type: boolean
description: When set to true, only muted subjects and reporters will be returned.
- name: reviewState
in: query
type: string
description: Specify when fetching subjects in a certain state
- name: ignoreSubjects
in: query
type: array
- name: lastReviewedBy
in: query
type: string
description: Get all subject statuses that were reviewed by a specific moderator
- name: sortField
in: query
type: string
- name: sortDirection
in: query
type: string
- name: takendown
in: query
type: boolean
description: Get subjects that were taken down
- name: appealed
in: query
type: boolean
description: Get subjects in unresolved appealed status
- name: limit
in: query
type: integer
- name: tags
in: query
type: array
- name: excludeTags
in: query
type: array
- name: cursor
in: query
type: string
- name: collections
in: query
type: array
description: If specified, subjects belonging to the given collections will be returned. When subjectType is set
to 'account', this will be ignored.
- name: subjectType
in: query
type: string
description: If specified, subjects of the given type (account or record) will be returned. When this is set to
'account' the 'collections' parameter will be ignored. When i
- name: xrpc-tools.ozone.moderation.searchRepos
path: /xrpc/tools.ozone.moderation.searchRepos
operations:
- name: ozonemoderationsearchrepos
method: GET
description: Bluesky Find repositories based on a search term.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: q
in: query
type: string
- name: limit
in: query
type: integer
- name: cursor
in: query
type: string
authentication:
type: bearer
token: '{{env.BLUESKY_API_KEY}}'
exposes:
- type: rest
namespace: bluesky-ozone-moderation-rest
port: 8080
description: REST adapter for Bluesky Social API — Ozone Moderation. One Spectral-compliant resource per consumed operation,
prefixed with /v1.
resources:
- path: /v1/xrpc/tools-ozone-moderation-emitevent
name: xrpc-tools-ozone-moderation-emitevent
description: REST surface for xrpc-tools.ozone.moderation.emitEvent.
operations:
- method: POST
name: ozonemoderationemitevent
description: Bluesky Take a moderation action on an actor.
call: bluesky-ozone-moderation.ozonemoderationemitevent
with:
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/xrpc/tools-ozone-moderation-getevent
name: xrpc-tools-ozone-moderation-getevent
description: REST surface for xrpc-tools.ozone.moderation.getEvent.
operations:
- method: GET
name: ozonemoderationgetevent
description: Bluesky Get details about a moderation event.
call: bluesky-ozone-moderation.ozonemoderationgetevent
with:
id: rest.id
outputParameters:
- type: object
mapping: $.
- path: /v1/xrpc/tools-ozone-moderation-getrecord
name: xrpc-tools-ozone-moderation-getrecord
description: REST surface for xrpc-tools.ozone.moderation.getRecord.
operations:
- method: GET
name: ozonemoderationgetrecord
description: Bluesky Get details about a record.
call: bluesky-ozone-moderation.ozonemoderationgetrecord
with:
uri: rest.uri
cid: rest.cid
outputParameters:
- type: object
mapping: $.
- path: /v1/xrpc/tools-ozone-moderation-getrecords
name: xrpc-tools-ozone-moderation-getrecords
description: REST surface for xrpc-tools.ozone.moderation.getRecords.
operations:
- method: GET
name: ozonemoderationgetrecords
description: Bluesky Get details about some records.
call: bluesky-ozone-moderation.ozonemoderationgetrecords
with:
uris: rest.uris
outputParameters:
- type: object
mapping: $.
- path: /v1/xrpc/tools-ozone-moderation-getrepo
name: xrpc-tools-ozone-moderation-getrepo
description: REST surface for xrpc-tools.ozone.moderation.getRepo.
operations:
- method: GET
name: ozonemoderationgetrepo
description: Bluesky Get details about a repository.
call: bluesky-ozone-moderation.ozonemoderationgetrepo
with:
did: rest.did
outputParameters:
- type: object
mapping: $.
- path: /v1/xrpc/tools-ozone-moderation-getrepos
name: xrpc-tools-ozone-moderation-getrepos
description: REST surface for xrpc-tools.ozone.moderation.getRepos.
operations:
- method: GET
name: ozonemoderationgetrepos
description: Bluesky Get details about some repositories.
call: bluesky-ozone-moderation.ozonemoderationgetrepos
with:
dids: rest.dids
outputParameters:
- type: object
mapping: $.
- path: /v1/xrpc/tools-ozone-moderation-queryevents
name: xrpc-tools-ozone-moderation-queryevents
description: REST surface for xrpc-tools.ozone.moderation.queryEvents.
operations:
- method: GET
name: ozonemoderationqueryevents
description: Bluesky List moderation events related to a subject.
call: bluesky-ozone-moderation.ozonemoderationqueryevents
with:
types: rest.types
createdBy: rest.createdBy
sortDirection: rest.sortDirection
createdAfter: rest.createdAfter
createdBefore: rest.createdBefore
subject: rest.subject
collections: rest.collections
subjectType: rest.subjectType
includeAllUserRecords: rest.includeAllUserRecords
limit: rest.limit
hasComment: rest.hasComment
comment: rest.comment
addedLabels: rest.addedLabels
removedLabels: rest.removedLabels
addedTags: rest.addedTags
removedTags: rest.removedTags
reportTypes: rest.reportTypes
cursor: rest.cursor
outputParameters:
- type: object
mapping: $.
- path: /v1/xrpc/tools-ozone-moderation-querystatuses
name: xrpc-tools-ozone-moderation-querystatuses
description: REST surface for xrpc-tools.ozone.moderation.queryStatuses.
operations:
- method: GET
name: ozonemoderationquerystatuses
description: Bluesky View moderation statuses of subjects (record or repo).
call: bluesky-ozone-moderation.ozonemoderationquerystatuses
with:
includeAllUserRecords: rest.includeAllUserRecords
subject: rest.subject
comment: rest.comment
reportedAfter: rest.reportedAfter
reportedBefore: rest.reportedBefore
reviewedAfter: rest.reviewedAfter
hostingDeletedAfter: rest.hostingDeletedAfter
hostingDeletedBefore: rest.hostingDeletedBefore
hostingUpdatedAfter: rest.hostingUpdatedAfter
hostingUpdatedBefore: rest.hostingUpdatedBefore
hostingStatuses: rest.hostingStatuses
reviewedBefore: rest.reviewedBefore
includeMuted: rest.includeMuted
onlyMuted: rest.onlyMuted
reviewState: rest.reviewState
ignoreSubjects: rest.ignoreSubjects
lastReviewedBy: rest.lastReviewedBy
sortField: rest.sortField
sortDirection: rest.sortDirection
takendown: rest.takendown
appealed: rest.appealed
limit: rest.limit
tags: rest.tags
excludeTags: rest.excludeTags
cursor: rest.cursor
collections: rest.collections
subjectType: rest.subjectType
outputParameters:
- type: object
mapping: $.
- path: /v1/xrpc/tools-ozone-moderation-searchrepos
name: xrpc-tools-ozone-moderation-searchrepos
description: REST surface for xrpc-tools.ozone.moderation.searchRepos.
operations:
- method: GET
name: ozonemoderationsearchrepos
description: Bluesky Find repositories based on a search term.
call: bluesky-ozone-moderation.ozonemoderationsearchrepos
with:
q: rest.q
limit: rest.limit
cursor: rest.cursor
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: bluesky-ozone-moderation-mcp
port: 9090
transport: http
description: MCP adapter for Bluesky Social API — Ozone Moderation. One tool per consumed operation, routed inline through
this capability's consumes block.
tools:
- name: bluesky-take-moderation-action-actor
description: Bluesky Take a moderation action on an actor.
hints:
readOnly: false
destructive: false
idempotent: false
call: bluesky-ozone-moderation.ozonemoderationemitevent
with:
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: bluesky-get-details-about-moderation
description: Bluesky Get details about a moderation event.
hints:
readOnly: true
destructive: false
idempotent: true
call: bluesky-ozone-moderation.ozonemoderationgetevent
with:
id: tools.id
outputParameters:
- type: object
mapping: $.
- name: bluesky-get-details-about-record
description: Bluesky Get details about a record.
hints:
readOnly: true
destructive: false
idempotent: true
call: bluesky-ozone-moderation.ozonemoderationgetrecord
with:
uri: tools.uri
cid: tools.cid
outputParameters:
- type: object
mapping: $.
- name: bluesky-get-details-about-some
description: Bluesky Get details about some records.
hints:
readOnly: true
destructive: false
idempotent: true
call: bluesky-ozone-moderation.ozonemoderationgetrecords
with:
uris: tools.uris
outputParameters:
- type: object
mapping: $.
- name: bluesky-get-details-about-repository
description: Bluesky Get details about a repository.
hints:
readOnly: true
destructive: false
idempotent: true
call: bluesky-ozone-moderation.ozonemoderationgetrepo
with:
did: tools.did
outputParameters:
- type: object
mapping: $.
- name: bluesky-get-details-about-some-2
description: Bluesky Get details about some repositories.
hints:
readOnly: true
destructive: false
idempotent: true
call: bluesky-ozone-moderation.ozonemoderationgetrepos
with:
dids: tools.dids
outputParameters:
- type: object
mapping: $.
- name: bluesky-list-moderation-events-related
description: Bluesky List moderation events related to a subject.
hints:
readOnly: true
destructive: false
idempotent: true
call: bluesky-ozone-moderation.ozonemoderationqueryevents
with:
types: tools.types
createdBy: tools.createdBy
sortDirection: tools.sortDirection
createdAfter: tools.createdAfter
createdBefore: tools.createdBefore
subject: tools.subject
collections: tools.collections
subjectType: tools.subjectType
includeAllUserRecords: tools.includeAllUserRecords
limit: tools.limit
hasComment: tools.hasComment
comment: tools.comment
addedLabels: tools.addedLabels
removedLabels: tools.removedLabels
addedTags: tools.addedTags
removedTags: tools.removedTags
reportTypes: tools.reportTypes
cursor: tools.cursor
outputParameters:
- type: object
mapping: $.
- name: bluesky-view-moderation-statuses-subjects
description: Bluesky View moderation statuses of subjects (record or repo).
hints:
readOnly: true
destructive: false
idempotent: true
call: bluesky-ozone-moderation.ozonemoderationquerystatuses
with:
includeAllUserRecords: tools.includeAllUserRecords
subject: tools.subject
comment: tools.comment
reportedAfter: tools.reportedAfter
reportedBefore: tools.reportedBefore
reviewedAfter: tools.reviewedAfter
hostingDeletedAfter: tools.hostingDeletedAfter
hostingDeletedBefore: tools.hostingDeletedBefore
hostingUpdatedAfter: tools.hostingUpdatedAfter
hostingUpdatedBefore: tools.hostingUpdatedBefore
hostingStatuses: tools.hostingStatuses
reviewedBefore: tools.reviewedBefore
includeMuted: tools.includeMuted
onlyMuted: tools.onlyMuted
reviewState: tools.reviewState
ignoreSubjects: tools.ignoreSubjects
lastReviewedBy: tools.lastReviewedBy
sortField: tools.sortField
sortDirection: tools.sortDirection
takendown: tools.takendown
appealed: tools.appealed
limit: tools.limit
tags: tools.tags
excludeTags: tools.excludeTags
cursor: tools.cursor
collections: tools.collections
subjectType: tools.subjectType
outputParameters:
- type: object
mapping: $.
- name: bluesky-find-repositories-based-search
description: Bluesky Find repositories based on a search term.
hints:
readOnly: true
destructive: false
idempotent: true
call: bluesky-ozone-moderation.ozonemoderationsearchrepos
with:
q: tools.q
limit: tools.limit
cursor: tools.cursor
outputParameters:
- type: object
mapping: $.