Pixelfed · Agentic Access
Pixelfed Agentic Access
x-agentic-access
generated
Pixelfed exposes 68 API operations that an AI agent could call, of which 28 are state-changing ‘acting’ operations. This is a recommended x-agentic-access execution contract — the scope, audience, consequence tier, short-lived token constraints, and escalation each action should carry before it is handed to an autonomous agent.
By consequence: 40 read and 28 write.
Contracts are classified heuristically from the provider’s OpenAPI and refresh on every APIs.io network build; audience is bound per deployment. The model follows Curity’s Access Intelligence (apidays Munich 2026). Browse every provider’s agent contracts at agentic-access.apis.io.
FediverseActivityPubPhoto SharingSocial MediaOpen SourceDecentralizedMastodon CompatibleFederation
Operations: 68
Acting: 28
Human-in-the-loop: 0
Method: generated
By consequence
read 40
write 28
Source
Agentic Access
generated: '2026-07-15'
method: generated
source: openapi/openapi.yml
description: Recommended x-agentic-access execution contracts, classified heuristically from
the OpenAPI. A governance starting point for exposing this API to AI agents — review and bind
audience per deployment. See research/curity/agentic-governance/.
summary:
operations: 68
by_action_class:
connected: 40
acting: 28
by_consequence:
read: 40
write: 28
human_in_the_loop_required: 0
operations:
- path: /v1/verify_credentials
method: get
operationId: verifyCredentials
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- read
token:
max-ttl: 3600
audit: none
- path: /v1/update_credentials
method: patch
operationId: updateCredentials
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/accounts/{id}
method: get
operationId: getAccount
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- follow
- push
- read
- write
- path: /v1/accounts/{id}/statuses
method: get
operationId: getAccountStatuses
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- follow
- push
- read
- write
- path: /v1/accounts/{id}/followers
method: get
operationId: getAccountFollowers
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- follow
- push
- read
- write
- path: /v1/accounts/{id}/following
method: get
operationId: getAccountFollowing
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- follow
- push
- read
- write
- path: /v1/accounts/{id}/follow
method: post
operationId: followAccount
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- follow
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/accounts/{id}/unfollow
method: post
operationId: unfollowAccount
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- follow
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/accounts/{id}/block
method: post
operationId: blockAccount
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/accounts/{id}/unblock
method: post
operationId: unblockAccount
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/accounts/{id}/mute
method: post
operationId: muteAccount
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/accounts/{id}/unmute
method: post
operationId: unmuteAccount
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/accounts/relationships
method: get
operationId: getRelationships
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- read
token:
max-ttl: 3600
audit: none
- path: /v1/accounts/search
method: get
operationId: searchAccounts
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- read
token:
max-ttl: 3600
audit: none
- path: /v1/accounts/lookup
method: get
operationId: lookupAccount
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- follow
- push
- read
- write
- path: /v1/follow_requests
method: get
operationId: listFollowRequests
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- read
token:
max-ttl: 3600
audit: none
- path: /v1/follow_requests/{id}/authorize
method: post
operationId: authorizeFollowRequest
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- follow
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/follow_requests/{id}/reject
method: post
operationId: rejectFollowRequest
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- follow
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/statuses
method: post
operationId: createStatus
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/statuses/{id}
method: get
operationId: getStatus
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- follow
- push
- read
- write
- path: /v1/statuses/{id}
method: delete
operationId: deleteStatus
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/statuses/{id}/context
method: get
operationId: getStatusContext
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- follow
- push
- read
- write
- path: /v1/statuses/{id}/favourited_by
method: get
operationId: getStatusFavouritedBy
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- follow
- push
- read
- write
- path: /v1/statuses/{id}/reblogged_by
method: get
operationId: getStatusRebloggedBy
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- follow
- push
- read
- write
- path: /v1/statuses/{id}/favourite
method: post
operationId: favouriteStatus
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/statuses/{id}/unfavourite
method: post
operationId: unfavouriteStatus
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/statuses/{id}/reblog
method: post
operationId: reblogStatus
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/statuses/{id}/unreblog
method: post
operationId: unreblogStatus
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/statuses/{id}/bookmark
method: post
operationId: bookmarkStatus
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/statuses/{id}/unbookmark
method: post
operationId: unbookmarkStatus
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/timelines/home
method: get
operationId: getHomeTimeline
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- read
token:
max-ttl: 3600
audit: none
- path: /v1/timelines/public
method: get
operationId: getPublicTimeline
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- follow
- push
- read
- write
- path: /v1/timelines/tag/{hashtag}
method: get
operationId: getHashtagTimeline
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- follow
- push
- read
- write
- path: /v1/timelines/list/{list_id}
method: get
operationId: getListTimeline
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- read
token:
max-ttl: 3600
audit: none
- path: /v1/media
method: post
operationId: uploadMedia
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/media/{id}
method: get
operationId: getMedia
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- read
token:
max-ttl: 3600
audit: none
- path: /v1/media/{id}
method: put
operationId: updateMedia
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v2/media
method: post
operationId: uploadMediaV2
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/notifications
method: get
operationId: listNotifications
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- read
token:
max-ttl: 3600
audit: none
- path: /v1/notifications/{id}
method: get
operationId: getNotification
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- read
token:
max-ttl: 3600
audit: none
- path: /v1/notifications/clear
method: post
operationId: clearNotifications
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/notifications/{id}/dismiss
method: post
operationId: dismissNotification
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v2/search
method: get
operationId: search
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- read
token:
max-ttl: 3600
audit: none
- path: /v1/instance
method: get
operationId: getInstance
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- follow
- push
- read
- write
- path: /v2/instance
method: get
operationId: getInstanceV2
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- follow
- push
- read
- write
- path: /nodeinfo/2.0.json
method: get
operationId: getNodeInfo
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- follow
- push
- read
- write
- path: /v1/trends
method: get
operationId: getTrends
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- follow
- push
- read
- write
- path: /v1/suggestions
method: get
operationId: getSuggestions
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- read
token:
max-ttl: 3600
audit: none
- path: /v1/directory
method: get
operationId: getDirectory
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- follow
- push
- read
- write
- path: /v1/lists
method: get
operationId: listLists
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- read
token:
max-ttl: 3600
audit: none
- path: /v1/lists
method: post
operationId: createList
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/lists/{id}
method: get
operationId: getList
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- read
token:
max-ttl: 3600
audit: none
- path: /v1/lists/{id}
method: put
operationId: updateList
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/lists/{id}
method: delete
operationId: deleteList
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/lists/{id}/accounts
method: get
operationId: getListAccounts
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- read
token:
max-ttl: 3600
audit: none
- path: /v1/lists/{id}/accounts
method: post
operationId: addAccountsToList
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/lists/{id}/accounts
method: delete
operationId: removeAccountsFromList
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/bookmarks
method: get
operationId: listBookmarks
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- read
token:
max-ttl: 3600
audit: none
- path: /v1/favourites
method: get
operationId: listFavourites
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- read
token:
max-ttl: 3600
audit: none
- path: /v1/blocks
method: get
operationId: listBlocks
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- read
token:
max-ttl: 3600
audit: none
- path: /v1/mutes
method: get
operationId: listMutes
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- read
token:
max-ttl: 3600
audit: none
- path: /v1/domain_blocks
method: get
operationId: listDomainBlocks
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- read
token:
max-ttl: 3600
audit: none
- path: /v1.1/collections/create
method: get
operationId: createCollection
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- write
token:
max-ttl: 3600
audit: none
- path: /v1.1/collections/update
method: get
operationId: updateCollection
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- write
token:
max-ttl: 3600
audit: none
- path: /v1.1/collections/delete
method: get
operationId: deleteCollection
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- write
token:
max-ttl: 3600
audit: none
- path: /v1.1/direct
method: get
operationId: getDirectMessages
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- read
token:
max-ttl: 3600
audit: none
- path: /v1.1/stories
method: get
operationId: getStories
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- read
token:
max-ttl: 3600
audit: none
- path: /v1.1/push/update-subscription
method: post
operationId: updatePushSubscription
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- push
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required