12

I have a problem with twitter API. I tweeted in the past (around 400) but recently I haven't tweeted anything. When I try to fetch tweets by me using the twitter api, there are no results. How can I retrieve the older tweets?

Mike G
  • 4,232
  • 9
  • 40
  • 66
gamehelp16
  • 1,101
  • 1
  • 7
  • 22

5 Answers5

10

Twitter doesn't return tweets older than a week through search api. Take a look at the limitations section from the below link:

https://dev.twitter.com/docs/using-search

cubbuk
  • 7,800
  • 4
  • 35
  • 62
  • 1
    There isn't any free solution, but you can retrieve tweets up to 2 years back using twitter partners such as data-sift. You can take a look at their web-site. http://datasift.com/ – cubbuk Jan 07 '13 at 13:19
  • 2
    -1 That limit applies to the Twitter Search API, not the Twitter API. – Bennett McElwee May 26 '13 at 10:45
  • But to retrieve older tweets you have to use Search API, or is there any other way to retrieve older tweets that I am not aware of? – cubbuk May 28 '13 at 06:47
  • is there a way to search by a particular hashtag to get tweets longer than 7 days old? – Metin Dagcilar Mar 31 '17 at 12:38
9

I have the same problem as you, so after see that Twitter Web Search works I've started to implement my own solution, you can see on my GitHub. It is implemented in Java, but it will make a post on my blog to explain how to do in other languages. I've downloaded tweets without any problems, my last test I parse more than 600k within 2014 from some specific users.

6

You can use the REST API resource GET statuses/user_timeline to retrieve the most recent 3200 tweets from any public timeline.

shasi kanth
  • 6,987
  • 24
  • 106
  • 158
Bennett McElwee
  • 24,740
  • 6
  • 54
  • 63
2

This is possible in Twitter web search portal but not through their API. Bummer https://twitter.com/search-home

Tuan Ta
  • 21
  • 1
  • 2
1

This elaborates on @bennett-mcelwee 's answer where getting up to 3200 most recent user tweets can be done in series of API calls. Currently the max # of tweets you can get by a user in 1 request is 200, using the GET statuses/user_timeline API call. To get all tweets a user has posted on their timeline do the following:

STEP 1

Make a GET call to this endpoint passing parameter count=200.

STEP 2

From the returned data in step 1, get the ID of the last tweet

Make the same GET call but this time pass in parameter max_id= followed by the ID of last tweet returned form the first call, or -1. So for example max_id=9987999

STEP 3

Repeat step 2 until you don't get any new(older) data.

For my purpose I was able to do this in Ruby using https://github.com/sferik/twitter

Once a client object is instantiated, it's as simple as:

tweets = client.user_timeline('foobar', count: 200)
max_id = tweets.last.id - 1
tweets << client.user_timeline('foobar', count: 200, max_id: max_id)

From here you get idea and it's fairly trivial to write a loop until you've gotten all the tweets you can grab from the API.

Eric
  • 1,138
  • 11
  • 24
lacostenycoder
  • 10,623
  • 4
  • 31
  • 48