Draft of List API documentation

10 views
Skip to first unread message

Marcel Molina

unread,
Oct 16, 2009, 3:04:29 AM10/16/09
to twitter-deve...@googlegroups.com, twitter-ap...@googlegroups.com
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 &amp; 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_normal.jpg</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 &amp; Canada)</time_zone>
<profile_background_image_url>http://a1.twimg.com/profile_background_images/18156348/jessica_tiled.jpg.jpeg</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

Supported formats:
xml, json

e.g.
curl -u USERNAME:PASSWORD -d "name=tall people&mode=private"
http://twitter.com/noradio/lists.xml

POST/PUT '/:user/lists/:list_slug.:format'
Updates the specified list.

Takes the same parameters as the create resource at POST
'/:user/lists.:format' (:name and :mode).

Supported formats:
xml, json

e.g.
curl -u USERNAME:PASSWORD -d "name=giants&mode=public"
http://twitter.com/noradio/lists/tall-people.xml

GET '/:user/lists.:format'
Lists your lists.

Supported format:
xml, json

e.g.
curl -u USERNAME:PASSWORD http://twitter.com/noradio/lists.xml

GET '/:user/lists/memberships.:format'
List the lists the specified user has been added to.

Supported formats:
xml, json

e.g.
curl -u USERNAME:PASSWORD http://twitter.com/noradio/lists/memberships.xml

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)

Supported formats:
xml, json

e.g.
curl -u USERNAME:PASSWORD -X DELETE
http://twitter.com/noradio/lists/tall-people.xml

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:PASSWORD
http://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:PASSWORD http://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.

Supported formats:
xml, json

e.g.
curl -u USERNAME:PASSWORD -d "id=123456789"
http://http://twitter.com/noradio/tall-people/members.xml

GET '/:user/:list_slug/members.:format'
Members of the specified list.

Supported formats:
xml, json

e.g.
curl -u USERNAME:PASSWORD http://twitter.com/noradio/tall-people/members.xml

DELETE '/:user/:list_slug/members.:format'
Remove a member from the specified list.

Parameters:
* id: the id of the user you want to remove as a member from the
list. (required)

Usage notes:
The :list_id portion of the request path should be the slug of the
list you want to add a member to.

Supported formats:
xml, json

e.g.
curl -u USERNAME:PASSWORD -X DELETE -d "id=123456789"
http://twitter.com/noradio/tall-people/members.xml

GET '/:user/:list_slug/members/:id.:format'
Check if a user is a member of the specified list.

Usage notes:
The :id is the id of the user you're inquiring about.

Supported formats:
xml, json

e.g.
curl -u USERNAME:PASSWORD
http://twitter.com/noradio/tall-people/members/123456789.xml

=== List subscribers ===

POST '/:user/:list_slug/subscribers.:format'
Subscribe the authenticated user to the specified list.

Supported formats:
xml, json

e.g.
curl -u USERNAME:PASSWORD -X POST
http://twitter.com/noradio/tall-people/subscribers.xml

GET '/:user/:list_slug/subscribers.:format'
List the users subscribed to the specified list.

Supported formats:
xml, json

e.g.
curl -u USERNAME:PASSWORD
http://twitter.com/noradio/tall-people/subscribers.xml

DELETE '/:user/:list_slug/subscribers.:format'
Unsubscribe the authenticated user from the specified list.

Supported formats:
xml, json

e.g.
curl -u USERNAME:PASSWORD -X DELETE
http://twitter.com/noradio/tall-people/subscribers.xml

GET '/:user/:list_slug/subscribers/:id.:format'
Check if a user subscribes to the specified list.

Usage notes:
The :id is the id of the user you're inquiring about.

Supported formats:
xml, json

e.g.
curl -u USERNAME:PASSWORD
http://twitter.com/noradio/tall-people/subscribers/123456789.xml

More to come soon. Stay tuned!
--
Marcel Molina
Twitter Platform Team
http://twitter.com/noradio

Rich

unread,
Oct 16, 2009, 4:06:43 AM10/16/09
to Twitter Development Talk
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!
>     <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 &amp; Canada)</time_zone>
>     <profile_background_image_url>http://a1.twimg.com/profile_background_images/18156348/jessica_tiled....</profile_background_image_url>
>  curl -u USERNAME:PASSWORDhttp://twitter.com/noradio/lists.xml
>
> GET '/:user/lists/memberships.:format'
> List the lists the specified user has been added to.
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORDhttp://twitter.com/noradio/lists/memberships.xml
>
> 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)
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORD -X DELETEhttp://twitter.com/noradio/lists/tall-people.xml
>
> 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.
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORD -d "id=123456789"http://http://twitter.com/noradio/tall-people/members.xml
>
> GET '/:user/:list_slug/members.:format'
> Members of the specified list.
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORDhttp://twitter.com/noradio/tall-people/members.xml
>
> DELETE '/:user/:list_slug/members.:format'
> Remove a member from the specified list.
>
> Parameters:
>  * id: the id of the user you want to remove as a member from the
> list. (required)
>
> Usage notes:
> The :list_id portion of the request path should be the slug of the
> list you want to add a member to.
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORD -X DELETE -d "id=123456789"http://twitter.com/noradio/tall-people/members.xml
>
> GET '/:user/:list_slug/members/:id.:format'
> Check if a user is a member of the specified list.
>
> Usage notes:
> The :id is the id of the user you're inquiring about.
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORDhttp://twitter.com/noradio/tall-people/members/123456789.xml
>
> === List subscribers ===
>
> POST '/:user/:list_slug/subscribers.:format'
> Subscribe the authenticated user to the specified list.
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORD -X POSThttp://twitter.com/noradio/tall-people/subscribers.xml
>
> GET '/:user/:list_slug/subscribers.:format'
> List the users subscribed to the specified list.
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORDhttp://twitter.com/noradio/tall-people/subscribers.xml
>
> DELETE '/:user/:list_slug/subscribers.:format'
> Unsubscribe the authenticated user from the specified list.
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORD -X DELETEhttp://twitter.com/noradio/tall-people/subscribers.xml
>
> GET '/:user/:list_slug/subscribers/:id.:format'
> Check if a user subscribes to the specified list.
>
> Usage notes:
> The :id is the id of the user you're inquiring about.
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORDhttp://twitter.com/noradio/tall-people/subscribers/123456789.xml

Marcel Molina

unread,
Oct 16, 2009, 4:11:11 AM10/16/09
to twitter-deve...@googlegroups.com
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...

janole

unread,
Oct 16, 2009, 4:52:43 AM10/16/09
to Twitter Development Talk
Any chance to get on the private beta testing for adding the feature
to my Twitter client or is the API coming later?

Ole ;-)

Dave Briccetti

unread,
Oct 16, 2009, 4:54:53 AM10/16/09
to Twitter Development Talk
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.

Andrew Badera

unread,
Oct 16, 2009, 5:02:17 AM10/16/09
to twitter-deve...@googlegroups.com
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.

∞ Andy Badera
+1 518-641-1280
∞ This email is: [ ] bloggable [x] ask first [ ] private
∞ Google me: http://www.google.com/search?q=andrew%20badera

Rich

unread,
Oct 16, 2009, 5:10:31 AM10/16/09
to Twitter Development Talk
Yeah I'm holding off committing to code until we have the formal API
docs and I can see how this works on the live site.
> >    <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 &amp; Canada)</time_zone>
> >    <profile_background_image_url>http://a1.twimg.com/profile_background_images/18156348/jessica_tiled....</profile_background_image_url>
> >  curl -u USERNAME:PASSWORDhttp://twitter.com/noradio/lists.xml
>
> > GET '/:user/lists/memberships.:format'
> > List the lists the specified user has been added to.
>
> > Supported formats:
> > xml, json
>
> > e.g.
> >  curl -u USERNAME:PASSWORDhttp://twitter.com/noradio/lists/memberships.xml
> >  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.
>
> > Supported formats:
> > xml, json
>
> > e.g.
> >  curl -u USERNAME:PASSWORD -d "id=123456789"
> >http://http://twitter.com/noradio/tall-people/members.xml
>
> > GET '/:user/:list_slug/members.:format'
> > Members of the specified list.
>
> > Supported formats:
> > xml, json
>
> > e.g.
> >  curl -u USERNAME:PASSWORDhttp://twitter.com/noradio/tall-people/members.xml

Dave Briccetti

unread,
Oct 16, 2009, 5:29:40 AM10/16/09
to Twitter Development Talk
If anyone’s interested, here’s the commit for TalkingPuffin for
preliminary support for displaying lists:

http://github.com/dcbriccetti/talking-puffin/commit/ea86bfb523d7aea98df6ebae52893c16f53fa542

A picture of the feature:

http://www.flickr.com/photos/dcbriccetti/4015781495/

Cameron Kaiser

unread,
Oct 16, 2009, 8:55:11 AM10/16/09
to twitter-deve...@googlegroups.com
> 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)
>
> Supported formats:
> xml, json
>
> e.g.
> curl -u USERNAME:PASSWORD -X DELETE
> http://twitter.com/noradio/lists/tall-people.xml

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 * cka...@floodgap.com
-- When in doubt, use brute force. -- Ken Thompson ----------------------------

Kevin Makice

unread,
Oct 16, 2009, 9:52:16 AM10/16/09
to Twitter Development Talk
This is great.

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?

Bill Kocik

unread,
Oct 16, 2009, 10:10:28 AM10/16/09
to Twitter Development Talk

Hi Marcel -

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.

Thanks...

Adam Loving

unread,
Oct 16, 2009, 10:48:15 AM10/16/09
to Twitter Development Talk
I just want to say thank you for looping us in early, much appreciated!

Rod Begbie

unread,
Oct 17, 2009, 5:57:58 PM10/17/09
to twitter-deve...@googlegroups.com
Some questions on lists that came from a quick hack I made this morning (http://github.com/rodbegbie/emulate-with_friends):

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?

Cheers,

Rod.

--
:: Rod Begbie :: http://groovymother.com/ ::

Brian Smith

unread,
Oct 17, 2009, 6:01:35 PM10/17/09
to twitter-deve...@googlegroups.com

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.

@epc

unread,
Oct 17, 2009, 7:17:49 PM10/17/09
to Twitter Development Talk
When adding a user to a list, only the numeric id appears to work, eg:

curl -k --user epc:pass -d id=7758742 --url https://twitter.com/epc/defrag/members.xml
works, but
curl -k --user epc:pass -d id=enorlin --url https://twitter.com/epc/defrag/members.xml

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.

--
-ed costello

LeeS

unread,
Oct 17, 2009, 7:34:18 PM10/17/09
to Twitter Development Talk
So far, I've observed the limits to be 20 lists per user, 500 users
per list.

Lee

Beier

unread,
Oct 18, 2009, 12:34:51 AM10/18/09
to Twitter Development Talk
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.
>     <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 &amp; Canada)</time_zone>
>     <profile_background_image_url>http://a1.twimg.com/profile_background_images/18156348/jessica_tiled....</profile_background_image_url>
>  curl -u USERNAME:PASSWORDhttp://twitter.com/noradio/lists.xml
>
> GET '/:user/lists/memberships.:format'
> List the lists the specified user has been added to.
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORDhttp://twitter.com/noradio/lists/memberships.xml
>
> 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)
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORD -X DELETEhttp://twitter.com/noradio/lists/tall-people.xml
>
> 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.
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORD -d "id=123456789"http://http://twitter.com/noradio/tall-people/members.xml
>
> GET '/:user/:list_slug/members.:format'
> Members of the specified list.
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORDhttp://twitter.com/noradio/tall-people/members.xml
>
> DELETE '/:user/:list_slug/members.:format'
> Remove a member from the specified list.
>
> Parameters:
>  * id: the id of the user you want to remove as a member from the
> list. (required)
>
> Usage notes:
> The :list_id portion of the request path should be the slug of the
> list you want to add a member to.
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORD -X DELETE -d "id=123456789"http://twitter.com/noradio/tall-people/members.xml
>
> GET '/:user/:list_slug/members/:id.:format'
> Check if a user is a member of the specified list.
>
> Usage notes:
> The :id is the id of the user you're inquiring about.
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORDhttp://twitter.com/noradio/tall-people/members/123456789.xml
>
> === List subscribers ===
>
> POST '/:user/:list_slug/subscribers.:format'
> Subscribe the authenticated user to the specified list.
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORD -X POSThttp://twitter.com/noradio/tall-people/subscribers.xml
>
> GET '/:user/:list_slug/subscribers.:format'
> List the users subscribed to the specified list.
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORDhttp://twitter.com/noradio/tall-people/subscribers.xml
>
> DELETE '/:user/:list_slug/subscribers.:format'
> Unsubscribe the authenticated user from the specified list.
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORD -X DELETEhttp://twitter.com/noradio/tall-people/subscribers.xml
>
> GET '/:user/:list_slug/subscribers/:id.:format'
> Check if a user subscribes to the specified list.
>
> Usage notes:
> The :id is the id of the user you're inquiring about.
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORDhttp://twitter.com/noradio/tall-people/subscribers/123456789.xml

Dave Briccetti

unread,
Oct 18, 2009, 3:31:43 AM10/18/09
to Twitter Development Talk
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.

I’m enjoying lists. Thanks for the feature.

00:19:04,692 dcbriccetti POST http://api.twitter.com/1/dcbriccetti/scala/members.xml
id=52061552
00:19:05,291 dcbriccetti POST http://api.twitter.com/1/dcbriccetti/scala/members.xml
id=19757713
...
00:19:28,647 dcbriccetti POST http://api.twitter.com/1/dcbriccetti/scala/members.xml
id=31206658
00:19:28,802 dcbriccetti POST http://api.twitter.com/1/dcbriccetti/scala/members.xml
id=7401782
00:19:37,686 TwitterException - Code: 503, Title: Twitter / Over
capacity
00:19:37,687 dcbriccetti POST http://api.twitter.com/1/dcbriccetti/scala/members.xml
id=12173192
00:19:43,698 TwitterException - Code: 503, Title: Twitter / Over
capacity
00:19:43,699 dcbriccetti POST http://api.twitter.com/1/dcbriccetti/scala/members.xml
id=6562002
00:19:44,803 dcbriccetti POST http://api.twitter.com/1/dcbriccetti/scala/members.xml
id=45456164
...
00:19:49,219 dcbriccetti POST http://api.twitter.com/1/dcbriccetti/scala/members.xml
id=17334287
00:19:56,129 dcbriccetti POST http://api.twitter.com/1/dcbriccetti/scala/members.xml
id=45966787
00:20:01,698 TwitterException - Code: 503, Title: Twitter / Over
capacity
00:20:01,698 dcbriccetti POST http://api.twitter.com/1/dcbriccetti/scala/members.xml
id=17779075
00:20:02,341 dcbriccetti POST http://api.twitter.com/1/dcbriccetti/scala/members.xml
id=8858812
...
00:20:17,320 dcbriccetti POST http://api.twitter.com/1/dcbriccetti/scala/members.xml
id=19044984
00:20:17,734 dcbriccetti POST http://api.twitter.com/1/dcbriccetti/scala/members.xml
id=648533
00:20:23,526 TwitterException - Code: 503, Title: Twitter / Over
capacity
00:20:23,526 dcbriccetti POST http://api.twitter.com/1/dcbriccetti/scala/members.xml
id=19142351
00:20:24,144 dcbriccetti POST http://api.twitter.com/1/dcbriccetti/scala/members.xml
id=10759032
...
00:20:42,440 dcbriccetti POST http://api.twitter.com/1/dcbriccetti/scala/members.xml
id=19418890

Dave Briccetti

unread,
Oct 18, 2009, 5:00:35 AM10/18/09
to Twitter Development Talk
Multiple identical list create requests result in multiple lists,
differing in slug/url/full name.
Perhaps it should ignore, or return an error?

$ curl -u dcbriccetti -d "name=Scala" http://twitter.com/dcbriccetti/lists.xml
<?xml version="1.0" encoding="UTF-8"?>
<list>
<id>29926</id>
<name>Scala</name>
<full_name>@dcbriccetti/scala-2</full_name>
<slug>scala-2</slug>
...

$ curl -u dcbriccetti -d "name=Scala" http://twitter.com/dcbriccetti/lists.xml
<?xml version="1.0" encoding="UTF-8"?>
<list>
<id>29927</id>
<name>Scala</name>
<full_name>@dcbriccetti/scala-3</full_name>
<slug>scala-3</slug>
...

Ollie Parsley

unread,
Oct 18, 2009, 8:39:10 PM10/18/09
to Twitter Development Talk
I created an app today using just the Lists API at http://listleagues.com
when can I start publicising it?

If anyone has any feedback let me know ol...@ollieparsley.com :

thanks

Ollie
>     <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 &amp; Canada)</time_zone>
>     <profile_background_image_url>http://a1.twimg.com/profile_background_images/18156348/jessica_tiled....</profile_background_image_url>
>  curl -u USERNAME:PASSWORDhttp://twitter.com/noradio/lists.xml
>
> GET '/:user/lists/memberships.:format'
> List the lists the specified user has been added to.
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORDhttp://twitter.com/noradio/lists/memberships.xml
>
> 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)
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORD -X DELETEhttp://twitter.com/noradio/lists/tall-people.xml
>
> 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.
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORD -d "id=123456789"http://http://twitter.com/noradio/tall-people/members.xml
>
> GET '/:user/:list_slug/members.:format'
> Members of the specified list.
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORDhttp://twitter.com/noradio/tall-people/members.xml
>
> DELETE '/:user/:list_slug/members.:format'
> Remove a member from the specified list.
>
> Parameters:
>  * id: the id of the user you want to remove as a member from the
> list. (required)
>
> Usage notes:
> The :list_id portion of the request path should be the slug of the
> list you want to add a member to.
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORD -X DELETE -d "id=123456789"http://twitter.com/noradio/tall-people/members.xml
>
> GET '/:user/:list_slug/members/:id.:format'
> Check if a user is a member of the specified list.
>
> Usage notes:
> The :id is the id of the user you're inquiring about.
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORDhttp://twitter.com/noradio/tall-people/members/123456789.xml
>
> === List subscribers ===
>
> POST '/:user/:list_slug/subscribers.:format'
> Subscribe the authenticated user to the specified list.
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORD -X POSThttp://twitter.com/noradio/tall-people/subscribers.xml
>
> GET '/:user/:list_slug/subscribers.:format'
> List the users subscribed to the specified list.
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORDhttp://twitter.com/noradio/tall-people/subscribers.xml
>
> DELETE '/:user/:list_slug/subscribers.:format'
> Unsubscribe the authenticated user from the specified list.
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORD -X DELETEhttp://twitter.com/noradio/tall-people/subscribers.xml
>
> GET '/:user/:list_slug/subscribers/:id.:format'
> Check if a user subscribes to the specified list.
>
> Usage notes:
> The :id is the id of the user you're inquiring about.
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORDhttp://twitter.com/noradio/tall-people/subscribers/123456789.xml

Dave Briccetti

unread,
Oct 18, 2009, 11:06:40 PM10/18/09
to Twitter Development Talk
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.

Dave Briccetti

unread,
Oct 18, 2009, 11:08:43 PM10/18/09
to Twitter Development Talk
Sorry, that video is here: http://www.youtube.com/watch?v=NUVDP5sX2rA

Copy/paste error.

Tim Haines

unread,
Oct 19, 2009, 3:40:42 AM10/19/09
to twitter-deve...@googlegroups.com
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.

Michael Steuer

unread,
Oct 19, 2009, 7:52:16 AM10/19/09
to twitter-deve...@googlegroups.com, twitter-deve...@googlegroups.com
+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). 


Tim Haines

unread,
Oct 20, 2009, 5:40:39 AM10/20/09
to twitter-deve...@googlegroups.com
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.

Cheers,

Tim.

nipunj

unread,
Oct 21, 2009, 12:59:41 PM10/21/09
to Twitter Development Talk
Hey Marcel,
I expect there were many things cut in Lists v1,... but, that said, I
am surprised that Title is essentially the only attribute on the List
object that informs the consumer what a Public List is intended to
actually represent. There's no "bio" analog. IMO, this lack of
explicit descriptive attributes hamstrings Lists discovery. How about
"tags", "description", "list type", etc.?

Also,... I understand your need to test out the API right now, but
you've created inequity with the private API access. How can folks
like us, who have an app that's closely related to Lists, get access
to the Lists API (ie create a level playing field)?

Thanks,
Nipun

@nipj
@tweeppacks

Marcel Molina

unread,
Oct 21, 2009, 4:53:15 PM10/21/09
to twitter-deve...@googlegroups.com
There are plans to expose a description field eventually.

--

LeeS - @semel

unread,
Oct 24, 2009, 1:46:01 PM10/24/09
to Twitter Development Talk
Seconding bulk add. I'm working on a Lists app and everyone I've
shown it to asks for this feature.

Lee


On Oct 18, 3:31 am, Dave Briccetti <da...@davebsoft.com> wrote:
> 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.
>
> I’m enjoyinglists. Thanks for the feature.
>
> 00:19:04,692 dcbriccetti POSThttp://api.twitter.com/1/dcbriccetti/scala/members.xml
> id=52061552
> 00:19:05,291 dcbriccetti POSThttp://api.twitter.com/1/dcbriccetti/scala/members.xml
> id=19757713
> ...
> 00:19:28,647 dcbriccetti POSThttp://api.twitter.com/1/dcbriccetti/scala/members.xml
> id=31206658
> 00:19:28,802 dcbriccetti POSThttp://api.twitter.com/1/dcbriccetti/scala/members.xml
> id=7401782
> 00:19:37,686 TwitterException  - Code: 503, Title: Twitter / Over
> capacity
> 00:19:37,687 dcbriccetti POSThttp://api.twitter.com/1/dcbriccetti/scala/members.xml
> id=12173192
> 00:19:43,698 TwitterException  - Code: 503, Title: Twitter / Over
> capacity
> 00:19:43,699 dcbriccetti POSThttp://api.twitter.com/1/dcbriccetti/scala/members.xml
> id=6562002
> 00:19:44,803 dcbriccetti POSThttp://api.twitter.com/1/dcbriccetti/scala/members.xml
> id=45456164
> ...
> 00:19:49,219 dcbriccetti POSThttp://api.twitter.com/1/dcbriccetti/scala/members.xml
> id=17334287
> 00:19:56,129 dcbriccetti POSThttp://api.twitter.com/1/dcbriccetti/scala/members.xml
> id=45966787
> 00:20:01,698 TwitterException  - Code: 503, Title: Twitter / Over
> capacity
> 00:20:01,698 dcbriccetti POSThttp://api.twitter.com/1/dcbriccetti/scala/members.xml
> id=17779075
> 00:20:02,341 dcbriccetti POSThttp://api.twitter.com/1/dcbriccetti/scala/members.xml
> id=8858812
> ...
> 00:20:17,320 dcbriccetti POSThttp://api.twitter.com/1/dcbriccetti/scala/members.xml
> id=19044984
> 00:20:17,734 dcbriccetti POSThttp://api.twitter.com/1/dcbriccetti/scala/members.xml
> id=648533
> 00:20:23,526 TwitterException  - Code: 503, Title: Twitter / Over
> capacity
> 00:20:23,526 dcbriccetti POSThttp://api.twitter.com/1/dcbriccetti/scala/members.xml
> id=19142351
> 00:20:24,144 dcbriccetti POSThttp://api.twitter.com/1/dcbriccetti/scala/members.xml

Dave Briccetti

unread,
Oct 24, 2009, 3:28:43 PM10/24/09
to Twitter Development Talk
By the way, I changed this code to do ten or fifteen of these at a
time, using multiple threads, and it’s much, much faster.

yoni

unread,
Nov 2, 2009, 10:35:23 AM11/2/09
to Twitter Development Talk
Bulk Add would be huge. Likewise, Bulk Delete.

~ yoni
> >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 &amp; Canada)</time_zone>
> >    <profile_background_image_url>
> >http://a1.twimg.com/profile_background_images/18156348/jessica_tiled....
> >  curl -u USERNAME:PASSWORDhttp://twitter.com/noradio/lists.xml

wilfred yau

unread,
Nov 3, 2009, 2:26:37 AM11/3/09
to Twitter Development Talk
It there any method to delete user from list other then using DELETE
method?
Since I am using Flex (but not Air) to develop third party Twitter
Client, There are no way to call "DELETE" (which only GET and POST).
So, will twitter provide POST or GET method API to "delete"? Thanks
> Creates a newlistfor the authenticated user.
>
> Parameters:
>  * name: the name of thelist. (required)
>  * mode: whether yourlistis 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 thelist
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORD -d "name=tall people&mode=private"http://twitter.com/noradio/lists.xml
>
> POST/PUT '/:user/lists/:list_slug.:format'
> Updates the specifiedlist.
>
> Takes the same parameters as the create resource at POST
> '/:user/lists.:format' (:name and :mode).
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORD -d "name=giants&mode=public"http://twitter.com/noradio/lists/tall-people.xml
>
> GET '/:user/lists.:format'
> Lists your lists.
>
> Supported format:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORDhttp://twitter.com/noradio/lists.xml
>
> GET '/:user/lists/memberships.:format'Listthe lists the specified user has been added to.
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORDhttp://twitter.com/noradio/lists/memberships.xml
>
> DELETE '/:user/lists/:list_slug.:format'
> Delete the specifiedlistowned by the authenticated user.
>
> Parameters:
>  * list_slug: the slug of thelistyou want to delete. (required)
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORD -X DELETEhttp://twitter.com/noradio/lists/tall-people.xml
>
> GET '/:users/lists/:list_slug/statuses.:format'
> Show tweet timeline for members of the specifiedlist.
>
> Parameters:
>  * list_slug: the slug of thelistyou 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 specificlistyou can use the new resource.
>
> Supported formats:
> xml, json
>
> e.g.
>   curl -u USERNAME:PASSWORDhttp://twitter.com/noradio/lists/tall-people.xml
>
> ===Listmembers ===
>
> POST '/:user/:list_slug/members.:format'
> Add a member to alist.
>
> Parameters:
>  * id: the id of the user you want to add as a member to thelist. (required)
>
> Usage notes:
> The :list_slug portion of the request path should be the slug of thelistyou want to add a member to.
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORD -d "id=123456789"http://http://twitter.com/noradio/tall-people/members.xml
>
> GET '/:user/:list_slug/members.:format'
> Members of the specifiedlist.
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORDhttp://twitter.com/noradio/tall-people/members.xml
>
> DELETE '/:user/:list_slug/members.:format'
> Remove a member from the specifiedlist.
>
> Parameters:
>  * id: the id of the user you want to remove as a member from thelist. (required)
>
> Usage notes:
> The :list_id portion of the request path should be the slug of thelistyou want to add a member to.
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORD -X DELETE -d "id=123456789"http://twitter.com/noradio/tall-people/members.xml
>
> GET '/:user/:list_slug/members/:id.:format'
> Check if a user is a member of the specifiedlist.
>
> Usage notes:
> The :id is the id of the user you're inquiring about.
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORDhttp://twitter.com/noradio/tall-people/members/123456789.xml
>
> ===Listsubscribers ===
>
> POST '/:user/:list_slug/subscribers.:format'
> Subscribe the authenticated user to the specifiedlist.
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORD -X POSThttp://twitter.com/noradio/tall-people/subscribers.xml
>
> GET '/:user/:list_slug/subscribers.:format'Listthe users subscribed to the specifiedlist.
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORDhttp://twitter.com/noradio/tall-people/subscribers.xml
>
> DELETE '/:user/:list_slug/subscribers.:format'
> Unsubscribe the authenticated user from the specifiedlist.
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORD -X DELETEhttp://twitter.com/noradio/tall-people/subscribers.xml
>
> GET '/:user/:list_slug/subscribers/:id.:format'
> Check if a user subscribes to the specifiedlist.
>
> Usage notes:
> The :id is the id of the user you're inquiring about.
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORDhttp://twitter.com/noradio/tall-people/subscribers/123456789.xml

Cameron Kaiser

unread,
Nov 3, 2009, 9:14:50 AM11/3/09
to twitter-deve...@googlegroups.com
> It there any method to delete user from list other then using DELETE
> method?
> Since I am using Flex (but not Air) to develop third party Twitter
> Client, There are no way to call "DELETE" (which only GET and POST).
> So, will twitter provide POST or GET method API to "delete"? Thanks

I'd like to second this (I asked for it a while back, but never heard
anything). There are other environments where DELETE may not be possible
to issue as a method. Since the other API deletion methods offer POST as
a stub to delete, I think it would be orthogonal to offer it here too.

--
------------------------------------ personal: http://www.cameronkaiser.com/ --
Cameron Kaiser * Floodgap Systems * www.floodgap.com * cka...@floodgap.com

-- People are weird. -- Law & Order SVU ---------------------------------------

Rich

unread,
Nov 3, 2009, 11:32:44 AM11/3/09
to Twitter Development Talk
Does Air not support REST properly? For an application to be RESTful
it should support GET, POST, PUT and DELETE

On Nov 3, 2:14 pm, Cameron Kaiser <spec...@floodgap.com> wrote:
> > It there any method to delete user from list other then using DELETE
> > method?
> > Since I am using Flex (but not Air) to develop third party Twitter
> > Client, There are no way to call "DELETE" (which only GET and POST).
> > So, will twitter provide POST or GET method API to "delete"? Thanks
>
> I'd like to second this (I asked for it a while back, but never heard
> anything). There are other environments where DELETE may not be possible
> to issue as a method. Since the other API deletion methods offer POST as
> a stub to delete, I think it would be orthogonal to offer it here too.
>
> --
> ------------------------------------ personal:http://www.cameronkaiser.com/--
>   Cameron Kaiser * Floodgap Systems *www.floodgap.com* ckai...@floodgap.com

Marcel Molina

unread,
Nov 3, 2009, 6:16:04 PM11/3/09
to twitter-deve...@googlegroups.com
A work around for environments that don't support the DELETE request
method is, I believe, to pass a parameter called _method with the
value "DELETE". In other words "_method=DELETE".

Cameron Kaiser

unread,
Nov 3, 2009, 6:23:35 PM11/3/09
to twitter-deve...@googlegroups.com
> A work around for environments that don't support the DELETE request
> method is, I believe, to pass a parameter called _method with the
> value "DELETE". In other words "_method=DELETE".

I'll take a look at that.

--
------------------------------------ personal: http://www.cameronkaiser.com/ --
Cameron Kaiser * Floodgap Systems * www.floodgap.com * cka...@floodgap.com

-- If it weren't for Carbon-14, I wouldn't date at all. -- "Diesel Sweeties" --

wilfred yau

unread,
Nov 3, 2009, 9:45:28 PM11/3/09
to Twitter Development Talk
I have try this and It's work, thank you =]
> >>Deletethe specifiedlistowned by the authenticated user.
>
> >> Parameters:
> >>  * list_slug: the slug of thelistyou want todelete. (required)
>
> >> Supported formats:
> >> xml, json
>
> >> e.g.
> >>  curl -u USERNAME:PASSWORD -XDELETEhttp://twitter.com/noradio/lists/tall-people.xml
> >>  curl -u USERNAME:PASSWORD -XDELETE-d "id=123456789"http://twitter.com/noradio/tall-people/members.xml
> >>  curl -u USERNAME:PASSWORD -XDELETEhttp://twitter.com/noradio/tall-people/subscribers.xml

Damon Clinkscales

unread,
Nov 3, 2009, 11:38:22 PM11/3/09
to twitter-deve...@googlegroups.com
On Fri, Oct 16, 2009 at 1: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.

Marcel,

It would be nice if we could pass in either the user_id or the
screen_name, wherever you are currently requiring a Twitter user id.
This would be consistent with the rest of the REST API (and quite
useful, saving an extra call).

Thanks,
-damon
--
http://twitter.com/damon

Lee Semel

unread,
Nov 3, 2009, 11:53:42 PM11/3/09
to twitter-deve...@googlegroups.com
Seconding... In our app, whenever someone enters a screen name they want to add to a list, we have to do two API calls, to first get the id before adding the user to the list.

Lee

Marcel Molina

unread,
Nov 4, 2009, 1:52:22 PM11/4/09
to twitter-deve...@googlegroups.com
We plan to support this. It's on the todo list. Thanks for the suggestion.

--

wilfred yau

unread,
Nov 5, 2009, 2:26:27 AM11/5/09
to Twitter Development Talk
Marcel:

Will Twitter provide any API method to check update of the lists?
that I can save the API call in development.
Only 150 API call include list API seem difficult to check update...
Thanks :)

On Oct 16, 3: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.
>
> Delete the specifiedlistowned by the authenticated user.
>
> Parameters:
>  * list_slug: the slug of thelistyou want to delete. (required)
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORD -X DELETEhttp://twitter.com/noradio/lists/tall-people.xml
>  curl -u USERNAME:PASSWORD -X DELETE -d "id=123456789"http://twitter.com/noradio/tall-people/members.xml
>  curl -u USERNAME:PASSWORD -X DELETEhttp://twitter.com/noradio/tall-people/subscribers.xml
>
> GET '/:user/:list_slug/subscribers/:id.:format'
> Check if a user subscribes to the specifiedlist.
>
> Usage notes:
> The :id is the id of the user you're inquiring about.
>
> Supported formats:
> xml, json
>
> e.g.
>  curl -u USERNAME:PASSWORDhttp://twitter.com/noradio/tall-people/subscribers/123456789.xml
>
> More to come soon. Stay tuned!

Paul Kinlan

unread,
Nov 5, 2009, 8:48:53 AM11/5/09
to twitter-deve...@googlegroups.com
Can you confirm that _method=DELETE only works on POST's and not GET's?

Paul

2009/11/3 Marcel Molina <mar...@twitter.com>

Milen

unread,
Nov 5, 2009, 10:05:25 AM11/5/09
to Twitter Development Talk
I think that all methods which refer to lists should use the id, not
the slug. As people have mentioned, the slug can change, so in order
to reliably delete a list, you will have to fetch its slug and then
issue a delete (or you risk getting an error as the slug might have
changed in the meantime).

I also tried to "page" through the statuses in a list but it seemed
that:
- next_cursor / previous_cursor had no effect on what was returned
- cursor=-1 or anything else didn't have an effect

Can anyone shed some light on how we're supposed to do paging?

Thanks,
M

On Oct 16, 7:04 am, Marcel Molina <mar...@twitter.com> wrote:

> 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

Rich

unread,
Nov 5, 2009, 12:20:53 PM11/5/09
to Twitter Development Talk
I'm using both currently, as to be able to link through from
@screen_name/list_name as the Twitter site does you have to use the
slug

Michael Steuer

unread,
Nov 5, 2009, 12:27:28 PM11/5/09
to twitter-deve...@googlegroups.com
Yes, please continue to allow the use of the slug for linking to a lists
timeline from another timeline...

Marcel Molina

unread,
Nov 5, 2009, 1:56:48 PM11/5/09
to twitter-deve...@googlegroups.com
I think it should work for any request. Not sure though. Give it a try ;-)

Marcel Molina

unread,
Nov 5, 2009, 1:58:37 PM11/5/09
to twitter-deve...@googlegroups.com
Status timelines paginate with the page parameters. Social graph
resources such as the members in a list use the cursor parameters.
We're looking to rationalize all this as we move to new systems but
for now there are different interfaces. You use the same mechanisms
for the list statuses timeline as you do for all other status
timelines.

--

Marcel Molina

unread,
Nov 5, 2009, 2:01:37 PM11/5/09
to twitter-deve...@googlegroups.com
We will support specifying a list by both id and slug indefinitely.
Though we recognize the short comings of finding by slug since they
are prone to changing, there are use cases where finding by slug is a
lot more convenient. So we'll be supporting both. You never *have* to
search by slug :-)

On Thu, Nov 5, 2009 at 7:05 AM, Milen <mi...@thecosmicmachine.com> wrote:
>

--

Orian Marx (@orian)

unread,
Dec 10, 2009, 11:09:33 AM12/10/09
to Twitter Development Talk
Any update on possibly supporting bulk add / remove actions for list
memberships? What about the request to fetch all list member IDs in a
single call?

On Nov 5, 2:01 pm, Marcel Molina <mar...@twitter.com> wrote:
> We will support specifying alistby bothidand slug indefinitely.
> Though we recognize the short comings of finding by slug since they
> are prone to changing, there are use cases where finding by slug is a
> lot more convenient. So we'll be supporting both. You never *have* to
> search by slug :-)
>
>
>
> On Thu, Nov 5, 2009 at 7:05 AM, Milen <mi...@thecosmicmachine.com> wrote:
>
> > I think that all methods which refer to lists should use theid, not
> > the slug. As people have mentioned, the slug can change, so in order
> > to reliably delete alist, you will have to fetch its slug and then
> > issue a delete (or you risk getting an error as the slug might have
> > changed in the meantime).
>
> > I also tried to "page" through the statuses in alistbut it seemed
> > that:
> > - next_cursor / previous_cursor had no effect on what was returned
> > - cursor=-1 or anything else didn't have an effect
>
> > Can anyone shed some light on how we're supposed to do paging?
>
> > Thanks,
> > M
>
> > On Oct 16, 7:04 am, Marcel Molina <mar...@twitter.com> wrote:
>
> >>GET'/:users/lists/:list_slug/statuses.:format'
> >> Show tweet timeline for members of the specifiedlist.
>
> >> Parameters:
> >>  * list_slug: the slug of thelistyou want the member tweet timeline

Marcel Molina

unread,
Dec 13, 2009, 8:55:08 PM12/13/09
to twitter-deve...@googlegroups.com
The list of member IDs as well as a resource to post ids and get full user objects back is on the todo list. No ETA at the moment other than "not next week".
Reply all
Reply to author
Forward
0 new messages