{"id":19433104,"url":"https://github.com/pariazar/twitster","last_synced_at":"2025-10-26T21:17:21.011Z","repository":{"id":65147723,"uuid":"583956801","full_name":"pariazar/twitster","owner":"pariazar","description":"A free and unlimited API for twitter.","archived":false,"fork":false,"pushed_at":"2023-05-29T21:06:06.000Z","size":377,"stargazers_count":7,"open_issues_count":8,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-02-09T23:38:42.973Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pariazar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-12-31T16:25:54.000Z","updated_at":"2024-02-09T23:38:42.974Z","dependencies_parsed_at":"2023-02-14T08:45:36.275Z","dependency_job_id":null,"html_url":"https://github.com/pariazar/twitster","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pariazar%2Ftwitster","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pariazar%2Ftwitster/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pariazar%2Ftwitster/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pariazar%2Ftwitster/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pariazar","download_url":"https://codeload.github.com/pariazar/twitster/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223967481,"owners_count":17233403,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-10T14:38:30.605Z","updated_at":"2025-10-26T21:17:15.959Z","avatar_url":"https://github.com/pariazar.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Twitster\n[![npm](https://img.shields.io/npm/v/twitster.svg?style=flat-square)](https://www.npmjs.com/package/twitster)\n![building workflow](https://github.com/hamedpa/twitster/actions/workflows/nodejs.yml/badge.svg)\n[![license](https://img.shields.io/npm/l/@vitalets/google-translate-api.svg)](https://www.npmjs.com/package/@vitalets/google-translate-api)\n![alt text](./img/logo.png?raw=true)\n\n\n\nA free and unlimited API for twitter.\n## Contents\n\n\u003c!-- toc --\u003e\n\n- [Features](#features)\n- [Installation](#installation)\n- [Usage](#usage)\n  * [Get-Tweets](#get-tweets)\n  * [Get-Tweet-Replies](#get-tweet-replies)\n  * [Search-Users](#search-users)\n  * [Get-User-Detail](#get-user-detail)\n  * [Translate-Tweets](#translate-tweets)\n- [License](#license)\n\n\u003c!-- tocstop --\u003e\n\n## Features\n\n* explore new tweets\n* search keyword inside tweets\n* search users\n* get and search tweets for single user\n* translate tweets\n\n## Installation\n```bash\nnpm install twitster\n```\n\n## Usage\n\n### Get-Tweets\n\nto extract list of tweets:\n\n#### Parameters \n- `keyword` - keyword or hashtag for your tweets list\n- `options` - optional parameters\n    - `options.nextPageToken` - next page token for getting next page \n    - `options.page` - page number for get get specific page\n\n\n\n##### Basic example\n```javascript\nvar { findTopTweets } = require(\"twitster\");\n\nvar listOfTweets = await findTopTweets(\"bitcoin\");\n\nconsole.log(listOfTweets);\n```\n##### Output\n```javascript\n[{\n  authorName: 'Airmass',\n  authorBlueCheckMark: false,\n  retweeted: 'Deniz.Hodl⚡🐂',\n  tweetContent: 'All you need to know about investing in #Bitcoin.',\n  hashtags: [ '#Bitcoin' ],\n  commentCount: '1',\n  likeCount: '5',\n  retweetCount: '0',\n  quoteCount: '0',\n  tweetTime: '1m',\n  tweetCreatedAt: 'Dec 31, 2022 · 9:43 AM UTC',\n  tweetLink: '/IT_AIRmass/status/1609123005396819969#m',\n  images: [],\n  nextPageToken: 'scroll%3AthGAVUV0VFVBaAgLLF_8vg1CwWhMC8-a7O4NQsEnEVhIZ6FYCJehgEVVNFUjUBFQAVAAA%3D'\n},\n{\n    authorName: 'Math Profesor',\n    authorBlueCheckMark: false,\n    tweetContent: 'absolut scarcity can only be achieved with #bitcoin',\n    hashtags: [ '#bitcoin' ],\n    commentCount: '0',\n    likeCount: '0',\n    retweetCount: '0',\n    quoteCount: '0',\n    tweetTime: '9s',\n    tweetCreatedAt: 'Dec 31, 2022 · 9:44 AM UTC',\n    tweetLink: '/MathProfesor/status/1609123389364371456#m',\n    images: [\n      'https://nitter.tiekoetter.com/pic/media%2FFnUar77WIAAwzdu.jpg%3Fname%3Dsmall%26format%3Dwebp'\n    ],\n    nextPageToken: 'scroll%3AthGAVUV0VFVBaAgLLF_8vg1CwWhMC8-a7O4NQsEnEVhIZ6FYCJehgEVVNFUjUBFQAVAAA%3D'\n}];\n```\n\n##### Pagination example\nif you want to get next page list you can use nextToken in previous request\n\n```javascript\nvar { findTopTweets } = require(\"twitster\");\n\nvar listOfTweets = await findTopTweets(\"bitcoin\", options = { nextPageToken: 'scroll%3AthGAVUV0VFVBaEgLPxirPi1CwWgICy8fTM4tQsEnEV8PF5FYCJehgEVVNFUjUBFRAVAAA%3D' });\n\nconsole.log(listOfTweets);\n```\n\nif you want to get list by page number, need to set page in options\n\n```javascript\nvar { findTopTweets } = require(\"twitster\");\n\nvar listOfTweets = await findTopTweets(\"bitcoin\", options = { page: 2 });\n\nconsole.log(listOfTweets);\n```\n\n\u003chr\u003e\n\n### Get-Tweet-Replies\n\nto get replies for a single tweet\n\n#### Parameters \n- `link` - tweet link get from [Get-Tweets](#get-tweets)\n- `options` - optional parameters\n    - `options.nextPageToken` - next page token for getting next page\n\n##### Basic example\n```javascript\nvar { getTweetReplies } = require(\"twitster\");\n\nvar listOfReplies = await getTweetReplies('IT_AIRmass/status/1609123005396819969#m');\n\nconsole.log(listOfReplies);\n```\n##### Output\n```javascript\n[{\n    authorName: 'Islaay',\n    authorBlueCheckMark: false,\n    replyingTo: 'Replying to @IT_AIRmass',\n    tweetContent: 'We have waited a long time for 2023... The implosion of the CT bera hivemind',\n    hashtags: null,\n    commentCount: '0',\n    likeCount: '0',\n    retweetCount: '0',\n    quoteCount: '0',\n    tweetTime: '1h',\n    tweetCreatedAt: 'Dec 31, 2022 · 10:30 AM UTC',\n    tweetLink: '/JIslaay/status/1609134888728563713#m',\n    nextPageToken: 'LBlGgMDU6Z%2FF4NQsgICwlcv74NQsgsDU5fvp5dQsgICzlfaR7tQsJQYRAAA%3D#r'\n  },\n  {\n    authorName: 'direwolf',\n    authorBlueCheckMark: false,\n    replyingTo: 'Replying to @IT_AIRmass',\n    tweetContent: 'Based.',\n    hashtags: null,\n    commentCount: '0',\n    likeCount: '0',\n    retweetCount: '0',\n    quoteCount: '0',\n    tweetTime: '15m',\n    tweetCreatedAt: 'Dec 31, 2022 · 11:43 AM UTC',\n    tweetLink: '/direwol54352270/status/1609153167354126336#m',\n    nextPageToken: 'LBlGgMDU6Z%2FF4NQsgICwlcv74NQsgsDU5fvp5dQsgICzlfaR7tQsJQYRAAA%3D#r'\n}];\n```\n\n##### Pagination example\nif you want to get next page list you can use nextToken in previous request\n\n```javascript\nvar { getTweetReplies } = require(\"twitster\");\n\nconst listOfReplies = await getTweetReplies('direwol54352270/status/1609153167354126336#m',  options = { nextPageToken: 'LBlGgMDU6Z%2FF4NQsgICwlcv74NQsgsDU5fvp5dQsgICzlfaR7tQsJQYRAAA%3D#r' });\n\nconsole.log(listOfReplies);\n```\n\u003chr\u003e\n\n### Search-Users\nto search users and get list of them:\n\n#### Parameters \n- `username` - username or full name\n- `options` - optional parameters\n    - `options.nextPageToken` - next page token for getting next page\n\n\n\n##### Basic example\n```javascript\nvar { findUsers } = require(\"twitster\");\n\nvar listOfUsers = await findUsers(\"messi\");\n\nconsole.log(listOfUsers);\n```\n##### Output\n```javascript\n[{\n    fullName: 'Lionel Messi Fan Club',\n    username: '@LMessifanclub',\n    bioInfo: 'A must follow for a true Messi fan! Watch videos about Leo on our YouTube channel! Be with us, be Messified!',\n    link: '/LMessifanclub',\n    nextPageToken: 'DAAFCgABFlTaB7l__z8LAAIAAADwRW1QQzZ3QUFBZlEvZ0dKTjB2R3AvQUFBQUJRUkRUSVZZRmZRQUFBQUFBQVBEODJsQUFBQUFEOFZpYTRBQUFBQVVzRHJ4QUFBQUFBQTl2OU9DeldVenB2WEFBQVRCWDl0QmRXZ0F4R09ac0JWMTlBQkFBQUFBR0Naa2pvVWp1VzZ4eGZBQmdBQUFBQ3Q2anBNQUFBQUFBTUVHeTBBQUFBQXFkNytlQUFBQUFDMnZSUnRBQUFBQUVJZVRlNFAzUHJzTGRSd0FBQUFBQUEyYkY4Y0RrY0ZscFFXd0FBU3NtM1YrVll3QVFBQUFBQmMvbTJXAAA'\n  },\n  {\n    fullName: 'Leo Messi',\n    username: '@leomessiprivate',\n    bioInfo: 'Jugador del PSG. 🇨🇵',\n    link: '/leomessiprivate',\n    nextPageToken: 'DAAFCgABFlTaB7l__z8LAAIAAADwRW1QQzZ3QUFBZlEvZ0dKTjB2R3AvQUFBQUJRUkRUSVZZRmZRQUFBQUFBQVBEODJsQUFBQUFEOFZpYTRBQUFBQVVzRHJ4QUFBQUFBQTl2OU9DeldVenB2WEFBQVRCWDl0QmRXZ0F4R09ac0JWMTlBQkFBQUFBR0Naa2pvVWp1VzZ4eGZBQmdBQUFBQ3Q2anBNQUFBQUFBTUVHeTBBQUFBQXFkNytlQUFBQUFDMnZSUnRBQUFBQUVJZVRlNFAzUHJzTGRSd0FBQUFBQUEyYkY4Y0RrY0ZscFFXd0FBU3NtM1YrVll3QVFBQUFBQmMvbTJXAAA'\n}];\n```\n\n##### Pagination example\nif you want to get next page list you can use nextToken in previous request\n\n```javascript\nvar { findUsers } = require(\"twitster\");\n\nvar listOfUsers = await findUsers(\"messi\", options = { nextPageToken: 'DAAFCgABFlTaB7l__z8LAAIAAADwRW1QQzZ3QUFBZlEvZ0dKTjB2R3AvQUFBQUJRUkRUSVZZRmZRQUFBQUFBQVBEODJsQUFBQUFEOFZpYTRBQUFBQVVzRHJ4QUFBQUFBQTl2OU9DeldVenB2WEFBQVRCWDl0QmRXZ0F4R09ac0JWMTlBQkFBQUFBR0Naa2pvVWp1VzZ4eGZBQmdBQUFBQ3Q2anBNQUFBQUFBTUVHeTBBQUFBQXFkNytlQUFBQUFDMnZSUnRBQUFBQUVJZVRlNFAzUHJzTGRSd0FBQUFBQUEyYkY4Y0RrY0ZscFFXd0FBU3NtM1YrVll3QVFBQUFBQmMvbTJXAAA' });\n\nconsole.log(listOfUsers);\n```\n\n\u003chr\u003e\n\n### Get-User-Detail\n\nto get detail of user\n\n#### Parameters \n- `username` - username or full name\n- `options` - optional parameters\n    - `options.nextPageToken` - next page token for getting next page\n    - `options.filter` - keyword to add filter tweets\n\n\n\n##### Basic example\n```javascript\nvar { getUserDetail } = require(\"twitster\");\n\nvar detailOfUser = await getUserDetail(\"Bitcoin\");\n\nconsole.log(detailOfUser);\n```\n##### Output\n```javascript\n{\n  profileInfo: {\n    fullName: 'Bitcoin',\n    username: '@Bitcoin',\n    bio: \"Bitcoin is an open source censorship-resistant peer-to-peer immutable network. Trackable digital gold. Don't trust; verify. Not your keys; not your coins.\",\n    location: 'Worldwide',\n    website: 'bitcoin.org/bitcoin.pdf',\n    joinDate: ' Joined August 2011',\n    tweetCounts: '24,551',\n    following: '26',\n    follower: '5,685,033',\n    likes: '2,928'\n  },\n  tweets: [\n     {\n      authorName: 'Bitcoin',\n      authorBlueCheckMark: false,\n      pinnedTweet: false,\n      tweetContent: 'Can they prove that they did not? That is jut their attestation. 😱',\n      hashtags: null,\n      commentCount: '78',\n      likeCount: '230',\n      retweetCount: '0',\n      quoteCount: '4',\n      tweetTime: 'Dec 21',\n      tweetCreatedAt: 'Dec 21, 2022 · 5:25 PM UTC',\n      tweetLink: '/Bitcoin/status/1605615442134855680#m',\n      images: [\n      'https://nitter.tiekoetter.com/pic/media%2FFnUar77WIAAwzdu.jpg%3Fname%3Dsmall%26format%3Dwebp'\n      ],\n      nextPageToken: 'HBaAwK3pqsnovSwAAA%3D%3D'\n    },\n    {\n      authorName: 'Bitcoin',\n      authorBlueCheckMark: false,\n      pinnedTweet: false,\n      tweetContent: '',\n      hashtags: null,\n      commentCount: '290',\n      likeCount: '2,344',\n      retweetCount: '0',\n      quoteCount: '67',\n      videoCount: '176,680',\n      tweetTime: 'Dec 19',\n      tweetCreatedAt: 'Dec 19, 2022 · 3:29 PM UTC',\n      tweetLink: '/Bitcoin/status/1604861594160070656#m',\n      images: [],\n      nextPageToken: 'HBaAwK3pqsnovSwAAA%3D%3D'\n    }\n  ]\n}\n```\n\n##### Pagination example\nif you want to get next page list you can use nextToken in previous request\n\n```javascript\nvar { getUserDetail } = require(\"twitster\");\n\nvar detailOfUser = await getUserDetail(\"Bitcoin\", options = { nextPageToken: 'HBaAwK3pqsnovSwAAA%3D%3D' });\n\nconsole.log(detailOfUser);\n```\n\n##### Filter example\nadd filter and limit result of user tweets\n\n```javascript\nvar { getUserDetail } = require(\"twitster\");\n\nvar detailOfUser = await getUserDetail(\"Bitcoin\", options = { filter: 'doge' });\n\nconsole.log(detailOfUser);\n```\n\n##### output\n```javascript\n{\n  profileInfo: {\n    fullName: 'Bitcoin',\n    username: '@Bitcoin',\n    bio: \"Bitcoin is an open source censorship-resistant peer-to-peer immutable network. Trackable digital gold. Don't trust; verify. Not your keys; not your coins.\",\n    location: 'Worldwide',\n    website: 'bitcoin.org/bitcoin.pdf',\n    joinDate: ' Joined August 2011',\n    tweetCounts: '24,551',\n    following: '26',\n    follower: '5,685,122',\n    likes: '2,928'\n  },\n  tweets: [\n    {\n      authorName: 'Bitcoin',\n      authorBlueCheckMark: false,\n      pinnedTweet: false,\n      tweetContent: 'Because DOGE is an altcoin. Bitcoin (BCH) is the oldest and most established cryptocurrency.',\n      hashtags: null,\n      commentCount: '4',\n      likeCount: '6',\n      retweetCount: '0',\n      quoteCount: '0',\n      tweetTime: '4 May 2018',\n      tweetCreatedAt: 'May 4, 2018 · 5:24 PM UTC',\n      tweetLink: '/Bitcoin/status/992454950524403712#m'\n    },\n    {\n      authorName: 'Bitcoin',\n      authorBlueCheckMark: false,\n      pinnedTweet: false,\n      tweetContent: '\"Chap slapped in @Dogecoin crap app flap\" - Great headline by @theregister theregister.co.uk/2015/06/29…',\n      hashtags: null,\n      commentCount: '0',\n      likeCount: '2',\n      retweetCount: '0',\n      quoteCount: '0',\n      tweetTime: '4 Jul 2015',\n      tweetCreatedAt: 'Jul 4, 2015 · 7:22 PM UTC',\n      tweetLink: '/Bitcoin/status/617413100791308289#m'\n    }\n]}\n```\n\u003chr\u003e\n\n### Translate tweets\n\nfor extract translated tweets just add language inside options\u003c/br\u003e\nfind your language code from \u003ca href=\"https://www.npmjs.com/package/subtranslator\"\u003ehere\u003c/a\u003e\n\n```javascript\nconst { findTopTweets } = require('twitster');\n\nvar translatedTweets = await findTopTweets(\"bitcoin\", options = { language: 'de' });\nconsole.log(translatedTweets);\n\n```\n\n#### Output\n\n```javascript\n[\n  {\n    id: '4937c6d261',\n    authorName: 'marvinFrancois',\n    authorBlueCheckMark: false,\n    tweetContent: '#Bitcoin ist bereit für einen riesigen Bullenlauf.',\n    hashtags: [ '#Bitcoin' ],\n    commentCount: '0',\n    likeCount: '0',\n    retweetCount: '0',\n    quoteCount: '0',\n    tweetTime: '8s',\n    tweetCreatedAt: 'Jan 5, 2023 · 8:49 PM UTC',\n    tweetLink: '/marviinFrancois/status/1611102551893594115#m',\n    nextPageToken: 'scroll%3AthGAVUV0VFVBaWwL6R2s7k2ywWgIDQzbnQ5NssEnEV8IV6FYCJehgEVVNFUjUBFQAVAAA%3D',\n    originalTweet: '#Bitcoin    is ready for a huge bull run.'\n  },\n  {\n    id: 'f9d902908f',\n    authorName: 'Guy Swann ⚡️',\n    authorBlueCheckMark: false,\n    retweeted: 'thee junior class prezzy ✨',\n    tweetContent: 'Es ist die grundlegende Natur und das Design von #Bitcoin, die den FTX-Betrug unweigerlich zum Scheitern verurteilt und schnell demoliert haben, als es klar wurde.\\n' +\n      '\\n' +\n      'Und aus dem gleichen Grund ist #Bitcoin unsere einzige Chance, den globalen Geldbetrug zu korrigieren.',\n    hashtags: [ '#Bitcoin', '#Bitcoin' ],\n    commentCount: '0',\n    likeCount: '38',\n    retweetCount: '0',\n    quoteCount: '0',\n    tweetTime: '14 Dec 2022',\n    tweetCreatedAt: 'Dec 14, 2022 · 6:45 PM UTC',\n    tweetLink: '/TheGuySwann/status/1603098882627567618#m',\n    nextPageToken: 'scroll%3AthGAVUV0VFVBaWwL6R2s7k2ywWgIDQzbnQ5NssEnEV8IV6FYCJehgEVVNFUjUBFQAVAAA%3D',\n    originalTweet: 'It is the fundamental nature \u0026 design of #Bitcoin that made the FTX fraud inevitably doomed to fail \u0026 quickly demolished when it became clear.\\n' +\n      '\\n' +\n      'And it’s the same reason why #Bitcoin is our only shot at correcting the global monetary scam.'\n  }\n]\n```\n\n\u003chr\u003e\n\n## Support\n  - [Bug Reports](https://github.com/hamedpa/twitster/issues/)\n\n## Contributors\n\u003cp\u003e\nPull requests are always welcome! Please base pull requests against the main branch and follow the contributing guide.\n\nif your pull requests makes documentation changes, please update readme file.\n\u003c/p\u003e\n\n## License\n\nThis project is licensed under the terms of the\nMIT license\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpariazar%2Ftwitster","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpariazar%2Ftwitster","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpariazar%2Ftwitster/lists"}