Hey folks. As some of you have likely read we're starting to do some private beta testing of our new lists feature. We're not quite ready to open it up to everyone but we've made some headway on the API and wanted to share some details of what we've got so far.
There are a handful of things on our todo lists so don't consider this signed and sealed just yet.
You may notice this API is a bit of a departure from the rest of the API. It's a bit more, errr, REST than the rest.
First off, here's the current payload for a list:
<?xml version="1.0" encoding="UTF-8"?> <list> <id>1416</id> <name>tall people</name> <full_name>@noradio/tall-people</full_name> <slug>tall-people</slug> <subscriber_count>0</subscriber_count> <member_count>3</member_count> <uri>/noradio/tall-people</uri> <mode>public</mode> <user> <id>3191321</id> <name>Marcel Molina</name> <screen_name>noradio</screen_name> <location>San Francisco, CA</location> <description>Engineer at Twitter on the @twitterapi team, obsessed with rock climbing & running. In a past life I was a member of the Rails Core team.</description> <profile_image_url>http://a3.twimg.com/profile_images/53473799/marcel-euro-rails-conf_no...</profile_image_url> <url>http://project.ioni.st</url> <protected>false</protected> <followers_count>40059</followers_count> <profile_background_color>9AE4E8</profile_background_color> <profile_text_color>333333</profile_text_color> <profile_link_color>0084B4</profile_link_color> <profile_sidebar_fill_color>DDFFCC</profile_sidebar_fill_color> <profile_sidebar_border_color>BDDCAD</profile_sidebar_border_color> <friends_count>354</friends_count> <created_at>Mon Apr 02 07:47:28 +0000 2007</created_at> <favourites_count>131</favourites_count> <utc_offset>-28800</utc_offset> <time_zone>Pacific Time (US & Canada)</time_zone> <profile_background_image_url>http://a1.twimg.com/profile_background_images/18156348/jessica_tiled....</profile_background_image_url> <profile_background_tile>true</profile_background_tile> <statuses_count>3472</statuses_count> <notifications>false</notifications> <geo_enabled>true</geo_enabled> <verified>false</verified> <following>false</following> </user> </list>
=== Lists ===
POST '/:user/lists.:format' Creates a new list for the authenticated user.
Parameters: * name: the name of the list. (required) * mode: whether your list is public of private. Values can be 'public' or 'private'. Public by default if not specified. (optional)
Usage notes: ":user" in the url should be the screen name of the user making the request to create the list
GET '/:users/lists/:list_slug/statuses.:format' Show tweet timeline for members of the specified list.
Parameters: * list_slug: the slug of the list you want the member tweet timeline of. (required) * next/previous_cursor: used to "page" through results (optional)
This is fantastic, I hope to start working on it soon. Do you guys
have and idea of possible timespans, only because it takes us two
weeks to get things past Apple's appoval process!
On Oct 16, 8:04 am, Marcel Molina <mar...@twitter.com> wrote:
> Hey folks. As some of you have likely read we're starting to do some
> private beta testing of our new lists feature. We're not quite ready
> to open it up to everyone but we've made some headway on the API and
> wanted to share some details of what we've got so far.
> There are a handful of things on our todo lists so don't consider this
> signed and sealed just yet.
> You may notice this API is a bit of a departure from the rest of the
> API. It's a bit more, errr, REST than the rest.
> First off, here's the current payload for a list:
> <?xml version="1.0" encoding="UTF-8"?>
> <list>
> <id>1416</id>
> <name>tall people</name>
> <full_name>@noradio/tall-people</full_name>
> <slug>tall-people</slug>
> <subscriber_count>0</subscriber_count>
> <member_count>3</member_count>
> <uri>/noradio/tall-people</uri>
> <mode>public</mode>
> <user>
> <id>3191321</id>
> <name>Marcel Molina</name>
> <screen_name>noradio</screen_name>
> <location>San Francisco, CA</location>
> <description>Engineer at Twitter on the @twitterapi team, obsessed
> with rock climbing & running. In a past life I was a member of the
> Rails Core team.</description>
> <profile_image_url>http://a3.twimg.com/profile_images/53473799/marcel-euro-rails-conf_no...</profile_image_url>
> <url>http://project.ioni.st</url>
> <protected>false</protected>
> <followers_count>40059</followers_count>
> <profile_background_color>9AE4E8</profile_background_color>
> <profile_text_color>333333</profile_text_color>
> <profile_link_color>0084B4</profile_link_color>
> <profile_sidebar_fill_color>DDFFCC</profile_sidebar_fill_color>
> <profile_sidebar_border_color>BDDCAD</profile_sidebar_border_color>
> <friends_count>354</friends_count>
> <created_at>Mon Apr 02 07:47:28 +0000 2007</created_at>
> <favourites_count>131</favourites_count>
> <utc_offset>-28800</utc_offset>
> <time_zone>Pacific Time (US & Canada)</time_zone>
> <profile_background_image_url>http://a1.twimg.com/profile_background_images/18156348/jessica_tiled....</profile_background_image_url>
> <profile_background_tile>true</profile_background_tile>
> <statuses_count>3472</statuses_count>
> <notifications>false</notifications>
> <geo_enabled>true</geo_enabled>
> <verified>false</verified>
> <following>false</following>
> </user>
> </list>
> === Lists ===
> POST '/:user/lists.:format'
> Creates a new list for the authenticated user.
> Parameters:
> * name: the name of the list. (required)
> * mode: whether your list is public of private. Values can be
> 'public' or 'private'. Public by default if not specified. (optional)
> Usage notes:
> ":user" in the url should be the screen name of the user making the
> request to create the list
> GET '/:users/lists/:list_slug/statuses.:format'
> Show tweet timeline for members of the specified list.
> Parameters:
> * list_slug: the slug of the list you want the member tweet timeline
> of. (required)
> * next/previous_cursor: used to "page" through results (optional)
Depending on how our performance tests, bug fixes and all the other myriad things go we could be public with the feature as early as a week or two from now. We shall see...
On Fri, Oct 16, 2009 at 1:06 AM, Rich <rhyl...@gmail.com> wrote:
> This is fantastic, I hope to start working on it soon. Do you guys > have and idea of possible timespans, only because it takes us two > weeks to get things past Apple's appoval process!
> On Oct 16, 8:04 am, Marcel Molina <mar...@twitter.com> wrote: >> Hey folks. As some of you have likely read we're starting to do some >> private beta testing of our new lists feature. We're not quite ready >> to open it up to everyone but we've made some headway on the API and >> wanted to share some details of what we've got so far.
>> There are a handful of things on our todo lists so don't consider this >> signed and sealed just yet.
>> You may notice this API is a bit of a departure from the rest of the >> API. It's a bit more, errr, REST than the rest.
>> First off, here's the current payload for a list:
>> <?xml version="1.0" encoding="UTF-8"?> >> <list> >> <id>1416</id> >> <name>tall people</name> >> <full_name>@noradio/tall-people</full_name> >> <slug>tall-people</slug> >> <subscriber_count>0</subscriber_count> >> <member_count>3</member_count> >> <uri>/noradio/tall-people</uri> >> <mode>public</mode> >> <user> >> <id>3191321</id> >> <name>Marcel Molina</name> >> <screen_name>noradio</screen_name> >> <location>San Francisco, CA</location> >> <description>Engineer at Twitter on the @twitterapi team, obsessed >> with rock climbing & running. In a past life I was a member of the >> Rails Core team.</description> >> <profile_image_url>http://a3.twimg.com/profile_images/53473799/marcel-euro-rails-conf_no...</profile_image_url> >> <url>http://project.ioni.st</url> >> <protected>false</protected> >> <followers_count>40059</followers_count> >> <profile_background_color>9AE4E8</profile_background_color> >> <profile_text_color>333333</profile_text_color> >> <profile_link_color>0084B4</profile_link_color> >> <profile_sidebar_fill_color>DDFFCC</profile_sidebar_fill_color> >> <profile_sidebar_border_color>BDDCAD</profile_sidebar_border_color> >> <friends_count>354</friends_count> >> <created_at>Mon Apr 02 07:47:28 +0000 2007</created_at> >> <favourites_count>131</favourites_count> >> <utc_offset>-28800</utc_offset> >> <time_zone>Pacific Time (US & Canada)</time_zone> >> <profile_background_image_url>http://a1.twimg.com/profile_background_images/18156348/jessica_tiled....</profile_background_image_url> >> <profile_background_tile>true</profile_background_tile> >> <statuses_count>3472</statuses_count> >> <notifications>false</notifications> >> <geo_enabled>true</geo_enabled> >> <verified>false</verified> >> <following>false</following> >> </user> >> </list>
>> === Lists ===
>> POST '/:user/lists.:format' >> Creates a new list for the authenticated user.
>> Parameters: >> * name: the name of the list. (required) >> * mode: whether your list is public of private. Values can be >> 'public' or 'private'. Public by default if not specified. (optional)
>> Usage notes: >> ":user" in the url should be the screen name of the user making the >> request to create the list
>> GET '/:users/lists/:list_slug/statuses.:format' >> Show tweet timeline for members of the specified list.
>> Parameters: >> * list_slug: the slug of the list you want the member tweet timeline >> of. (required) >> * next/previous_cursor: used to "page" through results (optional)
> Depending on how our performance tests, bug fixes and all the other
> myriad things go we could be public with the feature as early as a
> week or two from now. We shall see...
> On Fri, Oct 16, 2009 at 1:06 AM, Rich <rhyl...@gmail.com> wrote:
> > This is fantastic, I hope to start working on it soon. Do you guys
> > have and idea of possible timespans, only because it takes us two
> > weeks to get things past Apple's appoval process!
> > On Oct 16, 8:04 am, Marcel Molina <mar...@twitter.com> wrote:
> >> Hey folks. As some of you have likely read we're starting to do some
> >> private beta testing of our new lists feature. We're not quite ready
> >> to open it up to everyone but we've made some headway on the API and
> >> wanted to share some details of what we've got so far.
> >> There are a handful of things on our todo lists so don't consider this
> >> signed and sealed just yet.
> >> You may notice this API is a bit of a departure from the rest of the
> >> API. It's a bit more, errr, REST than the rest.
> >> First off, here's the current payload for a list:
> >> <?xml version="1.0" encoding="UTF-8"?>
> >> <list>
> >> <id>1416</id>
> >> <name>tall people</name>
> >> <full_name>@noradio/tall-people</full_name>
> >> <slug>tall-people</slug>
> >> <subscriber_count>0</subscriber_count>
> >> <member_count>3</member_count>
> >> <uri>/noradio/tall-people</uri>
> >> <mode>public</mode>
> >> <user>
> >> <id>3191321</id>
> >> <name>Marcel Molina</name>
> >> <screen_name>noradio</screen_name>
> >> <location>San Francisco, CA</location>
> >> <description>Engineer at Twitter on the @twitterapi team, obsessed
> >> with rock climbing & running. In a past life I was a member of the
> >> Rails Core team.</description>
> >> <profile_image_url>http://a3.twimg.com/profile_images/53473799/marcel-euro-rails-conf_no...</profile_image_url>
> >> <url>http://project.ioni.st</url>
> >> <protected>false</protected>
> >> <followers_count>40059</followers_count>
> >> <profile_background_color>9AE4E8</profile_background_color>
> >> <profile_text_color>333333</profile_text_color>
> >> <profile_link_color>0084B4</profile_link_color>
> >> <profile_sidebar_fill_color>DDFFCC</profile_sidebar_fill_color>
> >> <profile_sidebar_border_color>BDDCAD</profile_sidebar_border_color>
> >> <friends_count>354</friends_count>
> >> <created_at>Mon Apr 02 07:47:28 +0000 2007</created_at>
> >> <favourites_count>131</favourites_count>
> >> <utc_offset>-28800</utc_offset>
> >> <time_zone>Pacific Time (US & Canada)</time_zone>
> >> <profile_background_image_url>http://a1.twimg.com/profile_background_images/18156348/jessica_tiled....</profile_background_image_url>
> >> <profile_background_tile>true</profile_background_tile>
> >> <statuses_count>3472</statuses_count>
> >> <notifications>false</notifications>
> >> <geo_enabled>true</geo_enabled>
> >> <verified>false</verified>
> >> <following>false</following>
> >> </user>
> >> </list>
> >> === Lists ===
> >> POST '/:user/lists.:format'
> >> Creates a new list for the authenticated user.
> >> Parameters:
> >> * name: the name of the list. (required)
> >> * mode: whether your list is public of private. Values can be
> >> 'public' or 'private'. Public by default if not specified. (optional)
> >> Usage notes:
> >> ":user" in the url should be the screen name of the user making the
> >> request to create the list
> >> GET '/:users/lists/:list_slug/statuses.:format'
> >> Show tweet timeline for members of the specified list.
> >> Parameters:
> >> * list_slug: the slug of the list you want the member tweet timeline
> >> of. (required)
> >> * next/previous_cursor: used to "page" through results (optional)
Thanks, Marcel. I’ve started playing with this and it is working
nicely so far.
It would be nice to have a list count included in the user object so
one doesn’t have to make a separate call for each user to see if that
user has lists. Or something else that solves the same problem.
Any chance of massive UI changes? Unless I'm missing something, the
List features is totally unmanageable via the GUI for anyone with more
than a couple dozen followers.
On Fri, Oct 16, 2009 at 3:04 AM, Marcel Molina <mar...@twitter.com> wrote:
> Hey folks. As some of you have likely read we're starting to do some
> private beta testing of our new lists feature. We're not quite ready
> to open it up to everyone but we've made some headway on the API and
> wanted to share some details of what we've got so far.
> There are a handful of things on our todo lists so don't consider this
> signed and sealed just yet.
> You may notice this API is a bit of a departure from the rest of the
> API. It's a bit more, errr, REST than the rest.
> First off, here's the current payload for a list:
> <?xml version="1.0" encoding="UTF-8"?>
> <list>
> <id>1416</id>
> <name>tall people</name>
> <full_name>@noradio/tall-people</full_name>
> <slug>tall-people</slug>
> <subscriber_count>0</subscriber_count>
> <member_count>3</member_count>
> <uri>/noradio/tall-people</uri>
> <mode>public</mode>
> <user>
> <id>3191321</id>
> <name>Marcel Molina</name>
> <screen_name>noradio</screen_name>
> <location>San Francisco, CA</location>
> <description>Engineer at Twitter on the @twitterapi team, obsessed
> with rock climbing & running. In a past life I was a member of the
> Rails Core team.</description>
> <profile_image_url>http://a3.twimg.com/profile_images/53473799/marcel-euro-rails-conf_no...</profile_image_url>
> <url>http://project.ioni.st</url>
> <protected>false</protected>
> <followers_count>40059</followers_count>
> <profile_background_color>9AE4E8</profile_background_color>
> <profile_text_color>333333</profile_text_color>
> <profile_link_color>0084B4</profile_link_color>
> <profile_sidebar_fill_color>DDFFCC</profile_sidebar_fill_color>
> <profile_sidebar_border_color>BDDCAD</profile_sidebar_border_color>
> <friends_count>354</friends_count>
> <created_at>Mon Apr 02 07:47:28 +0000 2007</created_at>
> <favourites_count>131</favourites_count>
> <utc_offset>-28800</utc_offset>
> <time_zone>Pacific Time (US & Canada)</time_zone>
> <profile_background_image_url>http://a1.twimg.com/profile_background_images/18156348/jessica_tiled....</profile_background_image_url>
> <profile_background_tile>true</profile_background_tile>
> <statuses_count>3472</statuses_count>
> <notifications>false</notifications>
> <geo_enabled>true</geo_enabled>
> <verified>false</verified>
> <following>false</following>
> </user>
> </list>
> === Lists ===
> POST '/:user/lists.:format'
> Creates a new list for the authenticated user.
> Parameters:
> * name: the name of the list. (required)
> * mode: whether your list is public of private. Values can be
> 'public' or 'private'. Public by default if not specified. (optional)
> Usage notes:
> ":user" in the url should be the screen name of the user making the
> request to create the list
> GET '/:users/lists/:list_slug/statuses.:format'
> Show tweet timeline for members of the specified list.
> Parameters:
> * list_slug: the slug of the list you want the member tweet timeline
> of. (required)
> * next/previous_cursor: used to "page" through results (optional)
> Any chance of massive UI changes? Unless I'm missing something, the
> List features is totally unmanageable via the GUI for anyone with more
> than a couple dozen followers.
> On Fri, Oct 16, 2009 at 3:04 AM, Marcel Molina <mar...@twitter.com> wrote:
> > Hey folks. As some of you have likely read we're starting to do some
> > private beta testing of our new lists feature. We're not quite ready
> > to open it up to everyone but we've made some headway on the API and
> > wanted to share some details of what we've got so far.
> > There are a handful of things on our todo lists so don't consider this
> > signed and sealed just yet.
> > You may notice this API is a bit of a departure from the rest of the
> > API. It's a bit more, errr, REST than the rest.
> > First off, here's the current payload for a list:
> > <?xml version="1.0" encoding="UTF-8"?>
> > <list>
> > <id>1416</id>
> > <name>tall people</name>
> > <full_name>@noradio/tall-people</full_name>
> > <slug>tall-people</slug>
> > <subscriber_count>0</subscriber_count>
> > <member_count>3</member_count>
> > <uri>/noradio/tall-people</uri>
> > <mode>public</mode>
> > <user>
> > <id>3191321</id>
> > <name>Marcel Molina</name>
> > <screen_name>noradio</screen_name>
> > <location>San Francisco, CA</location>
> > <description>Engineer at Twitter on the @twitterapi team, obsessed
> > with rock climbing & running. In a past life I was a member of the
> > Rails Core team.</description>
> > <profile_image_url>http://a3.twimg.com/profile_images/53473799/marcel-euro-rails-conf_no...</profile_image_url>
> > <url>http://project.ioni.st</url>
> > <protected>false</protected>
> > <followers_count>40059</followers_count>
> > <profile_background_color>9AE4E8</profile_background_color>
> > <profile_text_color>333333</profile_text_color>
> > <profile_link_color>0084B4</profile_link_color>
> > <profile_sidebar_fill_color>DDFFCC</profile_sidebar_fill_color>
> > <profile_sidebar_border_color>BDDCAD</profile_sidebar_border_color>
> > <friends_count>354</friends_count>
> > <created_at>Mon Apr 02 07:47:28 +0000 2007</created_at>
> > <favourites_count>131</favourites_count>
> > <utc_offset>-28800</utc_offset>
> > <time_zone>Pacific Time (US & Canada)</time_zone>
> > <profile_background_image_url>http://a1.twimg.com/profile_background_images/18156348/jessica_tiled....</profile_background_image_url>
> > <profile_background_tile>true</profile_background_tile>
> > <statuses_count>3472</statuses_count>
> > <notifications>false</notifications>
> > <geo_enabled>true</geo_enabled>
> > <verified>false</verified>
> > <following>false</following>
> > </user>
> > </list>
> > === Lists ===
> > POST '/:user/lists.:format'
> > Creates a new list for the authenticated user.
> > Parameters:
> > * name: the name of the list. (required)
> > * mode: whether your list is public of private. Values can be
> > 'public' or 'private'. Public by default if not specified. (optional)
> > Usage notes:
> > ":user" in the url should be the screen name of the user making the
> > request to create the list
> > GET '/:users/lists/:list_slug/statuses.:format'
> > Show tweet timeline for members of the specified list.
> > Parameters:
> > * list_slug: the slug of the list you want the member tweet timeline
> > of. (required)
> > * next/previous_cursor: used to "page" through results (optional)
> Hey folks. As some of you have likely read we're starting to do some > private beta testing of our new lists feature. We're not quite ready > to open it up to everyone but we've made some headway on the API and > wanted to share some details of what we've got so far.
Thanks for the list API description. I like the general appearance. One request:
> DELETE '/:user/lists/:list_slug.:format' > Delete the specified list owned by the authenticated user.
> Parameters: > * list_slug: the slug of the list you want to delete. (required)
This is slightly pedantic but currently the entirety of the API can be accessed with GET and POST methods, even tweet and DM deletion (DELETE is supported facultatively but not obligatorily), which happily allows old clients like Lynx to still be used for API access. Could a delete stub method via POST be added to the API to maintain consistency?
It would make sense to mandate a full and proper REST implementation using the full breadth of HTTP methods in API v2, but I think for consistency there should be a POST-accessible delete method at least in this implementation unless Lists API is going to be an API v2 feature only.
Otherwise, I am very much looking forward to supporting lists in TTYtter (and, when you get around to the next wave, trying it out on the Web).
-- ------------------------------------ personal: http://www.cameronkaiser.com/ -- Cameron Kaiser * Floodgap Systems * www.floodgap.com * ckai...@floodgap.com -- When in doubt, use brute force. -- Ken Thompson ----------------------------
Will there be some mechanism to keep track on new and changed lists
coming from the Twitter community, like a public timeline for list
creation? Or is the only way to become aware of lists through the API
to start checking users for their list creation/inclusion?
First, thanks for the preview, this is very helpful.
Second, a question: When retrieving an existing timeline such as /
statuses/friends_timeline, or a list of friends from /statuses/
friends, will there be any indication in the output as to which list
(s) the authenticated user is subscribed to that each friend is on?
The use case I'm thinking of is list management from the timeline
interface, where an end user might be able to see right there which
list(s) a friend is on, or (more interestingly) which friends aren't
on any of their lists yet.
1) Are there any restrictions on list sizes? 2) Are there any limits to the number of lists one user can have?
3) Does each "add user to list" call count towards the API Limit? If so, are there any plans to add an "Add in bulk" method where multiple IDs can be passed with one call?
Usually non-GET requests are not counted toward the rate limit.
I agree that an “add in bulk” command would be better than having to individually issue multiple “add user to lists” calls.
Rod Begbie wrote:
3) Does each "add user to list" call count towards the API Limit? If so, are there any plans to add an "Add in bulk" method where multiple IDs can be passed with one call?
results in a 500 Internal Server error. I tried swapping "userid" and
"screen_name" for "id" and get a 400 Bad Request back:
curl -k --user epc:pass -d user_id=enorlin --url
https://twitter.com/epc/defrag/members.xml curl -k --user epc:pass -d screen_name=enorlin --url
https://twitter.com/epc/defrag/members.xml returns:
<error>You must specify a member</error>
(which is what I'd expect for "id=enorlin" instead of the 500).
Also, if you pass in the authenticating user's numeric ID you get back
either a 503 or 502 (bad gateway) error, eg:
curl -k --user epc:pass -d id=420363 --url https://twitter.com/epc/defrag/members.xml however it does appear to add the user to the list. Note that once
added, the user can't be removed from the list via the current lists
UI.
If you try to add a user who has blocked the authenticating user, you
get a 403 "<error>You aren't allowed to add members to this list</
error>" which is slightly misleading, you're not allowed to add THIS
user to the list.
If user "A" has added user "B" to a list, and user "B" blocks "A",
that appears to remove "B" from A's list permanently, even if the
block is removed. Is that working as designed?
What are the rules for converting a list's name into the slug/URI?
Just a conversion to "safe" URL characters?
Couple of ideas:
- allow mass additions of userids/screen names to lists, or maybe
10-20 at a time
- allow lists to have a tweet-like tag line (the intent being to
describe the list)
- don't groan, but allow geotagging of lists. Ok, groan.
> 1) Are there any restrictions on list sizes?
> 2) Are there any limits to the number of lists one user can have?
> 3) Does each "add user to list" call count towards the API Limit? If so, are
> there any plans to add an "Add in bulk" method where multiple IDs can be
> passed with one call?
I'm just wondering why can't we use list 'id' to call API functions
such as update, delete, timelines?
I found out that list_slug can change when you update list name. This
will give 3rd party apps lots of headaches. For example, right now my
app has group features and I'm planning to migrate it to list. But if
a user changes the list name on twitter.com or another app, then I'll
have no idea and the list url I stored in database won't be valid
anymore.
On Oct 16, 12:04 am, Marcel Molina <mar...@twitter.com> wrote:
> Hey folks. As some of you have likely read we're starting to do some
> private beta testing of our new lists feature. We're not quite ready
> to open it up to everyone but we've made some headway on the API and
> wanted to share some details of what we've got so far.
> There are a handful of things on our todo lists so don't consider this
> signed and sealed just yet.
> You may notice this API is a bit of a departure from the rest of the
> API. It's a bit more, errr, REST than the rest.
> First off, here's the current payload for a list:
> <?xml version="1.0" encoding="UTF-8"?>
> <list>
> <id>1416</id>
> <name>tall people</name>
> <full_name>@noradio/tall-people</full_name>
> <slug>tall-people</slug>
> <subscriber_count>0</subscriber_count>
> <member_count>3</member_count>
> <uri>/noradio/tall-people</uri>
> <mode>public</mode>
> <user>
> <id>3191321</id>
> <name>Marcel Molina</name>
> <screen_name>noradio</screen_name>
> <location>San Francisco, CA</location>
> <description>Engineer at Twitter on the @twitterapi team, obsessed
> with rock climbing & running. In a past life I was a member of the
> Rails Core team.</description>
> <profile_image_url>http://a3.twimg.com/profile_images/53473799/marcel-euro-rails-conf_no...</profile_image_url>
> <url>http://project.ioni.st</url>
> <protected>false</protected>
> <followers_count>40059</followers_count>
> <profile_background_color>9AE4E8</profile_background_color>
> <profile_text_color>333333</profile_text_color>
> <profile_link_color>0084B4</profile_link_color>
> <profile_sidebar_fill_color>DDFFCC</profile_sidebar_fill_color>
> <profile_sidebar_border_color>BDDCAD</profile_sidebar_border_color>
> <friends_count>354</friends_count>
> <created_at>Mon Apr 02 07:47:28 +0000 2007</created_at>
> <favourites_count>131</favourites_count>
> <utc_offset>-28800</utc_offset>
> <time_zone>Pacific Time (US & Canada)</time_zone>
> <profile_background_image_url>http://a1.twimg.com/profile_background_images/18156348/jessica_tiled....</profile_background_image_url>
> <profile_background_tile>true</profile_background_tile>
> <statuses_count>3472</statuses_count>
> <notifications>false</notifications>
> <geo_enabled>true</geo_enabled>
> <verified>false</verified>
> <following>false</following>
> </user>
> </list>
> === Lists ===
> POST '/:user/lists.:format'
> Creates a new list for the authenticated user.
> Parameters:
> * name: the name of the list. (required)
> * mode: whether your list is public of private. Values can be
> 'public' or 'private'. Public by default if not specified. (optional)
> Usage notes:
> ":user" in the url should be the screen name of the user making the
> request to create the list
> GET '/:users/lists/:list_slug/statuses.:format'
> Show tweet timeline for members of the specified list.
> Parameters:
> * list_slug: the slug of the list you want the member tweet timeline
> of. (required)
> * next/previous_cursor: used to "page" through results (optional)
Bulk add would be great. Here’s a log from doing individual adds.
Notice there were many over capacity errors. And that it took about a
minute 42 to add about 60 users. If I could do all in one request,
perhaps that would help reduce the over capacity errors.
> Hey folks. As some of you have likely read we're starting to do some
> private beta testing of our new lists feature. We're not quite ready
> to open it up to everyone but we've made some headway on the API and
> wanted to share some details of what we've got so far.
> There are a handful of things on our todo lists so don't consider this
> signed and sealed just yet.
> You may notice this API is a bit of a departure from the rest of the
> API. It's a bit more, errr, REST than the rest.
> First off, here's the current payload for a list:
> <?xml version="1.0" encoding="UTF-8"?>
> <list>
> <id>1416</id>
> <name>tall people</name>
> <full_name>@noradio/tall-people</full_name>
> <slug>tall-people</slug>
> <subscriber_count>0</subscriber_count>
> <member_count>3</member_count>
> <uri>/noradio/tall-people</uri>
> <mode>public</mode>
> <user>
> <id>3191321</id>
> <name>Marcel Molina</name>
> <screen_name>noradio</screen_name>
> <location>San Francisco, CA</location>
> <description>Engineer at Twitter on the @twitterapi team, obsessed
> with rock climbing & running. In a past life I was a member of the
> Rails Core team.</description>
> <profile_image_url>http://a3.twimg.com/profile_images/53473799/marcel-euro-rails-conf_no...</profile_image_url>
> <url>http://project.ioni.st</url>
> <protected>false</protected>
> <followers_count>40059</followers_count>
> <profile_background_color>9AE4E8</profile_background_color>
> <profile_text_color>333333</profile_text_color>
> <profile_link_color>0084B4</profile_link_color>
> <profile_sidebar_fill_color>DDFFCC</profile_sidebar_fill_color>
> <profile_sidebar_border_color>BDDCAD</profile_sidebar_border_color>
> <friends_count>354</friends_count>
> <created_at>Mon Apr 02 07:47:28+0000 2007</created_at>
> <favourites_count>131</favourites_count>
> <utc_offset>-28800</utc_offset>
> <time_zone>Pacific Time (US & Canada)</time_zone>
> <profile_background_image_url>http://a1.twimg.com/profile_background_images/18156348/jessica_tiled....</profile_background_image_url>
> <profile_background_tile>true</profile_background_tile>
> <statuses_count>3472</statuses_count>
> <notifications>false</notifications>
> <geo_enabled>true</geo_enabled>
> <verified>false</verified>
> <following>false</following>
> </user>
> </list>
> === Lists ===
> POST '/:user/lists.:format'
> Creates a new list for the authenticated user.
> Parameters:
> * name: the name of the list. (required)
> * mode: whether your list is public of private. Values can be
> 'public' or 'private'. Public by default if not specified. (optional)
> Usage notes:
> ":user" in the url should be the screen name of the user making the
> request to create the list
> GET '/:users/lists/:list_slug/statuses.:format'
> Show tweet timeline for members of the specified list.
> Parameters:
> * list_slug: the slug of the list you want the member tweet timeline
> of. (required)
> * next/previous_cursor: used to "page" through results (optional)
Once Twitter posted details of the API in this public forum, that
opened the door to our discussing lists publicly (if it wasn’t open
already). And I’ve been doing so. I even made a video showing
TalkingPuffin all of Robert Scoble’s lists at once on a big screen:
http://twitter.com/dcbriccetti/scala
Simply enabling the Lists feature for many users and putting a little
message on the Web page saying, “please don’t blog about it” is not a
good approach. I’m not complaining, just explaining why I feel fine
about talking about it.
If I enter into an agreement with someone, I honor it, of course.
I'll +1 the requests for using the list id instead of the slug (and user id instead of screen name), and for a bulk add feature - I've already asked for a bulk remove feature... Tim.
On Sun, Oct 18, 2009 at 5:34 PM, Beier <beier...@gmail.com> wrote:
> I'm just wondering why can't we use list 'id' to call API functions > such as update, delete, timelines?
> I found out that list_slug can change when you update list name. This > will give 3rd party apps lots of headaches. For example, right now my > app has group features and I'm planning to migrate it to list. But if > a user changes the list name on twitter.com or another app, then I'll > have no idea and the list url I stored in database won't be valid > anymore.
> On Oct 16, 12:04 am, Marcel Molina <mar...@twitter.com> wrote: > > Hey folks. As some of you have likely read we're starting to do some > > private beta testing of our new lists feature. We're not quite ready > > to open it up to everyone but we've made some headway on the API and > > wanted to share some details of what we've got so far.
> > There are a handful of things on our todo lists so don't consider this > > signed and sealed just yet.
> > You may notice this API is a bit of a departure from the rest of the > > API. It's a bit more, errr, REST than the rest.
> > First off, here's the current payload for a list:
> > <?xml version="1.0" encoding="UTF-8"?> > > <list> > > <id>1416</id> > > <name>tall people</name> > > <full_name>@noradio/tall-people</full_name> > > <slug>tall-people</slug> > > <subscriber_count>0</subscriber_count> > > <member_count>3</member_count> > > <uri>/noradio/tall-people</uri> > > <mode>public</mode> > > <user> > > <id>3191321</id> > > <name>Marcel Molina</name> > > <screen_name>noradio</screen_name> > > <location>San Francisco, CA</location> > > <description>Engineer at Twitter on the @twitterapi team, obsessed > > with rock climbing & running. In a past life I was a member of the > > Rails Core team.</description> > > <profile_image_url> > http://a3.twimg.com/profile_images/53473799/marcel-euro-rails-conf_no.. > .</profile_image_url> > > <url>http://project.ioni.st</url> > > <protected>false</protected> > > <followers_count>40059</followers_count> > > <profile_background_color>9AE4E8</profile_background_color> > > <profile_text_color>333333</profile_text_color> > > <profile_link_color>0084B4</profile_link_color> > > <profile_sidebar_fill_color>DDFFCC</profile_sidebar_fill_color> > > <profile_sidebar_border_color>BDDCAD</profile_sidebar_border_color> > > <friends_count>354</friends_count> > > <created_at>Mon Apr 02 07:47:28 +0000 2007</created_at> > > <favourites_count>131</favourites_count> > > <utc_offset>-28800</utc_offset> > > <time_zone>Pacific Time (US & Canada)</time_zone> > > <profile_background_image_url> > http://a1.twimg.com/profile_background_images/18156348/jessica_tiled... > .</profile_background_image_url> > > <profile_background_tile>true</profile_background_tile> > > <statuses_count>3472</statuses_count> > > <notifications>false</notifications> > > <geo_enabled>true</geo_enabled> > > <verified>false</verified> > > <following>false</following> > > </user> > > </list>
> > === Lists ===
> > POST '/:user/lists.:format' > > Creates a new list for the authenticated user.
> > Parameters: > > * name: the name of the list. (required) > > * mode: whether your list is public of private. Values can be > > 'public' or 'private'. Public by default if not specified. (optional)
> > Usage notes: > > ":user" in the url should be the screen name of the user making the > > request to create the list
> > GET '/:users/lists/:list_slug/statuses.:format' > > Show tweet timeline for members of the specified list.
> > Parameters: > > * list_slug: the slug of the list you want the member tweet timeline > > of. (required) > > * next/previous_cursor: used to "page" through results (optional)
> > Supported formats: > > xml, json
> > e.g. > > curl -u USERNAME:PASSWORDhttp:// > twitter.com/noradio/lists/tall-people/statuses.xml
> > GET '/:users/lists/:list_slug.:format' > > Show a specific list you can use the new resource.
> > Supported formats: > > xml, json
> > e.g. > > curl -u USERNAME:PASSWORDhttp:// > twitter.com/noradio/lists/tall-people.xml
> > === List members ===
> > POST '/:user/:list_slug/members.:format' > > Add a member to a list.
> > Parameters: > > * id: the id of the user you want to add as a member to the list. > (required)
> > Usage notes: > > The :list_slug portion of the request path should be the slug of the > > list you want to add a member to.
+1 for referring to lists by id and a bulk add feature. But as bulk features go, my highest priority is still the one discussed under the "cursors are slow" thread, ie. retrieving user objects based on id in bulk (vs doing users/show for each individual id retrieved via the social graph methods).
On Oct 19, 2009, at 12:40 AM, Tim Haines <tmhai...@gmail.com> wrote:
> I'll +1 the requests for using the list id instead of the slug (and > user id instead of screen name), and for a bulk add feature - I've > already asked for a bulk remove feature...
> Tim.
> On Sun, Oct 18, 2009 at 5:34 PM, Beier <beier...@gmail.com> wrote:
> I'm just wondering why can't we use list 'id' to call API functions > such as update, delete, timelines?
> I found out that list_slug can change when you update list name. This > will give 3rd party apps lots of headaches. For example, right now my > app has group features and I'm planning to migrate it to list. But if > a user changes the list name on twitter.com or another app, then I'll > have no idea and the list url I stored in database won't be valid > anymore.
> On Oct 16, 12:04 am, Marcel Molina <mar...@twitter.com> wrote: > > Hey folks. As some of you have likely read we're starting to do some > > private beta testing of our new lists feature. We're not quite ready > > to open it up to everyone but we've made some headway on the API and > > wanted to share some details of what we've got so far.
> > There are a handful of things on our todo lists so don't consider > this > > signed and sealed just yet.
> > You may notice this API is a bit of a departure from the rest of the > > API. It's a bit more, errr, REST than the rest.
> > First off, here's the current payload for a list:
> > <?xml version="1.0" encoding="UTF-8"?> > > <list> > > <id>1416</id> > > <name>tall people</name> > > <full_name>@noradio/tall-people</full_name> > > <slug>tall-people</slug> > > <subscriber_count>0</subscriber_count> > > <member_count>3</member_count> > > <uri>/noradio/tall-people</uri> > > <mode>public</mode> > > <user> > > <id>3191321</id> > > <name>Marcel Molina</name> > > <screen_name>noradio</screen_name> > > <location>San Francisco, CA</location> > > <description>Engineer at Twitter on the @twitterapi team, > obsessed > > with rock climbing & running. In a past life I was a member of > the > > Rails Core team.</description> > > <profile_image_url>http://a3.twimg.com/profile_images/53473799/marcel-euro-rails-conf_no > ...</profile_image_url> > > <url>http://project.ioni.st</url> > > <protected>false</protected> > > <followers_count>40059</followers_count> > > <profile_background_color>9AE4E8</profile_background_color> > > <profile_text_color>333333</profile_text_color> > > <profile_link_color>0084B4</profile_link_color> > > <profile_sidebar_fill_color>DDFFCC</profile_sidebar_fill_color> > > <profile_sidebar_border_color>BDDCAD</ > profile_sidebar_border_color> > > <friends_count>354</friends_count> > > <created_at>Mon Apr 02 07:47:28 +0000 2007</created_at> > > <favourites_count>131</favourites_count> > > <utc_offset>-28800</utc_offset> > > <time_zone>Pacific Time (US & Canada)</time_zone> > > <profile_background_image_url>http://a1.twimg.com/profile_background_images/18156348/jessica_tiled > ....</profile_background_image_url> > > <profile_background_tile>true</profile_background_tile> > > <statuses_count>3472</statuses_count> > > <notifications>false</notifications> > > <geo_enabled>true</geo_enabled> > > <verified>false</verified> > > <following>false</following> > > </user> > > </list>
> > === Lists ===
> > POST '/:user/lists.:format' > > Creates a new list for the authenticated user.
> > Parameters: > > * name: the name of the list. (required) > > * mode: whether your list is public of private. Values can be > > 'public' or 'private'. Public by default if not specified. > (optional)
> > Usage notes: > > ":user" in the url should be the screen name of the user making the > > request to create the list
> > GET '/:users/lists/:list_slug/statuses.:format' > > Show tweet timeline for members of the specified list.
> > Parameters: > > * list_slug: the slug of the list you want the member tweet > timeline > > of. (required) > > * next/previous_cursor: used to "page" through results (optional)
Hey Marcel,
Another 2 methods I'd like to see added to the list api - a way to get the
id's of all current members (all 500), and a way to get the id's of all
current subscribers - cursor based with as many per 'page' as possible.
On Fri, Oct 16, 2009 at 8:04 PM, Marcel Molina <mar...@twitter.com> wrote:
> Hey folks. As some of you have likely read we're starting to do some
> private beta testing of our new lists feature. We're not quite ready
> to open it up to everyone but we've made some headway on the API and
> wanted to share some details of what we've got so far.
> There are a handful of things on our todo lists so don't consider this
> signed and sealed just yet.
> You may notice this API is a bit of a departure from the rest of the
> API. It's a bit more, errr, REST than the rest.
> First off, here's the current payload for a list:
> <?xml version="1.0" encoding="UTF-8"?>
> <list>
> <id>1416</id>
> <name>tall people</name>
> <full_name>@noradio/tall-people</full_name>
> <slug>tall-people</slug>
> <subscriber_count>0</subscriber_count>
> <member_count>3</member_count>
> <uri>/noradio/tall-people</uri>
> <mode>public</mode>
> <user>
> <id>3191321</id>
> <name>Marcel Molina</name>
> <screen_name>noradio</screen_name>
> <location>San Francisco, CA</location>
> <description>Engineer at Twitter on the @twitterapi team, obsessed
> with rock climbing & running. In a past life I was a member of the
> Rails Core team.</description>
> <profile_image_url>
> http://a3.twimg.com/profile_images/53473799/marcel-euro-rails-conf_no... > </profile_image_url>
> <url>http://project.ioni.st</url>
> <protected>false</protected>
> <followers_count>40059</followers_count>
> <profile_background_color>9AE4E8</profile_background_color>
> <profile_text_color>333333</profile_text_color>
> <profile_link_color>0084B4</profile_link_color>
> <profile_sidebar_fill_color>DDFFCC</profile_sidebar_fill_color>
> <profile_sidebar_border_color>BDDCAD</profile_sidebar_border_color>
> <friends_count>354</friends_count>
> <created_at>Mon Apr 02 07:47:28 +0000 2007</created_at>
> <favourites_count>131</favourites_count>
> <utc_offset>-28800</utc_offset>
> <time_zone>Pacific Time (US & Canada)</time_zone>
> <profile_background_image_url>
> http://a1.twimg.com/profile_background_images/18156348/jessica_tiled.... > </profile_background_image_url>
> <profile_background_tile>true</profile_background_tile>
> <statuses_count>3472</statuses_count>
> <notifications>false</notifications>
> <geo_enabled>true</geo_enabled>
> <verified>false</verified>
> <following>false</following>
> </user>
> </list>
> === Lists ===
> POST '/:user/lists.:format'
> Creates a new list for the authenticated user.
> Parameters:
> * name: the name of the list. (required)
> * mode: whether your list is public of private. Values can be
> 'public' or 'private'. Public by default if not specified. (optional)
> Usage notes:
> ":user" in the url should be the screen name of the user making the
> request to create the list
> GET '/:users/lists/:list_slug/statuses.:format'
> Show tweet timeline for members of the specified list.
> Parameters:
> * list_slug: the slug of the list you want the member tweet timeline
> of. (required)
> * next/previous_cursor: used to "page" through results (optional)