| name | x |
| description | X is a real-time social networking platform for sharing short-form content, multimedia, and updates. It enables individuals, brands, and communities to engage through posts, live discussions, and trending conversations globally. Read and write X data through One: users, tweets, posts, dmevents, lists, webhooks and more, 148 actions with real parameter documentation. Use whenever the user asks to look something up in X, create or update a record there, or build code against the X API. |
X through One
X is a real-time social networking platform for sharing short-form content, multimedia, and updates. It enables individuals, brands, and communities to engage through posts, live discussions, and trending conversations globally.
One exposes X through four MCP tools. The table below carries real action ids from One's knowledge base, so for a common operation you can skip search and go straight to reading the action's parameters.
How to run an action
- Find the action in the table below, or call
search_one_platform_actions with platform x if it is not listed.
- Call
get_one_action_knowledge with the action id. Do this every time, including for actions in this table. The table gives you the id, not the parameters.
- Call
execute_one_action with parameters copied from that knowledge.
Never guess a parameter name, a body field, or an enum value. The knowledge has the real schema, and a guessed field is either a 400 or a silent write of the wrong thing.
Before you start
Call list_one_integrations once and confirm X is connected. If it is missing, the user has not connected it: say so and point them at https://app.withone.ai rather than reaching for raw HTTP.
Each connection carries an access field. If it reports {"policy": "methods", "methods": ["GET"]} the agent is read-only here, so plan a read-only answer instead of attempting a write that will be refused.
Before a write
Creates, updates, deletes and sends land on a real X account and cannot be recalled. State the action and the specific target in one line before the first write in a task, and let the user stop you. Reads need no confirmation.
Actions
Users
| Action | Method | Path | Action id |
|---|
| Get a User by ID | GET | /2/users/{{id}} | conn_mod_def::GJLaTlV6bzg::Z7tBxXNERxu0Fj3MVt9Gyg |
| Get a User by Username | GET | /2/users/by/username/{{username}} | conn_mod_def::GJLaS-7YzI8::rLOLcqh-S1qLXQftCGEGUg |
| Get the Authenticated User (“me”) | GET | /2/users/me | conn_mod_def::GJLaTJusYDc::A67WMmeURuC0nSuzIgfAGg |
| Get Users by IDs | GET | /2/users | conn_mod_def::GJLaSoaG_q8::opUbLPziStmEmFOurE7wKQ |
| Get Users by Usernames | GET | /2/users/by | conn_mod_def::GJLaSyQLZZ0::7O7jITB5R82dDWjXXlnENQ |
| List a User’s Following | GET | /2/users/{{id}}/following | conn_mod_def::GJLaWJy37M0::-EO33OpxT2KmP5EUk9gN1w |
| List Users Who Reposted a Post (by Post ID) | GET | /2/tweets/{{id}}/retweeted_by | conn_mod_def::GJLaR_J7Fs8::IP-kfMhITzu0KaIdDQHNaw |
| Search Users | GET | /users/search | conn_mod_def::GJLaTZDzJRg::qJ2m-kBzQnmy7lP700WglQ |
| Block DMs for a User | POST | /2/users/{{id}}/dm/block | conn_mod_def::GJLaVD0ZiXw::yGaxVkRwS_Oj24h99BDFWw |
| Follow a User (from a User’s Following Collection) | POST | /2/users/{{id}}/following | conn_mod_def::GJLaWRKzJv8::J2B3G0YNSxa8J3V3FwGemw |
| Mute a User for an Authenticated Source User | POST | /2/users/{{id}}/muting | conn_mod_def::GJLaXr-OGWI::DgtKoa9WQhO9g0WEXEuceQ |
| Unblock DMs for a User | POST | /2/users/{{id}}/dm/unblock | conn_mod_def::GJLaVMxLJGc::B_PAlGz-TxC_Q4VgiGU0fw |
2 more Users actions are available through search.
Tweets
| Action | Method | Path | Action id |
|---|
| Get Reposts for a Tweet | GET | /2/tweets/{{id}}/retweets | conn_mod_def::GJLaSJWN7Hc::6ey8yL3fRY23E5zC8SCnGA |
| List a User's Posts (Tweets) | GET | /2/users/{{ID}}/tweets | conn_mod_def::GJLaYzxwiB8::SLxpkxgzRJCXrerGQ8YpDQ |
| Stream 10% Sampled Posts (Sample10 Stream) | GET | /2/tweets/sample10/stream | conn_mod_def::GJLaOhmNWPU::ZQarIDZcSAqU4y_6w0Sngw |
| Stream All Posts (Firehose) | GET | /tweets/firehose/stream | conn_mod_def::GJLaM-Q5Jkk::_OssEoivSTOou1XdKEsaqA |
| Stream English Posts (Firehose) | GET | /tweets/firehose/stream/lang/en | conn_mod_def::GJLaNUJR0Zo::gcgGc_NwTQarKJzFG5cqfQ |
| Stream Filtered Posts (Filtered Stream) | GET | /2/tweets/search/stream | conn_mod_def::GJLaOqCmfrI::Dov-NXbnTeGEteIN0gKVSA |
| Stream Japanese-language Posts (Firehose) | GET | /tweets/firehose/stream/lang/ja | conn_mod_def::GJLaNgRq8Zw::rJrnJi4vRryoysKjFPUV6Q |
| Stream Korean-language Posts (Firehose) | GET | /tweets/firehose/stream/lang/ko | conn_mod_def::GJLaNppBJZ8::4gokadejS3ykdypIRzGiUQ |
| Stream Portuguese-Language Posts (Firehose) | GET | /tweets/firehose/stream/lang/pt | conn_mod_def::GJLaN0KstLg::s1db-GN-SLiZVCfLu5_lRg |
| Stream Sampled Posts | GET | /tweets/sample/stream | conn_mod_def::GJLaOKwfYwM::vcIYKf7oQ8GloEH7CP8cFA |
| Delete a Post (Tweet) by ID | DELETE | /2/tweets/{{id}} | conn_mod_def::GJLaRiqSvQc::mYpnHkpOR1KA43BNg4e8Aw |
| Hide (or Unhide) a Reply Tweet |
Posts
| Action | Method | Path | Action id |
|---|
| Get a Post by ID | GET | /2/tweets/{{id}} | conn_mod_def::GJLaRawKmb4::XqYRWA9aRFiHRIvG7Qi5Vg |
| Get Posts by IDs | GET | /2/tweets | conn_mod_def::GJLaQREdqoc::S9NGR7b4S3q_dU2u3lNIEw |
| List Posts in a List | GET | /2/lists/{{id}}/tweets | conn_mod_def::GJLaIe0llbI::u6psT6uDT82HwPVmFim8Ng |
| Search All Posts (Full-Archive) | GET | /2/tweets/search/all | conn_mod_def::GJLaREvbOpE::tkOv4U8hSjCmy0-lKsKWDA |
| Search Recent Posts | GET | /tweets/search/recent | conn_mod_def::GJLaRPb3hDk::YzVojtkBQOG0BlKQmwugsg |
| Create or Edit Post | POST | /2/tweets | conn_mod_def::GJLaQYKOXew::Ha2rKcMVTwaFjzSQWpUFvw |
DmEvents
| Action | Method | Path | Action id |
|---|
| Get a DM Event by ID | GET | /2/dm_events/{{EVENT_ID}} | conn_mod_def::GJLaG3Mniv4::txMAE_yHSUuVxhFC8GWpNQ |
| Get DM Events | GET | /dm_events | conn_mod_def::GJLaGvQXHy0::-XSyXgJYRo-APWIqviGbVQ |
| Get DM Events for a One-to-One DM Conversation (by Participant) | GET | /2/dm_conversations/with/{{PARTICIPANT_ID}}/dm_events | conn_mod_def::GJLaGMsE_60::F5JbSwB5SMqZsQnaNgjRIA |
| List DM Events for a DM Conversation | GET | /2/dm_conversations/{{id}}/dm_events | conn_mod_def::GJLaGm_2aIU::oOe-R0alTtyKftm_BPpTYA |
| Delete a DM Event | DELETE | /2/dm_events/{{EVENT_ID}} | conn_mod_def::GJLaG-LvhA4::ayQmPTeORmy6B7bDMyBSBw |
Lists
| Action | Method | Path | Action id |
|---|
| Get a List by ID | GET | /2/lists/{{id}} | conn_mod_def::GJLaHalYzSM::wj5O0nDaSeGb-N-hPfRlBQ |
| Add a Member to a List | POST | /2/lists/{{ID}}/members | conn_mod_def::GJLaIB7gD0Y::-isa551fTzuOpV821ED8Jg |
| Create a List | POST | /2/lists | conn_mod_def::GJLaHSfDGDM::o_sg7oO_QVGk1vCESYuRzA |
| Delete a List | DELETE | /2/lists/{{id}} | conn_mod_def::GJLaHmvFEEo::0RY1ad8nTeOyEphXiGi0eA |
| Update a List | PUT | /2/lists/{{ID}} | conn_mod_def::GJLaHgszitA::Us2Qi4yJTtCECS3sgQ1Bew |
Webhooks
| Action | Method | Path | Action id |
|---|
| List Webhooks (Client App) | GET | /2/webhooks | conn_mod_def::GJLaZyc9zLU::JWivMDkMRH-aSS-9LDGaPQ |
| Create a Webhook | POST | /2/webhooks | conn_mod_def::GJLaZ5MWlHk::KlwJPsJ4Q2iyle3n6dHDcQ |
| Delete a Stream Link for a Webhook | DELETE | /2/tweets/search/webhooks/{{WEBHOOK_ID}} | conn_mod_def::GJLaZr1yz8g::qxkNT5fOSYa-CTDNUuY6jA |
| Delete a Webhook | DELETE | /2/webhooks/{{WEBHOOK_ID}} | conn_mod_def::GJLaaMnXsVk::u4iXu5ZlRUeyg3-9eo4bYQ |
| Validate a Webhook (Trigger CRC Check) | PUT | /2/webhooks/{{WEBHOOK_ID}} | conn_mod_def::GJLaaGPU2z0::y3t-lOHOSQaH3HuUH7AKXg |
Connections
| Action | Method | Path | Action id |
|---|
| Get Connection History | GET | /connections | conn_mod_def::GJLaFkxNxDI::-B608IMTSC-uVEbIW71hlQ |
| Terminate All Connections | DELETE | /connections/all | conn_mod_def::GJLaFwVoMq8::QqsSkzK6QVa-v2cDU26k9g |
| Terminate Multiple Connections | DELETE | /2/connections | conn_mod_def::GJLaFqhoJuQ::35w-TPn_SXeDUssle0dy_w |
| Terminate Streaming Connections for an Endpoint | DELETE | /2/connections/{{endpoint_id}} | conn_mod_def::GJLaF4YJ16g::Qbo54_JWSMiGDoN_Mr2KMw |
Spaces
| Action | Method | Path | Action id |
|---|
| Get a Space by ID | GET | /2/spaces/{{id}} | conn_mod_def::GJLaLyOKyL0::g-9ORwpsSyKzDbCaUI20zg |
| Get Spaces by Creator IDs | GET | /2/spaces/by/creator_ids | conn_mod_def::GJLaLd23lag::ztZpYnLRQW22KZ5los8fnQ |
| Get Spaces by IDs | GET | /2/spaces | conn_mod_def::GJLaLNiy_24::h3ydINvMSMefGXl8WQAe_w |
| Search Spaces | GET | /2/spaces/search | conn_mod_def::GJLaLlfEHes::1_6EovqkTzyElrO79mrFyA |
Likes
| Action | Method | Path | Action id |
|---|
| Stream All Likes (Firehose) | GET | /2/likes/firehose/stream | conn_mod_def::GJLaMclcda4::jPClxIecRlqQswb3DfKDjA |
| Stream Sampled Likes (10% Sample) | GET | /likes/sample10/stream | conn_mod_def::GJLaMnv5TU8::n8IdiF8UTZ6x205sRZ61Ew |
| Like a User’s Post (Create Like) | POST | /2/users/{{ID}}/likes | conn_mod_def::GJLaWjacoCk::bFg6iXMoThCrZ9W4Zvtf2g |
| Unlike a User’s Liked Post | DELETE | /2/users/{{ID}}/likes/{{TWEET_ID}} | conn_mod_def::GJLaWsJec0A::1f7gFQPaTS6LQ88X4Uv5qA |
CommunityNotes
| Action | Method | Path | Action id |
|---|
| Search for Community Notes Written | GET | /2/notes/search/notes_written | conn_mod_def::GJLaE9M76uM::25U8a14CRzurQAMlLLT_sA |
| Create a Community Note | POST | /notes | conn_mod_def::GJLaE2dMPiQ::WXLPcV0gRximGURIVf6ntw |
| Delete a Community Note | DELETE | /2/notes/{{ID}} | conn_mod_def::GJLaFI25mBI::3CiCrg0SR5qbuAUaDx_NEw |
Media
| Action | Method | Path | Action id |
|---|
| Get Media by Media Key | GET | /2/media/{{media_key}} | conn_mod_def::GJLaKw2AKAQ::b0v2G1C1TA-BQOpGJaeMwQ |
| Get Media by Media Keys | GET | /2/media | conn_mod_def::GJLaIxkP5tk::agyNgx_xSN-7bqJ34ZomnA |
| Upload Media | POST | /2/media/upload | conn_mod_def::GJLaKIpTTCg::ALX50CA-Q-WtyBBzvf203g |
UserBookmarks
| Action | Method | Path | Action id |
|---|
| Get a User’s Bookmarks | GET | /2/users/{{ID}}/bookmarks | conn_mod_def::GJLaUNA5WvQ::lGH-p7XcQEm-4NARcZu2cw |
| Create a User Bookmark | POST | /2/users/{{id}}/bookmarks | conn_mod_def::GJLaUYIl-KI::xvPGwyJ4Tx2Rk9N9zAvGSg |
| Delete a User’s Bookmark (Remove a Post from Bookmarks) | DELETE | /2/users/{{ID}}/bookmarks/{{TWEET_ID}} | conn_mod_def::GJLaU75WAf4::jz97g5UYSOKWfG8g2E6XQA |
AccountActivitySubscription
| Action | Method | Path | Action id |
|---|
| Create an Account Activity Subscription for a Webhook (All) | POST | /2/account_activity/webhooks/{{WEBHOOK_ID}}/subscriptions/all | conn_mod_def::GJLaDAh1yhw::AU1XPyvlRN2176Tw_dK03w |
| Delete an Account Activity Subscription for a Webhook and User | DELETE | /2/account_activity/webhooks/{{WEBHOOK_ID}}/subscriptions/{{USER_ID}}/all | conn_mod_def::GJLaDO0hjow::S3vMPS0nTT-eQ9jJFd_Vfg |
ActivitySubscriptions
| Action | Method | Path | Action id |
|---|
| List X Activity Subscriptions | GET | /activity/subscriptions | conn_mod_def::GJLaDY6VCZs::xzkVx3i7SEed3jqsNcTmWw |
| Create an X Activity Subscription | POST | /2/activity/subscriptions | conn_mod_def::GJLaDdzAeOY::WwuwE42-SZSlN7oP-njsVw |
ActivitySubscription
| Action | Method | Path | Action id |
|---|
| Delete an Activity Subscription | DELETE | /2/activity/subscriptions/{{SUBSCRIPTION_ID}} | conn_mod_def::GJLaDskUey0::0K5Z24XtRhedsPxl5WMCGg |
| Update an X Activity Subscription | PUT | /2/activity/subscriptions/{{SUBSCRIPTION_ID}} | conn_mod_def::GJLaDmPOhi0::W47_PqqhQeip5p0w8owiHA |
UserPublicKeys
| Action | Method | Path | Action id |
|---|
| Get a User’s Public Keys | GET | /2/users/{{id}}/public_keys | conn_mod_def::GJLaETXP_gM::xc6szonXRZ-8DZ4fkLYTGg |
| Add a User’s Public Key | POST | /2/users/{{ID}}/public_keys | conn_mod_def::GJLaEc42GL8::MJPRiFlWQjOjRKochm8ZRg |
ComplianceJobs
| Action | Method | Path | Action id |
|---|
| List Compliance Jobs | GET | /compliance/jobs | conn_mod_def::GJLaFO_KOHg::pRcI2pOCQSCUv4fTnKMXMw |
| Create Compliance Job | POST | /compliance/jobs | conn_mod_def::GJLaFYgl8Bw::egkJexNSSKakOpIjW_VAUA |
DmMessages
| Action | Method | Path | Action id |
|---|
| Create a DM Message for a Participant | POST | /2/dm_conversations/with/{{PARTICIPANT_ID}}/messages | conn_mod_def::GJLaGWMOLjQ::t6uTqPVpSfGQkUuhuisULw |
| Create a DM Message in a Conversation | POST | /2/dm_conversations/{{DM_CONVERSATION_ID}}/messages | conn_mod_def::GJLaGeiY6As::pmMekOCTRh6VCcSNRU8sMQ |
ListMembers
| Action | Method | Path | Action id |
|---|
| Get a List’s Members | GET | /2/lists/{{ID}}/members | conn_mod_def::GJLaH74lNPI::3JCaJyeFRkS3vYZ98V5mRw |
| Remove a List Member | DELETE | /2/lists/{{ID}}/members/{{USER_ID}} | conn_mod_def::GJLaIWdVZuE::e12f7jUiS7GFje-rw8t9Zg |
MediaSubtitles
| Action | Method | Path | Action id |
|---|
| Create Media Subtitles | POST | /media/subtitles | conn_mod_def::GJLaJrqc-6g::KPS-LoWfQl-GyB94lYoNrw |
| Delete Media Subtitles | DELETE | /2/media/subtitles | conn_mod_def::GJLaJzNKuu4::Q48NKgSvQ_O4NhBBccvMgw |
MediaUpload
| Action | Method | Path | Action id |
|---|
| Append Media Data to an Upload Session | POST | /2/media/upload/{{ID}}/append | conn_mod_def::GJLaKardSZI::p2xJCuqbTCKuXMdy1EmChA |
| Finalize a Media Upload | POST | /2/media/upload/{{ID}}/finalize | conn_mod_def::GJLaKienXgQ::GI6a9x8BQ1azbP7Bl8zRZw |
News
| Action | Method | Path | Action id |
|---|
| Get a News Story by ID | GET | /2/news/{{id}} | conn_mod_def::GJLaLBS3Eeo::bAZ-QtOYTdigd0ZXczQP1w |
| Search News | GET | /news/search | conn_mod_def::GJLaK44SxII::U-Q4py0RRiGoww7Zo2Y3lg |
FilteredStreamRules
| Action | Method | Path | Action id |
|---|
| Get Filtered Stream Rules | GET | /tweets/search/stream/rules | conn_mod_def::GJLaOzz8n5o::vgKAxvc2QgSZB06D-Cf2dQ |
| Update Filtered Stream Rules | POST | /2/tweets/search/stream/rules | conn_mod_def::GJLaO6dTyfg::YjaVQQulT2aQQLvlM2t4NQ |
UsersFollowedLists
| Action | Method | Path | Action id |
|---|
| Get a User’s Followed Lists | GET | /2/users/{{ID}}/followed_lists | conn_mod_def::GJLaVZ9t7Rc::02yuND76TIqPSE5dt68GIQ |
| Unfollow a User’s Followed List | DELETE | /2/users/{{ID}}/followed_lists/{{LIST_ID}} | conn_mod_def::GJLaVvNAdgc::xeMvbaP-TgiXvHSGEwjHVw |
This lists 90 of 148 actions. For anything not here, call search_one_platform_actions with platform x. The full catalog is at https://www.withone.ai/knowledge/x.
When a call fails
The error comes from X, not from One. A 400 or 422 means your parameters do not match the schema, so re-read the knowledge and fix the field. A 401 or 403 means the connection needs re-authorizing, which no retry will fix. A 404 means the id is not on this account. A 429 means slow down. Never retry a write more than once: the first attempt may have landed.
Full catalog: https://www.withone.ai/knowledge/x
Integration knowledge by One (withone.ai), licensed under One-Knowledge-1.0. Attribution must be preserved in derivative works.