Migrate from twitterapi.io
What changes, what stays.
Endpoint names follow twitterapi.io where possible. For most integrations the migration is the base URL and the header name.
| twitterapi.io | tweetapi.dev | |
|---|---|---|
| Base URL | https://api.twitterapi.io | https://api.tweetapi.dev/v1 |
| Key header | X-API-Key | x-api-key |
| Per-call minimum | $0.00015 | none |
| Empty result | charged | free |
| Failed request | charged in some cases | free |
| Bonus credit expiry | 30 days | 12 months on all credits |
| Profile lookup | 1.2 credits | 1 credit |
| Followers | 1 to 3 credits, tiered | 0.1 credit |
| Response shape | X internal objects passed through in places | one flat Tweet and one flat User, stable |
Endpoint map
| twitterapi.io | tweetapi.dev |
|---|---|
/twitter/user/info?userName= | /v1/users/{handle} |
/twitter/user/last_tweets?userName= | /v1/users/{user}/tweets |
/twitter/tweets?tweet_ids= | /v1/tweets/{id} (batch lookup coming) |
/twitter/tweet/advanced_search?query= | /v1/tweets/search?q= |
/twitter/tweet/replies?tweetId= | /v1/tweets/{id}/thread |
/twitter/user/followers?userName= | /v1/users/{user}/followers |
/twitter/user/followings?userName= | /v1/users/{user}/following |
Field map, Tweet
| twitterapi.io | tweetapi.dev |
|---|---|
id | id |
text | text |
createdAt (Twitter date string) | created_at (ISO 8601, UTC) |
author.userName | author.handle |
likeCount, retweetCount, replyCount, quoteCount, viewCount | likes, retweets, replies, quotes, views |
isReply, inReplyToId | is_reply, in_reply_to_id |
quoted_tweet | quoted_id (fetch with /v1/tweets/{id}) |
extendedEntities.media[] | media[] with type, url, width, height |
What is not here yet
Write actions, login, direct messages: never. Lists, communities, trends, batch lookups, streaming: on the roadmap.