Twitter Following API v2 | Richer Following Data
The v2 variant of the following endpoint. Same data as the v1 following call, with a more consistent cursor model and additional user fields. Prefer v2 for new integrations. Cost: $0.0008 per call.
User Following v2 is the upgraded following endpoint: the same following data as v1 with a more consistent cursor model and additional user fields such as created_at. Prefer it for new integrations. Page until the users array comes back empty, since the cursor stays non-null on the last page. Each page is one $0.0008 read.
Authorization
bearerAuth Pass your API key as a bearer token on every request: Authorization: Bearer <API_KEY>.
In: header
Query Parameters
Handle without the leading @.
Numeric user ID; provide either username or user_id.
Pagination cursor from a previous response.
Max items to return for this page. Default 20; clamped to 1-100.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/user/following_v2?username=naval&user_id=44196397&count=20"{ "users": [ { "id": "2178758961", "username": "balajis", "name": "Balaji", "followers_count": 1000000, "verified": true, "created_at": "Fri Nov 08 04:22:10 +0000 2013" } ], "next_cursor": "DAABCgABF..."}{ "error": "bad_request", "message": "Missing or malformed parameter. Fix the request before retrying."}{ "error": "unauthorized", "message": "The API key is missing, malformed, or revoked. Check the Authorization header."}{ "error": "insufficient_credits", "message": "Your balance is exhausted. Top up your credits to continue."}{ "error": "not_found", "message": "The resource does not exist, for example a deleted tweet or a private account."}{ "error": "rate_limited", "message": "Too many requests. Back off and retry with exponential backoff."}{ "error": "server_error", "message": "Something failed on our side. Retry with backoff; if it persists, contact support."}Pricing
| Unit | Price |
|---|---|
| Per call | $0.0008 |
| Per 1,000 calls | $0.80 |
| Per 1,000 records (~20 per call) | ~$0.04 |
Each page is one $0.0008 read, so mapping a heavy-following account costs one call per page. Stop at the depth your analysis needs.
When to use
Use it for new graph builds, for example mapping who an account follows with creation dates included per row.
Pagination
This endpoint is cursor-paginated and returns roughly 20 records per call. Pass the next_cursor from each response back as the cursor parameter to read the next page. Stop when the records array comes back empty: follower-graph endpoints return a non-null cursor even on the final page, so the empty array is the only reliable stop signal. See Pagination for the full loop.
Related endpoints
- User Following: Page through the accounts a user follows.
- User Followers (v2): Followers endpoint with the v2 response shape and richer cursoring.
- User Info by Username: Fetch a full profile by @handle.
FAQ
Why choose v2 over v1 following?
v2 returns the same following accounts with a more consistent cursor model and extra user fields like created_at. Prefer it for new integrations.
Does v2 change the stop condition?
No. The cursor stays non-null even on the final page, so stop paging when the users array comes back empty.
Is the price the same as v1?
Yes. Both are standard reads at $0.0008 per page; v2 just returns richer fields at no extra cost.
User Followers (v2) GETNew
The v2 variant of the followers endpoint. Same data, with a more consistent cursor model and additional user fields. Prefer v2 for new integrations. Cost: $0.0008 per call.
Verified Followers GETNew
Fetch only the Verified (Blue) accounts that follow a user, cursor-paginated. A fast way to filter a large follower base down to higher-signal accounts. Cost: $0.0008 per call.