Twitter/X Agentic Access
Twitter/X exposes 165 API operations that an AI agent could call, of which 68 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: 97 read, 63 write, 2 physical, and 3 safety-critical.
3 operations are classed safety-critical and should require human-in-the-loop approval at runtime.
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.
By consequence
Highest-consequence actions
The physical and safety-critical operations an agent could invoke — the ones that most warrant scoped tokens, tight TTLs, and escalation. Full per-operation contracts are in the source below.
| Method | Path | Consequence | Human-in-loop |
|---|---|---|---|
| DELETE | /2/connections | safety-critical | required |
| DELETE | /2/connections/all | safety-critical | required |
| DELETE | /2/connections/{endpoint_id} | safety-critical | required |
| POST | /2/chat/conversations/{id}/messages | physical | conditional |
| POST | /2/chat/conversations/{id}/typing | physical | conditional |
Source
Agentic Access
generated: '2026-07-21'
method: generated
source: openapi/twitter-x-x-api-v2-openapi.json
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: 165
by_action_class:
connected: 97
acting: 68
by_consequence:
read: 97
write: 63
physical: 2
safety-critical: 3
human_in_the_loop_required: 3
operations:
- path: /2/account_activity/subscriptions/count
method: get
operationId: getAccountActivitySubscriptionCount
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2/account_activity/webhooks/{webhook_id}/subscriptions/all
method: get
operationId: validateAccountActivitySubscription
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- dm.read
- dm.write
- tweet.read
- users.read
token:
max-ttl: 3600
audit: none
- path: /2/account_activity/webhooks/{webhook_id}/subscriptions/all
method: post
operationId: createAccountActivitySubscription
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- dm.read
- dm.write
- tweet.read
- users.read
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2/account_activity/webhooks/{webhook_id}/subscriptions/all/list
method: get
operationId: getAccountActivitySubscriptions
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2/account_activity/webhooks/{webhook_id}/subscriptions/{user_id}/all
method: delete
operationId: deleteAccountActivitySubscription
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2/activity/stream
method: get
operationId: activityStream
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2/activity/subscriptions
method: delete
operationId: deleteActivitySubscriptionsByIds
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2/activity/subscriptions
method: get
operationId: getActivitySubscriptions
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- like.read
- tweet.read
token:
max-ttl: 3600
audit: none
- path: /2/activity/subscriptions
method: post
operationId: createActivitySubscription
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- dm.read
- like.read
- tweet.read
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2/activity/subscriptions/{subscription_id}
method: delete
operationId: deleteActivitySubscription
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2/activity/subscriptions/{subscription_id}
method: put
operationId: updateActivitySubscription
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2/articles/draft
method: post
operationId: articleCreateDraft
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- tweet.write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2/articles/{article_id}/publish
method: post
operationId: articlePublish
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- tweet.write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2/chat/conversations
method: get
operationId: getChatConversations
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- dm.read
- users.read
token:
max-ttl: 3600
audit: none
- path: /2/chat/conversations/group
method: post
operationId: createChatConversation
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- dm.write
- tweet.read
- users.read
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2/chat/conversations/group/initialize
method: post
operationId: initializeChatGroup
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- dm.write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2/chat/conversations/{id}
method: get
operationId: getChatConversation
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- dm.read
- tweet.read
- users.read
token:
max-ttl: 3600
audit: none
- path: /2/chat/conversations/{id}/events
method: get
operationId: getChatConversationEvents
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- dm.read
- tweet.read
- users.read
token:
max-ttl: 3600
audit: none
- path: /2/chat/conversations/{id}/keys
method: post
operationId: addConversationKeys
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- dm.write
- tweet.read
- users.read
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2/chat/conversations/{id}/members
method: post
operationId: addChatGroupMembers
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- dm.write
- tweet.read
- users.read
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2/chat/conversations/{id}/messages
method: post
operationId: sendChatMessage
x-agentic-access:
action-class: acting
consequence: physical
subject: required
scope:
- dm.write
- tweet.read
- users.read
audience: null
token:
max-ttl: 300
exchange: true
purpose-required: true
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2/chat/conversations/{id}/read
method: post
operationId: markChatConversationRead
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- dm.write
- tweet.read
- users.read
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2/chat/conversations/{id}/typing
method: post
operationId: sendChatTypingIndicator
x-agentic-access:
action-class: acting
consequence: physical
subject: required
scope:
- dm.write
- tweet.read
- users.read
audience: null
token:
max-ttl: 300
exchange: true
purpose-required: true
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2/chat/media/upload/initialize
method: post
operationId: chatMediaUploadInitialize
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- media.write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2/chat/media/upload/{id}/append
method: post
operationId: chatMediaUploadAppend
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- media.write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2/chat/media/upload/{id}/finalize
method: post
operationId: chatMediaUploadFinalize
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- media.write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2/chat/media/{id}/{media_hash_key}
method: get
operationId: chatMediaDownload
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- media.write
token:
max-ttl: 3600
audit: none
- path: /2/communities/search
method: get
operationId: searchCommunities
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- tweet.read
- users.read
token:
max-ttl: 3600
audit: none
- path: /2/communities/{id}
method: get
operationId: getCommunitiesById
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- list.read
- tweet.read
- users.read
token:
max-ttl: 3600
audit: none
- path: /2/compliance/jobs
method: get
operationId: getComplianceJobs
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2/compliance/jobs
method: post
operationId: createComplianceJobs
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2/compliance/jobs/{id}
method: get
operationId: getComplianceJobsById
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2/connections
method: delete
operationId: deleteConnectionsByUuids
x-agentic-access:
action-class: acting
consequence: safety-critical
subject: required
audience: null
token:
max-ttl: 120
exchange: true
purpose-required: true
proof-of-possession: true
escalation:
human-in-the-loop: required
audit: required
- path: /2/connections
method: get
operationId: getConnectionHistory
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2/connections/all
method: delete
operationId: deleteAllConnections
x-agentic-access:
action-class: acting
consequence: safety-critical
subject: required
audience: null
token:
max-ttl: 120
exchange: true
purpose-required: true
proof-of-possession: true
escalation:
human-in-the-loop: required
audit: required
- path: /2/connections/{endpoint_id}
method: delete
operationId: deleteConnectionsByEndpoint
x-agentic-access:
action-class: acting
consequence: safety-critical
subject: required
audience: null
token:
max-ttl: 120
exchange: true
purpose-required: true
proof-of-possession: true
escalation:
human-in-the-loop: required
audit: required
- path: /2/dm_conversations
method: post
operationId: createDirectMessagesConversation
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- dm.write
- tweet.read
- users.read
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2/dm_conversations/media/{dm_id}/{media_id}/{resource_id}
method: get
operationId: dmConversationsMediaDownload
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- dm.read
token:
max-ttl: 3600
audit: none
- path: /2/dm_conversations/with/{participant_id}/dm_events
method: get
operationId: getDirectMessagesEventsByParticipantId
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- dm.read
- tweet.read
- users.read
token:
max-ttl: 3600
audit: none
- path: /2/dm_conversations/with/{participant_id}/messages
method: post
operationId: createDirectMessagesByParticipantId
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- dm.write
- tweet.read
- users.read
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2/dm_conversations/{dm_conversation_id}/messages
method: post
operationId: createDirectMessagesByConversationId
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- dm.write
- tweet.read
- users.read
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2/dm_conversations/{id}/dm_events
method: get
operationId: getDirectMessagesEventsByConversationId
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- dm.read
- tweet.read
- users.read
token:
max-ttl: 3600
audit: none
- path: /2/dm_events
method: get
operationId: getDirectMessagesEvents
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- dm.read
- tweet.read
- users.read
token:
max-ttl: 3600
audit: none
- path: /2/dm_events/{event_id}
method: delete
operationId: deleteDirectMessagesEvents
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- dm.read
- dm.write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2/dm_events/{event_id}
method: get
operationId: getDirectMessagesEventsById
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- dm.read
- tweet.read
- users.read
token:
max-ttl: 3600
audit: none
- path: /2/evaluate_note
method: post
operationId: evaluateCommunityNotes
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- tweet.write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2/insights/28hr
method: get
operationId: getInsights28Hr
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- tweet.read
token:
max-ttl: 3600
audit: none
- path: /2/insights/historical
method: get
operationId: getInsightsHistorical
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- tweet.read
token:
max-ttl: 3600
audit: none
- path: /2/likes/compliance/stream
method: get
operationId: streamLikesCompliance
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2/likes/firehose/stream
method: get
operationId: streamLikesFirehose
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2/likes/sample10/stream
method: get
operationId: streamLikesSample10
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2/lists
method: post
operationId: createLists
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- list.read
- list.write
- tweet.read
- users.read
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2/lists/{id}
method: delete
operationId: deleteLists
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- list.write
- tweet.read
- users.read
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2/lists/{id}
method: get
operationId: getListsById
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- list.read
- tweet.read
- users.read
token:
max-ttl: 3600
audit: none
- path: /2/lists/{id}
method: put
operationId: updateLists
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- list.write
- tweet.read
- users.read
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2/lists/{id}/followers
method: get
operationId: getListsFollowers
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- list.read
- tweet.read
- users.read
token:
max-ttl: 3600
audit: none
- path: /2/lists/{id}/members
method: get
operationId: getListsMembers
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- list.read
- tweet.read
- users.read
token:
max-ttl: 3600
audit: none
- path: /2/lists/{id}/members
method: post
operationId: addListsMember
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- list.write
- tweet.read
- users.read
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2/lists/{id}/members/{user_id}
method: delete
operationId: removeListsMemberByUserId
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- list.write
- tweet.read
- users.read
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2/lists/{id}/tweets
method: get
operationId: getListsPosts
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- list.read
- tweet.read
- users.read
token:
max-ttl: 3600
audit: none
- path: /2/media
method: get
operationId: getMediaByMediaKeys
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- tweet.read
token:
max-ttl: 3600
audit: none
- path: /2/media/analytics
method: get
operationId: getMediaAnalytics
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- tweet.read
token:
max-ttl: 3600
audit: none
- path: /2/media/metadata
method: post
operationId: createMediaMetadata
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- media.write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2/media/subtitles
method: delete
operationId: deleteMediaSubtitles
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- media.write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2/media/subtitles
method: post
operationId: createMediaSubtitles
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- media.write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2/media/upload
method: get
operationId: getMediaUploadStatus
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- media.write
token:
max-ttl: 3600
audit: none
- path: /2/media/upload
method: post
operationId: mediaUpload
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- media.write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2/media/upload/initialize
method: post
operationId: initializeMediaUpload
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- media.write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2/media/upload/{id}/append
method: post
operationId: appendMediaUpload
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- media.write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2/media/upload/{id}/finalize
method: post
operationId: finalizeMediaUpload
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- media.write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2/media/{media_key}
method: get
operationId: getMediaByMediaKey
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- tweet.read
token:
max-ttl: 3600
audit: none
- path: /2/news/search
method: get
operationId: searchNews
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- tweet.read
- users.read
token:
max-ttl: 3600
audit: none
- path: /2/news/{id}
method: get
operationId: getNews
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- tweet.read
- users.read
token:
max-ttl: 3600
audit: none
- path: /2/notes
method: post
operationId: createCommunityNotes
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- tweet.write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2/notes/search/notes_written
method: get
operationId: searchCommunityNotesWritten
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- tweet.read
token:
max-ttl: 3600
audit: none
- path: /2/notes/search/posts_eligible_for_notes
method: get
operationId: searchEligiblePosts
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- tweet.read
token:
max-ttl: 3600
audit: none
- path: /2/notes/{id}
method: delete
operationId: deleteCommunityNotes
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- tweet.write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2/openapi.json
method: get
operationId: getOpenApiSpec
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2/spaces
method: get
operationId: getSpacesByIds
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- space.read
- tweet.read
- users.read
token:
max-ttl: 3600
audit: none
- path: /2/spaces/by/creator_ids
method: get
operationId: getSpacesByCreatorIds
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- space.read
- tweet.read
- users.read
token:
max-ttl: 3600
audit: none
- path: /2/spaces/search
method: get
operationId: searchSpaces
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- space.read
- tweet.read
- users.read
token:
max-ttl: 3600
audit: none
- path: /2/spaces/{id}
method: get
operationId: getSpacesById
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- space.read
- tweet.read
- users.read
token:
max-ttl: 3600
audit: none
- path: /2/spaces/{id}/buyers
method: get
operationId: getSpacesBuyers
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- space.read
- tweet.read
- users.read
token:
max-ttl: 3600
audit: none
- path: /2/spaces/{id}/tweets
method: get
operationId: getSpacesPosts
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- space.read
- tweet.read
- users.read
token:
max-ttl: 3600
audit: none
- path: /2/trends/by/woeid/{woeid}
method: get
operationId: getTrendsByWoeid
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2/tweets
method: get
operationId: getPostsByIds
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- tweet.read
- users.read
token:
max-ttl: 3600
audit: none
- path: /2/tweets
method: post
operationId: createPosts
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- tweet.read
- tweet.write
- users.read
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2/tweets/analytics
method: get
operationId: getPostsAnalytics
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- tweet.read
- users.read
token:
max-ttl: 3600
audit: none
- path: /2/tweets/compliance/stream
method: get
operationId: streamPostsCompliance
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2/tweets/counts/all
method: get
operationId: getPostsCountsAll
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2/tweets/counts/recent
method: get
operationId: getPostsCountsRecent
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2/tweets/firehose/stream
method: get
operationId: streamPostsFirehose
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2/tweets/firehose/stream/lang/en
method: get
operationId: streamPostsFirehoseEn
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2/tweets/firehose/stream/lang/ja
method: get
operationId: streamPostsFirehoseJa
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2/tweets/firehose/stream/lang/ko
method: get
operationId: streamPostsFirehoseKo
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2/tweets/firehose/stream/lang/pt
method: get
operationId: streamPostsFirehosePt
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2/tweets/label/stream
method: get
operationId: streamLabelsCompliance
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2/tweets/sample/stream
method: get
operationId: streamPostsSample
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2/tweets/sample10/stream
method: get
operationId: streamPostsSample10
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2/tweets/search/all
method: get
operationId: searchPostsAll
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2/tweets/search/recent
method: get
operationId: searchPostsRecent
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- tweet.read
- users.read
token:
max-ttl: 3600
audit: none
- path: /2/tweets/search/stream
method: get
operationId: streamPosts
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2/tweets/search/stream/rules
method: get
operationId: getRules
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2/tweets/search/stream/rules
method: post
operationId: updateRules
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-
# --- truncated at 32 KB (50 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/twitter-x/refs/heads/main/agentic-access/twitter-x-agentic-access.yml