Skip to content

Connect X (Twitter) with your own API keys

Postproxy lets you connect X (formerly Twitter) profiles using your own X developer credentials instead of Postproxy’s shared app. Profiles connected this way are exempt from the shared 24-hour posting quota — your only limit is what your X credit balance and the platform’s per-app rate limits allow.

This guide walks through creating an X developer app on the Pay-Per-Use plan, configuring OAuth 1.0a user authentication for Postproxy’s callback, and saving the consumer keys in your Postproxy account.

Open the X Developer Console and sign in with the X account you want to post from. If this is your first time, you’ll see the developer onboarding form: enter an account name, describe your use case, and accept the Developer Agreement and Policy.

X developer console signup

After submission, you land on the developer dashboard.

Developer dashboard

Open Apps in the sidebar. The page lists apps grouped by environment — Development, Staging, Production. Click Create App in the top right.

Apps page

Give the app a name and pick Production as the environment, then submit.

Create new client application

X immediately shows a one-time popup with a Consumer Key, Secret Key, and Bearer Token. You can ignore those for now. Close the popup.

Application created modal

The new app appears under Production on the Apps page.

App listed under Production

Open the app to reach its Keys & Tokens tab. Scroll to the bottom and find User authentication settings — click Set up.

App detail with User authentication settings

In the authentication form, select these options:

  • App permissions: Read and write and Direct message (or Read and write if you don’t plan to use DMs)
  • Type of App: Web App, Automated App or Bot

Permissions and app type

Scroll down to App info and fill in:

  • Callback URI / Redirect URL: https://app.postproxy.dev/auth/twitter/callback
  • Website URL: https://postproxy.dev (or your own site)

Leave the other fields blank or fill in your own organization details. Click Save Changes.

App info with callback and website URLs

Go back to Keys & Tokens. Under OAuth 1.0a Keys, click Regenerate next to Consumer Key.

Regenerate OAuth 1.0a keys

X reveals the Consumer Key and Consumer Key Secret in a one-time popup. Copy both — the secret is only shown here.

Consumer key and secret popup

In the Postproxy dashboard, open Account → Integrations. Find the Twitter / X — Bring Your Own Keys card, paste your Consumer Key into App API key and the Consumer Key Secret into App API key secret, then click Save keys.

Postproxy integrations — X keys

From this point, any new X profile connected to your Postproxy account uses your developer app for OAuth.

Posting on X requires a non-zero credit balance. Open Billing → Credits in the X developer console.

Credits page

Click Purchase Credits, pick an amount (or enter a custom value), and continue to payment.

Purchase credits modal

Once you have a payment method on file, you can also enable Auto Recharge so the balance tops itself up when it falls below the threshold.

Auto Recharge enabled

Go to Profiles → Connect account → X (Twitter) in Postproxy. You’ll be redirected to X’s authorization screen — approve access and you’ll land back on Postproxy with the new profile connected. The profile is now ready to publish through your developer app.

X profiles that were connected before you saved BYO keys still post through Postproxy’s shared app. To migrate them, disconnect the profile and reconnect it after saving your keys — the new connection picks up your developer app automatically.

Callback URL not approved — the callback in your X app doesn’t match https://app.postproxy.dev/auth/twitter/callback exactly. Check for trailing slashes, http vs https, or typos.

403 Forbidden when posting — your X app permissions are likely set to read-only. Reopen User authentication settings, switch to Read and write and Direct message, save, then reconnect the profile so the new scope takes effect.

Posts fail with a billing or credits error — your X credit balance is empty. Top up under Billing → Credits and enable Auto Recharge to avoid future drops.

Posts succeed in Postproxy but never appear on X — open the post status in Postproxy. If X rejected the post after acceptance (duplicate content, account suspended, media rejected), the platform-level status will show the X error message.