No output yet. Submit the form to generate content.
Transparent pricing with no hidden fees. Pay as you go.
| Rule & Modality | Channel | Credits | Price (USD) | Official / Reference Price | Daily Savings |
|---|---|---|---|---|---|
user-tweets otherTwitter | Starter | 0.01per post | $0.00005 | - | - |
Competitor pricing costs $45.450 more
ApiPass is 90.90% lower, estimated at multiple calls returning 10,000 returned posts total
user-tweets
ApiPass Price
$0.0005
0.1 credits per post
Competitor Prices
Complete guide to using twitter-api-graphql
Retrieve a complete timeline of tweets posted by any Twitter user with a single API call.

The Twitter Graphql User Tweets API on ApiPass is a powerful endpoint that lets developers fetch the tweet timeline of any public Twitter (X) user by simply providing their user ID. Built on top of Twitter's internal GraphQL infrastructure, this API returns rich, structured tweet data — including original posts, replies, retweets, media attachments, engagement metrics, and timeline metadata. ApiPass wraps the complexity of Twitter's GraphQL layer into a clean, asynchronous task-based REST interface: you submit a request to /api/v1/jobs/createTask with the target userId and optional pagination parameters, receive a taskId, and then retrieve the full timeline results via /api/v1/jobs/recordInfo. With smart provider routing, optional webhook callbacks, and multiple channel tiers (starter, regular, official, or auto), ApiPass makes it effortless to integrate user timeline data into your applications without managing OAuth tokens, rate limits, or scraping infrastructure.
Skip the lengthy approval process and OAuth setup. Just generate an ApiPass API key and start fetching user timelines immediately with a simple Bearer token.
The default channel: auto setting automatically allocates tasks across available providers based on real-time pricing and stability metrics, balancing minimal cost with reliable performance.
Choose between starter (ultra-low-cost), regular (standard tier far below official API pricing), and official (Twitter's native API with maximum stability) — tailor your spending to your reliability requirements.
The job-based design (createTask → recordInfo) handles long-running requests gracefully, eliminating client-side timeouts and enabling reliable bulk processing.
Provide an optional callBackUrl to receive automatic notifications the moment task processing completes, removing the need for inefficient polling loops.
Fine-tune your response payload using boolean flags like withVoice, withV2Timeline, withQuickPromoteEligibilityTweetFields, and includePromotedContent to get exactly the data you need.
Pass any public Twitter userId (e.g., 44196397) along with a count parameter to retrieve a paginated batch of tweets including all native GraphQL metadata.
Every task exposes real-time state transitions (waiting → queuing → generating → success / fail), along with createTime, completeTime, and costTime fields for performance monitoring.
Results are delivered in a clean resultJson.resultObject structure that mirrors Twitter's native GraphQL response, making parsing and downstream processing straightforward.
Continuously pull tweets from key influencers, competitors, or brand accounts to power real-time monitoring dashboards.
Build personal or organizational tweet archivers that preserve full timelines, including media and engagement statistics, for compliance or historical reference.
Collect large-scale, structured tweet datasets from specific users to fine-tune LLMs, sentiment classifiers, or recommendation systems.
Provide creators and marketers with detailed timeline insights, posting patterns, and engagement breakdowns for their own or competitor accounts.
See how ApiPass stacks up against Twitter's native developer platform in terms of cost, accessibility, and integration effort.
Twitter's official GET /2/users/:id/tweets endpoint requires a paid Developer account (Basic tier and above) with strict monthly cap limits and a manual approval process. ApiPass eliminates this barrier entirely — just sign up, get an API key, and pay per-task at rates far below the official API, with the option to use the official channel when you need parity-grade reliability.
The official API requires OAuth 2.0 setup, bearer token management, pagination cursor handling, and careful rate-limit tracking. ApiPass replaces this with a simple two-step task pattern (createTask + recordInfo) plus optional webhooks — no auth flow beyond a single API key, and no rate-limit logic to maintain on your end.
Track competitor brand accounts to understand their content cadence, messaging strategy, and audience engagement patterns.
Marketing agencies can pull historical tweet data to verify an influencer's posting consistency, content quality, and audience interaction before signing contracts.
Aggregate tweets from influential traders, project founders, or analysts to feed automated trading signals and market sentiment models.
Researchers and journalists can collect tweet timelines of public figures for discourse analysis, misinformation studies, or investigative reporting.
Sign up on ApiPass and generate your Bearer API key from the dashboard. This single key authenticates all your requests — no OAuth flow, no developer account approval, no token refresh logic required.
Send a POST request to https://api.apipass.dev/api/v1/jobs/createTask with the model set to twitter/graphql/user-tweets, the target userId, and your desired count. You can fine-tune the response payload using boolean flags such as includePromotedContent, withVoice, withV2Timeline, and withQuickPromoteEligibilityTweetFields. Optionally include a callBackUrl to receive a push notification the moment your task completes. The API will return a unique taskId for tracking.
Use the returned taskId to query GET /api/v1/jobs/recordInfo?taskId=.... Monitor the state field as it transitions through waiting, queuing, and generating. Once state becomes success, the full tweet timeline will be available in the resultJson.resultObject field — ready to parse and integrate into your application.
All APIs require authentication via Bearer Token.
Authorization: Bearer
Get user tweet timeline
The API accepts a JSON payload with the following structure:
1{
2 "model": "string",
3 "callBackUrl": "string (optional)",
4 "channel": "auto",
5 "input": {
6 "variables": {
7 "userId": "string",
8 "count": "number",
9 "includePromotedContent": "boolean",
10 "withQuickPromoteEligibilityTweetFields": "boolean",
11 "withVoice": "boolean",
12 "withV2Timeline": "boolean",
13 }
14 }
15}modelRequiredstringThe model name to use for generation
"twitter/graphql/user-tweets"
callBackUrlOptionalstringCallback URL for task completion notifications. If omitted, no callback will be sent.
"https://your-domain.com/api/callback"
channelOptionalstringYou may specify the corresponding provider within APIPASS via the channel parameter; these providers handle the actual image and video generation tasks. APIPASS currently offers three provider options:
The default value for the channel parameter is auto. When enabled, APIPASS automatically allocates tasks across available providers based on real-time pricing and stability metrics to balance minimal cost and reliable performance. Retain the default auto value unless you have custom routing requirements.
Available options:
auto
The input object contains the following parameters:
input.variables.userIdRequiredstring44196397
input.variables.countOptionalnumber20
input.variables.includePromotedContentOptionalbooleanfalse
input.variables.withQuickPromoteEligibilityTweetFieldsOptionalbooleantrue
input.variables.withVoiceOptionalbooleantrue
input.variables.withV2TimelineOptionalbooleantrue
1curl -X POST "https://api.apipass.dev/api/v1/jobs/createTask" \
2 -H "Content-Type: application/json" \
3 -H "Authorization: Bearer YOUR_API_KEY" \
4 -d '{
5 "model": "twitter/graphql/user-by-screen-name",
6 "callBackUrl": "https://your-domain.com/api/callback",
7 "input": {
8 "variables": {
9 "userId": "44196397",
10 "count": 20,
11 "includePromotedContent": false,
12 "withQuickPromoteEligibilityTweetFields": true,
13 "withVoice": true,
14 "withV2Timeline": true
15 }
16 }
17 }'1{
2 "code": 200,
3 "message": "success",
4 "data": {
5 "taskId": "task_12345678"
6 }
7}codeStatus code, 200 for success, others for failure
messageResponse message, error description when failed
data.taskIdTask ID for querying task status and results