Guide8 min readApr 1, 2026

How to Set Up Your Own X (Twitter) API Credentials (BYOK) in CodivUpload

Unlike most social platforms, X requires each user to bring their own API credentials for third-party publishing. This isn't a CodivUpload limitation — it's how X's Developer Platform works since the 2023 API restructuring. Here's exactly why and how to set it up.

Why X requires Bring Your Own Key

In early 2023, X overhauled its API access model. The previously free and open Twitter API was replaced by restricted tiers. In February 2026, X moved to a credit-based pay-per-use model. The Free tier allows roughly 500 posts per month per app but with severely limited read access. Every account posting through the same app shares that ceiling.

The pay-per-use model lets developers buy credits and pay per API call, but for a scheduling platform with thousands of users, subsidizing credits for everyone is impractical. Enterprise starts at $42,000+/month — clearly not viable as a shared resource.

The math doesn't work for shared apps: ~500 writes/month on the free tier divided across hundreds of users means most posts would fail with a rate limit error. This is why CodivUpload — and every other legitimate scheduling tool — requires each user to create their own X Developer App.

The good news: the Free tier's ~500 post writes per month is per developer app, and when you create your own, you get the full limit to yourself. For most users scheduling a few posts per week to X, that's more than enough. If you need more, you can purchase API credits under X's pay-per-use model — no impact on anyone else.

What is BYOK (Bring Your Own Key)?

BYOK means you create an X Developer App under your own X account and provide the OAuth 2.0 credentials (Client ID and Client Secret) to CodivUpload. Instead of routing your posts through a shared CodivUpload developer app, your scheduled tweets go through your personal app — with your own rate limits, your own quota, and no dependency on other users.

The process has five parts:

You create an X Developer App at developer.x.com

You configure OAuth 2.0 with Read and Write permissions

You set CodivUpload's callback URL so authorization redirects work

You paste the Client ID and Client Secret into CodivUpload

Your posts now use your dedicated API access — independent of all other users

Setup takes under 10 minutes. You don't need to write any code or understand OAuth internals. CodivUpload handles the entire authorization flow — you just provide the credentials and click authorize.

Step-by-step setup guide

Follow these seven steps to create your X Developer App and connect it to CodivUpload. The entire process takes about 8-10 minutes.

1

Open the X Developer Portal

Navigate to developer.x.com and sign in with the X account you want to post from. In the left sidebar, click Apps. If you already have a Developer App you want to reuse, skip to Step 3. Otherwise, proceed to create a new one.

X Developer Portal — Apps page with Create App button
2

Create a New Application

Click Create App. In the dialog, enter a name for your app (e.g., "CodivUpload" or anything descriptive). Select Development as the environment. Click Create New Client Application to confirm. If your new app doesn't appear in the sidebar immediately, refresh the page.

Create New Client Application dialog with name and environment fields
3

Open Authentication Settings

Click on your app name in the left panel. In the details pane, scroll down to User authentication settings and click Set up. This is where you configure OAuth 2.0 for CodivUpload.

App details showing User authentication settings with Set up button
4

Configure Permissions & App Type

Set App permissions to Read and write — this allows CodivUpload to create posts on your behalf. Under Type of App, select Web App, Automated App or Bot (Confidential client). This generates both a Client ID and a Client Secret, which CodivUpload needs for server-side OAuth 2.0.

App permissions set to Read and write, Type of App set to Web App, Automated App or Bot
5

Fill in App Info

Complete the required fields in the App info section. The exact values are listed in the table below. Once all fields are filled in, click Save Changes.

App info form filled with callback URL, website URL, and policy URLs
6

Copy Your Credentials

After saving, X displays your OAuth 2.0 Client ID and Client Secret. Copy both values immediately — X only shows the Client Secret once. If you lose it, you can regenerate it from the Keys and tokens page, but the old secret is permanently invalidated.

OAuth 2.0 Client ID and Client Secret dialog
7

Connect in CodivUpload

In the CodivUpload dashboard, go to Profiles and click X (Twitter). Check "Use my own X API credentials", paste your Client ID and Client Secret, and click Continue. You'll be redirected to X to authorize the connection. Once approved, your X account appears in Profiles and is ready for scheduling.

Do NOT select "Native App" as the app type. Native Apps are public OAuth clients and don't receive a Client Secret. CodivUpload requires a Confidential client (Web App, Automated App or Bot) for server-side authentication.

App info field values (Step 5):

FieldValue
Callback URI / Redirect URLhttps://api.codivupload.com/v1/integrations/twitter/callback
Website URLhttps://codivupload.com
Terms of Servicehttps://codivupload.com/terms-of-service
Privacy Policyhttps://codivupload.com/privacy-policy

Save your Client Secret immediately. X only displays it once after creation. If you close the dialog without copying it, you'll need to regenerate a new one from the Keys and tokens page — the original is gone permanently.

Common mistakes and troubleshooting

Most BYOK setup issues come from one of five configuration mistakes. Here's what goes wrong and how to fix each one:

"Native App" selected instead of "Web App"

Go back to User authentication settings, change the Type of App to "Web App, Automated App or Bot". Native Apps are public clients and don't receive a Client Secret — CodivUpload requires a Confidential client.

Permissions set to "Read" only

Your app can authenticate but can't create posts. Go to User authentication settings, change App permissions to "Read and write", and save. You may need to re-authorize the connection in CodivUpload.

OAuth redirect fails with a callback mismatch error

The Callback URI in your X app doesn't match what CodivUpload sends. Make sure it's exactly: https://api.codivupload.com/v1/integrations/twitter/callback — no trailing slash, no http instead of https.

Client Secret lost

Go to your app in the Developer Portal, click Keys and tokens, and regenerate the OAuth 2.0 Client Secret. Update the new secret in CodivUpload under Profiles > X (Twitter). The old secret stops working immediately.

App works for your account but not others

Development-mode apps only work for the account that owns them. For other users to authorize, your app needs to be approved for production access. For personal use through CodivUpload, development mode is sufficient.

X API rate limits explained

X moved to a credit-based pay-per-use model in February 2026. Here's the current access structure:

TierPriceWritesReadsApps
Free$0~500 posts/moVery limited1 app
Pay-Per-UseCredit-basedPer creditPer credit (deduped/24h)Multiple
Enterprise$42,000+/moCustomCustomCustom

For most CodivUpload users, the Free tier is sufficient. If you schedule 2-3 posts per week to X, that's roughly 8-12 posts per month — well within the ~500 post write limit. You only need to purchase credits if you're publishing at high volume or running multiple accounts through the same Developer App.

Security & Data

How CodivUpload handles your credentials

Your Client ID and Client Secret are encrypted with AES-256-GCM before being stored — the same encryption standard used by banks and government systems. They are never logged in plaintext, never included in analytics, and never shared with third parties. CodivUpload only uses them to initiate the OAuth 2.0 authorization flow on your behalf.

CodivUpload requests only Read and Write access — we never request Direct Message permissions, follower management, or account deletion capabilities. You can disconnect your X account and delete your stored credentials at any time from the Profiles page in your dashboard.

AES-256-GCM encryptionRead+Write onlyNo DM accessDisconnect anytimeZero plaintext logging

BYOK vs shared app: why dedicated access matters

Some scheduling tools attempt to work around X's rate limits by funneling all users through a single developer app. Here's why that approach fails and why BYOK is the industry standard for X integration:

Shared app (problematic)

  • All users share ~500 writes/month (free tier)
  • Rate limit errors during peak hours
  • One user's burst depletes everyone's quota
  • Platform can lose API access if flagged

BYOK (your own app)

  • Your app, your 50 writes/month minimum
  • No interference from other users
  • Purchase credits independently if needed
  • Full control over your API access

Frequently asked questions

Do I need to pay for X API access to use CodivUpload?

No. The Free tier of X's API allows roughly 500 post writes per month, which is enough for most scheduling workflows. You only need to purchase API credits if you publish at very high volume to X.

Can I use the same X Developer App for multiple CodivUpload workspaces?

Technically yes, but we recommend creating separate apps for separate workspaces. Each app has its own rate limits, and sharing one app across workspaces means sharing those limits. Creating a new app takes under 5 minutes.

What happens if I hit my X API rate limit?

CodivUpload detects rate limit responses from X and marks the post with a clear error status. The post isn't lost — you can retry it once your rate limit resets, or purchase additional API credits for higher throughput.

Is BYOK required for all platforms or just X?

BYOK is required for X and optional for YouTube (where it's called BYOP — Bring Your Own Project). All other platforms (Instagram, Facebook, TikTok, LinkedIn, Threads, Bluesky, Pinterest) connect directly through CodivUpload's built-in OAuth without any developer account setup.

Can I revoke CodivUpload's access to my X account?

Yes, in two ways. Inside CodivUpload, go to Profiles and disconnect your X account — this removes your stored credentials. You can also revoke access from X directly at x.com/settings/connected_apps. Either method immediately stops CodivUpload from posting to your account.

Set up BYOK and start scheduling to X

Create your free CodivUpload account, connect your X Developer App credentials, and schedule your first post in under 15 minutes.