Twitter/X User Tweets API reference
Your first 10 calls are free, no card needed. Pricing and FAQ
Get a free API keycurl "https://api.insightsocial.app/v1/twitter/user/tweets?handle=elonmusk" \ -H "x-api-key: $INSIGHTSOCIAL_API_KEY"
Returns an account's most recent tweets in descending order, with full text, like, retweet, reply, bookmark and view counts, media, and creation time. Around 20 tweets per page.
Use it to read a timeline: pages come newest first, retweets and self-threads included, and you can page deeper by sending pagination.next_cursor back as cursor.
10 credits per call.
Paginates by cursor: see Pagination.
Authorization
apiKey Your key from the dashboard. It starts with isk_.
In: header
Query Parameters
Twitter username without the @ symbol
Only tweets published on or after this date: YYYY-MM-DD (midnight UTC) or an ISO 8601 timestamp. Older tweets are left off the page, and the page that reaches one ends the walk: next_cursor is not returned and pagination.stopped_at is since. Pinned tweets sit out of date order and never end the walk. The page still costs what a page costs, so a daily poll pays for the pages it walks and no more.
The id (post.id) or URL (post.url) of the newest tweet you already hold. The page stops just before it: that tweet and everything after it are left off, next_cursor is not returned, and pagination.stopped_at is known_id. A pinned tweet never counts as the stop point. If it is not on this page the page is returned in full with its cursor, so keep walking. pagination.stopped_at is end when the list ran out first and null while there is more to walk.
Accepted for backwards compatibility and ignored. It shrank the raw payload, which the canonical response never exposed, so it changed nothing you can see
Cursor from the previous response's pagination.next_cursor to fetch the next page
Set to 1 to get the price of this call without making it: data.dry_run carries credits_min and credits_max. Nothing is charged.
Value in
- "1"
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://api.insightsocial.app/v1/twitter/user/tweets?handle=string"{ "success": true, "platform": "string", "endpoint": "string", "schema_version": "2", "pagination": { "next_cursor": "string", "has_more": true, "page_size": 0, "stopped_at": "since" }, "unavailable": [ "string" ], "credits_used": 0, "credits_remaining": 0, "request_id": "string", "cached": true, "idempotent_replay": true, "charge_reason": "string", "free_call": true, "data": { "items": [ { "post": { "id": "string", "url": "http://example.com", "kind": "string", "content": { "text": "string", "media_urls": [ "http://example.com" ], "thumbnail_url": "http://example.com", "duration_seconds": 0 }, "author": { "id": "string", "username": "string", "display_name": "string", "avatar_url": "http://example.com", "verified": true }, "engagement": { "views": 0, "likes": 0, "comments": 0, "shares": 0, "saves": 0 }, "flags": { "nsfw": true, "spoiler": true, "pinned": true, "deleted": true, "likes_hidden": true, "comments_hidden": true, "shares_hidden": true, "views_hidden": true, "saves_hidden": true }, "published_at": "2019-08-24T14:15:22Z", "language": "string", "ext": { "property1": null, "property2": null } } } ], "total": 0, "truncated": true, "ext": { "property1": null, "property2": null } }}User › Media GET
Returns the tweets on an account's Media tab, only those carrying a photo or video, with media URLs, engagement counts, and creation time. View and bookmark counts are null here.
Post › Comments GET
Returns a page of first-level comments on a post, each with text, author, likes, reply count and time.