No bulk or spammy automation
The Developer Policy says never to perform bulk, aggressive or spammy actions, and automated replies or DMs need explicit consent first. Breaches can lead to suspension or permanent revocation of API access. [4]
Guides · social · Verification-gated
Sign in to the X Developer Console with an X account, accept the Developer Agreement and Policy, describe your use case, create an app, buy prepaid pay-per-use credits, and copy the app's keys and tokens (shown once).
Researched · not yet run liveLast researched 25 October 2026 · X Corp · provider site
Everything hangs off an ordinary X user account. The developer account is created by signing that account in to the Developer Console; apps live under it and each app has its own keys. Credits and billing sit on the developer account.
Credits are prepaid and deducted per request; a negative balance blocks API requests.
Steps marked “human step” are ones only you can do: verapli never signs in, submits, pays or accepts terms for you.
Sign in at console.x.com with the X account that will own the apps. You sign in yourself; verapli never handles your X password.
Where: https://console.x.com/
Read and accept the Developer Agreement and Policy, then fill in basic information about how you'll use the API. Describe the real use case; the policy forbids extra apps for the same use case.
Where: https://console.x.com/
Click New App and enter a name, description and use case. The console then generates the app's keys and tokens.
Where: https://console.x.com/
Save a payment method and buy prepaid credits on X's billing page (you enter card details yourself). Set a maximum spend per billing cycle, and optionally auto-recharge with a threshold.
Where: https://console.x.com/
Choose the permission level (Read; Read and write; Read, write and DMs), pick the OAuth 2.0 app type (Web App, Automated App/Bot, Native App, Single Page App) and add the exact callback URLs.
Where: https://console.x.com/
Copy the API key and secret, bearer token, and (if needed) access token/secret and OAuth 2.0 client id/secret. verapli captures them by selector and writes them only to your own files.
verapli captures X_BEARER_TOKEN here by plain code: encrypted in your browser, never shown to AI.
Plain-English summary, not legal advice. Each card links its source.
The Developer Policy says never to perform bulk, aggressive or spammy actions, and automated replies or DMs need explicit consent first. Breaches can lead to suspension or permanent revocation of API access. [4]
You may not register multiple applications for the same or overlapping use case; the exception is up to three apps for development, staging and production of one service. Do not create extra apps to get more rate limit. [4]
You may not exceed or circumvent X API rate limits. [4]
The Developer Agreement forbids using the X API or X Content to fine-tune or train a foundation or frontier model. [5]
You may only distribute Post IDs, DM IDs and/or User IDs, capped at 1,500,000 Post IDs per entity in any 30-day period. Matching X accounts to off-X identities needs express opt-in consent. [4]
Pay-per-use reads are billed per resource returned and writes per request (e.g. $0.005 per post read, $0.015 per post created, $0.200 per post created with a URL). Set a spending limit to avoid surprises. [2]
X may terminate the agreement for any reason at its sole discretion, and immediately on notice for breach. [5]
| Env var | Secret | Format | What it is |
|---|---|---|---|
X_API_KEY | secret | App API key (consumer key), identifies the app and signs OAuth 1.0a requests | |
X_API_SECRET | secret | App API key secret | |
X_BEARER_TOKEN | secret | App-only bearer token for reading public data | |
X_ACCESS_TOKEN | secret | Access token acting as the account that owns the app (OAuth 1.0a) | |
X_ACCESS_TOKEN_SECRET | secret | Access token secret (OAuth 1.0a) | |
X_CLIENT_ID | not secret | OAuth 2.0 client id for user-context requests | |
X_CLIENT_SECRET | secret | OAuth 2.0 client secret (confidential clients only; public clients use PKCE) |
Source [2]
The same entry as JSON: /api/v1/entries/x/developer-api · requirements /api/v1/requirements/x/developer-api · terms /api/v1/terms/x/developer-api.
claude mcp add --transport http verapli https://verapli.com/mcp
> "What do I need for X API (developer console, app and keys), and how long will it take?"
→ tools/call requirements { "provider_id": "x/developer-api" }Provider rules change. This page is generated from verapli registry version 2026.1025.316; spotted something out of date? Tell us. X Corp is not affiliated with verapli.