X Setup
Connect X with your own OAuth 1.0a app keys, and post as a brand account instead of the developer account that owns the keys.
X publishes through your own X developer app. You paste the app's OAuth 1.0a Consumer Key and Consumer Key Secret, then choose which account posts: a brand account you authorize with Connect, or the account that owns the app. Open the X channel from Distribution → Channels.
X API posting is pay-per-use. It costs about $0.015 per post, or $0.20 when the post contains a link, so keeping posts link-free is about 13 times cheaper.
1. Create the App
- Go to console.x.com, sign in, and create a Project and an App.
- Open User authentication settings → Set up.
- Set App permissions to Read and write.
- Set Type of App to Web App, Automated App or Bot.
- Add
http://127.0.0.1:53682/callbackas a Callback URI. This is required for Connect. - Save. Skip the Client ID and Client Secret the page shows next. 1MarketingTool uses OAuth 1.0a, not OAuth 2.0.
2. Paste the Consumer Keys
In Keys & Tokens → OAuth 1.0 Keys, copy the two app keys into the X channel and save:
| Field in 1MarketingTool | Where it comes from |
|---|---|
| Consumer Key | OAuth 1.0a Consumer Key. Not the OAuth 2.0 Client ID. |
| Consumer Key Secret | OAuth 1.0a Consumer Key Secret. Not the OAuth 2.0 Client Secret. |
| Access Token / Access Token Secret | Optional. Only needed when you post as the app owner (step 3b). |
Also fill Account Handle (for example @yourbrand) and set X post length to Standard - 280 characters or Premium / Premium+ - 25,000 characters to match the account.
3a. Post as a Brand Account with Connect
Use this when the account you want to post from is not the developer account that owns the app, for example posting as @yourbrand with keys registered under your personal login.
- Save the Consumer Key pair first.
- Click Connect.
- Open the link in a browser that is already signed in to the account you want to post as, and approve the app.
- Run Test connection. It should show that account's @handle.
The tokens X returns are stored on this device. Do not use Generate under Access Token in the X console for this account. Generating a token there always gives you a token for the app owner.
3b. Post as the App Owner
If you only ever post as the account that owns the app, you can skip Connect. In Keys & Tokens → Access Token, click Generate, check that it says Read and Write, and paste the token and secret into Access Token and Access Token Secret.
Posting Rules
- Standard posts are 280 characters. Premium and Premium+ accounts can post up to 25,000 characters once X post length is set to match.
- A post can carry up to 4 images or one video. X does not mix images and video in one post.
Troubleshooting
| Error | Fix |
|---|---|
| Read-only, or "not permitted to" | The app or token is still Read-only. Set App permissions to Read and write, then reconnect or regenerate the access token. |
| "Could not authenticate", invalid or expired token, 401 | The keys are wrong or from the wrong section. Use the OAuth 1.0 Keys, not the OAuth 2.0 Client ID and Secret. |
| HTTP 402, no API credits | This is X billing, not a broken key. Add credits at console.x.com → Billing → Credits. Event subscriptions is for webhooks, not credits. If Billing already shows a balance, the keys belong to a different developer account, or the app is still in Development: open the app that matches the keys, switch it to Production, and retry. |
Next
- Channel Setup Guide — every channel and its auth model
- Publishing — sending posts once channels are connected
- AI Access (MCP) — let AI agents post your approved content