News: find2follow at oneforty.com

find2follow

Application Programming Interface

It's a single-call RESTful/JSON interface, which means you can access it via any standard HTTP class your favorite programming language provides. Given a Twitter username, this interface returns a list of user profiles the requesting user may be interested in following.

The find2follow engine realizes a complex graph-navigation algorithm that takes some time to finish properly. Do not expect an instant response, mainly at first-time tries. However, we have created a robust caching strategy that will probably make further requests way faster!

Have you developed a wrapper to this API, and wanna share with others? Great! Let us know, and we'll gladly make it available here.

Request

The request message is a simple HTTP GET call, as presented below. Just replace the username placeholder with any Twitter username. The HTTP 'Accept' header must be set to 'application/json'.

GET /rest/graph/username HTTP/1.1
Accept: application/json
Host: find2follow.swatlabs.net

Response

The response message body is a JSON collection of user profiles suggested by our engine. Note that the example below has been truncated as a matter of space saving. If you run into unsuccessful requests, the response message body should present a JSON object depicting the error instead.

[
    {
    "id":9830902,
    "name":"Otavio Ferreira",
    "screen_name":"otaviofff",
    "location":"Sao Paulo,Brazil",
    "description":"Web 2.0 and Semantic Web enthusiastic!",
    "url":"http://otavio.tumblr.com/",
    "protected":false,
    "following":false,
    "followers_count":155,
    "friends_count":97,
    "favourites_count":8,
    "statuses_count":527,
    "created_at":"Wed Oct 31 17:41:57 +0000 2007",
    "utc_offset":-10800,
    "time_zone":"Brasilia",
    "notifications":false,
    "verified_profile":false,
    "profile_image_url":"http://(...)/Picture_6_normal.jpg",
    "profile_background_color":"EDECE9",
    "profile_background_tile":false,
    "profile_background_image_url":"http://(...)/bg.gif",
    "profile_text_color":"634047",
    "profile_link_color":"088253",
    "profile_sidebar_fill_color":"E3E2DE"
    "profile_sidebar_border_color":"D3D2CF",
    "status":
        {
        "id":2225873132,
        "text":"Waterfall is dead since Unified Process, 1999 by Jacobson et al",
        "truncated":false,
        "favorited":false,
        "in_reply_to_status_id":null,
        "in_reply_to_user_id":null,
        "in_reply_to_screen_name":null,
        "created_at":"Thu Jun 18 18:15:07 +0000 2009",
        "source":"<a href="http://www.feedalizr.com/">feedalizr</a>"
        }
    },
    ...truncated...
]

Status Codes

Each response message will also present one of the following HTTP status codes:

200 OK Successful request.
400 Bad Request The caller either didn't send any username, or the username received is invalid.
404 Not Found No suggested graph was found to the username received.
405 Method Not Allowed The API supports the GET method only. POST, PUT, or DELETE will be refused.
406 Not Acceptable The HTTP header 'Accept' must be set to 'application/json'.
500 Internal Server Error The request failed. We hope you'll never get this one!

Questions?

Get to know the developers behind this mess on Get Satisfaction. They might be helpful.