X API Prijzen en Rate Limits (2026)

X API Prijzen en Rate Limits (2026)

Wat de X API kost, wat je ermee kunt publiceren en de rate limits op posten, gebaseerd op de eigen ontwikkelaarsdocumentatie van X en niet op een samenvatting ervan.

Het ontwikkelaarsplatform van X rekent de API nu per aanvraag af in plaats van via een abonnementsniveau. Het aanmaken van een post wordt per aanroep in rekening gebracht, en POST /2/tweets is beperkt tot 100 aanvragen per gebruiker per 15 minuten en 10.000 per app per 24 uur. Als je overweegt er rechtstreeks tegenaan te bouwen, bepalen deze twee feiten het grootste deel van je architectuur.

Wat kost de X API eigenlijk?

De officiële prijspagina beschrijft een creditmodel, geen benoemde abonnementen. Je koopt credits, stelt een uitgavenlimiet in, en elke aanroep wordt afgeschreven van het saldo.

ActieVermelde prijs
Post aanmaken$ 0,015 per aanvraag
Post met een URL$ 0,200 per aanvraag
Post (opgeroepen)$ 0,010 per aanvraag
DM en gebruikersinteracties$ 0,015 per aanvraag
Interacties verwijderen$ 0,010 per aanvraag
Lezen: posts$ 0,005 per resource
Lezen: gebruikers, DM’s, gevolgd door/volgers$ 0,010 per resource
Lezen: likes, mutes, blokkeringen$ 0,001 per resource
Eigen leesacties (je eigen data)$ 0,001 per resource

Twee details wegen zwaarder dan de stukprijzen zelf. Een post met een URL kost meer dan 13 keer zoveel als een gewone post, wat een aanzienlijke kostenpost is als je voor je werk links publiceert. En pay-per-usage-abonnementen zijn beperkt tot 3 miljoen leesacties van posts per maandelijkse factureringscyclus, dus leesintensieve producten stuiten op een plafond dat geen hoeveelheid credits kan wegnemen.

Resources worden binnen een UTC-venster van 24 uur gededupliceerd, dus dezelfde resource twee keer op een dag opvragen wordt maar één keer in rekening gebracht.

Let op: deze cijfers zijn geverifieerd tegen docs.x.com/x-api/getting-started/pricing per september 2026. Platformen wijzigen dit zonder aankondiging.

Wat we niet konden verifiëren. Oudere abonnementen Free, Basic en Pro met maandelijkse postlimieten worden op veel plekken online genoemd. We konden geen officiële pagina vinden die deze vermeldt: de huidige prijs- en introductiepagina’s beschrijven pay-per-usage zonder benoemde niveaus, en de URL van de abonnementenpagina geeft een 404. We herhalen geen cijfers van derden. Controleer de Developer Console voor de tarieven die voor jouw account gelden.

Wat kan de X API publiceren, en wat niet?

POST /2/tweets accepteert text, optioneel media.media_ids, reply, poll, geo, reply_settings en enkele vlaggen zoals made_with_ai en paid_partnership.

Media maakt geen deel uit van die aanroep. Je uploadt apart via de chunked upload-endpoints en geeft de resulterende media_id mee. Eén post accepteert tot 4 foto’s, 1 geanimeerde GIF, of 1 video.

De beperkingen die je wilt kennen voordat je begint:

  • quote_tweet_id is alleen voor Enterprise. Quote-posten is niet beschikbaar op het algemene endpoint.
  • Videolimieten hangen af van het postende account, niet van je app. Standaardaccounts zijn beperkt tot 20 minuten en 8 GB; X Premium- en geverifieerde accounts tot 125 minuten en 16 GB. Je uploader moet beide kunnen afhandelen, want de limiet hoort bij de gebruiker namens wie je post.
  • Polls zijn aan banden gelegd. 2 tot 4 opties, duur tussen 5 en 10.080 minuten.
  • De referentie voor het aanmaken van posts vermeldt geen tekenlimiet. We konden er geen verifiëren op die pagina. Zie de X-tekenlimiet post voor wat het product zelf afdwingt.

Let op: deze cijfers zijn geverifieerd tegen docs.x.com/x-api/posts/creation-of-a-post per september 2026. Platformen wijzigen dit zonder aankondiging.

Hoe ziet het authenticatiemodel er in gewone woorden uit?

Twee modi, en posten werkt maar in één ervan.

App-only bearer token. Eén credential die je applicatie vertegenwoordigt. Deze leest openbare data. Posten kan er niet mee, omdat er geen gebruiker is om namens te posten.

OAuth 2.0 Authorization Code met PKCE, in gebruikerscontext. De gebruiker wordt naar het autorisatiescherm van X gestuurd, komt terug met een code, en jij wisselt die om voor een toegangstoken. Posten vereist de scope tweet.write, naast tweet.read en users.read. Wil je kunnen blijven posten nadat het toegangstoken verloopt, dan moet je bij autorisatie offline.access aanvragen: dat zorgt ervoor dat er een refresh token wordt uitgegeven.

Dat laatste punt is waar veel mensen door verrast worden. offline.access is per autorisatie opt-in. Laat je het weg, dan moet elke gebruiker interactief opnieuw autoriseren, wat fataal is voor een planningstool dat om 3 uur ‘s nachts publiceert. De documentatie vermeldt de levensduur van het toegangstoken niet, dus ga uit van een korte levensduur en ververs proactief.

Wat zijn de rate limits op posten?

EndpointPer gebruikerPer app
POST /2/tweets100 per 15 minuten10.000 per 24 uur

Elke respons bevat x-rate-limit-limit, x-rate-limit-remaining en x-rate-limit-reset (een Unix-tijdstempel). Lees deze uit in plaats van je eigen aanroepen te tellen, want jouw teller en die van X raken uit elkaar zodra er een retry plaatsvindt.

De documentatie stelt expliciet dat rate limits en facturering losstaande zaken zijn. Onder de rate limit blijven beperkt je uitgaven niet, en een uitgavenlimiet instellen voorkomt geen 429’s. Je hebt beide controles nodig.

Let op: deze cijfers zijn geverifieerd tegen docs.x.com/x-api/fundamentals/rate-limits per september 2026. Platformen wijzigen dit zonder aankondiging.

Wat kost je echt drie weken?

Niet de publicatieaanroep. Die is in een middag geregeld.

Token vernieuwen. offline.access aanvragen, refresh tokens versleuteld opslaan, rotatie afhandelen en een herverbindingspad voor gebruikers van wie de vernieuwing mislukt. Dit is een achtergrondtaak met eigen faalscenario’s, geen functie.

Chunked media-upload. INIT, APPEND, FINALIZE, en dan pollen voor de verwerkingsstatus voordat de media-id bruikbaar is in een post. Video’s mislukken bij het transcoderen, en dat gebeurt nadat je upload al 200 teruggaf.

Videolimieten per account. 20 minuten versus 125 minuten is een vertakking in je code op basis van wiens account je post, en dat weet je niet alleen op basis van je app-credentials.

Kostentoerekening. Een prijs per aanvraag betekent dat iemand uitgaven aan klanten moet toewijzen, of je ontdekt de URL-toeslag pas via een factuur.

429-afhandeling die geen slaap is. Het venster per gebruiker is 15 minuten. Een naïeve retry-lus maakt van één rate-limited post een vastgelopen achtergrondtaak.

De korte versie

  • Prijzen zijn pay-per-usage credits. Post aanmaken kost $ 0,015 per aanvraag; een post met een URL kost $ 0,200.
  • Leesacties op pay-per-usage zijn beperkt tot 3 miljoen posts per maandelijkse factureringscyclus.
  • POST /2/tweets staat 100 per gebruiker per 15 minuten toe, 10.000 per app per 24 uur.
  • Posten vereist OAuth 2.0 PKCE in gebruikerscontext met tweet.write, plus offline.access als je refresh tokens wilt.
  • Media wordt apart geüpload: 4 foto’s, 1 GIF, of 1 video. Quote-posten is alleen voor Enterprise.
  • Benoemde Free-/Basic-/Pro-niveaus konden in september 2026 niet worden geverifieerd tegen een officiële pagina.

Dit één keer doen in plaats van per platform

Het werk hierboven is echt, en het is X-specifiek. LinkedIn vereist twee aparte apps met verschillende scopes. TikTok vereist het doorlopen van een Content Posting API-audit. Threads gebruikt een container-dan-publiceer-volgorde met een tokenvernieuwingscyclus van 60 dagen. Niets ervan is overdraagbaar.

BulkPublish biedt één REST API voor 15 platformen: Facebook, Instagram, TikTok, YouTube, X, Bluesky, Threads, Pinterest, LinkedIn, Google Business Profile, Mastodon, Discord, Telegram, Tumblr en Snapchat. Eén authenticatiemodel, één mediapipeline, één postobject, en de tokenvernieuwing en asynchrone statuscontrole per platform worden er achter afgehandeld. De ontwikkelaarsdocumentatie en de REST API-referentie behandelen de endpoints.

Gerelateerd