Connecting your tools
Connecting X (Twitter) to an AI agent
X is the only connector in this family where every action has a price. Since February 2026, the platform charges for its calls: the project consumes credits bought in advance, and publishing costs more than reading. It is a parameter to know before connecting, because a project short of credit refuses to publish with a forbidden access message that never names the real cause. This page says what the agent publishes, and the three traps that waste time.
1. What the agent publishes
An ordinary X account is enough: no professional account is required. Media go out as bytes from your machine, so there is no domain to have verified with X.
The connector covers publishing text, images and videos, as well as reading post statistics. One composition rule to remember: a post carries at most four images, OR a single video, OR a single GIF. X refuses to mix them, and the refusal arrives at the moment of sending.
As on TikTok, X schedules nothing through its programming interface: a delayed post is held by nullbot's editorial calendar, or goes through an aggregator such as Buffer.
2. The cost per call, and the refusal that does not say its name
That is the point that sets this connector apart from all the others. Since February 2026, X charges for every call. The project consumes credits bought in advance, and the rate is not uniform: publishing costs more than reading.
The difficulty is not the principle, it is the symptom. A project short of credit does not return “out of credit”: it returns a forbidden access, exactly the same message as an insufficient authorisation or a suspended account. One then searches on the permissions side while the problem is accounting.
Three practical consequences:
- The credit balance of the X project must be watched as one watches a subscription, independently of nullbot.
- Faced with an unexplained access refusal on X, the first thing to check is the balance, not the authorisations.
- A very frequent publishing strategy on X has a direct cost it does not have elsewhere. That deserves to be arbitrated, not endured.
3. “Read and write”: the authorisation that fails in silence
The authorisation granted to the application must include “Read and write”. An application declared read-only authorises perfectly well: the consent screen passes, the connection is established, everything looks in order. Then every post is refused.
That is this connector's second trap, and it costs time because nothing, at the moment of connecting, signals the error. If you declare your own application in X's developer portal — the case when nullbot does not yet carry its own on your instance — you must create a Web App type application, confidential client, with nullbot's return address declared identically, then enable “Read and write” before pasting the identifier and the secret.
4. The token that dies in two hours
The X access token lives only two hours. That is very short, and without the offline.access scope the connection dies the same day: it then has to be redone by hand, indefinitely.
That scope is among those requested by default, precisely so the connection holds over time without intervention. It is the kind of detail that decides whether a connector is usable in production or only in a demonstration — and it is also why an X connection that “worked yesterday” and no longer works today deserves to be examined on the renewal side before anything else.
5. What it changes over time
X rewards a daily presence and forgives absences badly. It is also the network where the cost of entry is lowest — a text message is enough — and where the mental load is highest, because you have to be there every day.
- Week 1. The account resumes a regular presence, with posts written rather than copied from another network.
- Month 3. Statistics make it possible to distinguish what is read from what is ignored, and the format tightens around what works. The cost per call also becomes measurable, therefore arbitrable.
- Year 2. The account has a recognisable voice and a history that serves as proof of activity — something no one-off campaign provides.
No follower count is promised. What is held is that there is something to publish every day, including the weeks when nobody has the time to think about it.
6. Frequently asked questions
Do I have to pay X to use this connector?
Yes, indirectly: since February 2026, X charges for calls to its programming interface. The project consumes credits bought in advance from X, which is independent of your nullbot subscription.
My post is refused with a forbidden access message. What should I check?
In order: the credit balance of the X project, then the presence of “Read and write” on the authorisation. Both causes produce the same message, and the first is the more frequent.
Can several images and a video be published together?
No. X accepts at most four images, or a single video, or a single GIF — never a mixture. It is a platform rule, refused on sending.
Why does my X connection drop so quickly?
The X access token expires after two hours. Automatic renewal relies on the offline.access scope; without it, the connection dies the same day and must be redone by hand.
Going further
Read next: connecting Buffer, AI agents for social media, or every available connector.