Topic Lists

Different methods to access topic lists

As with other resources in satisfaction, there are many ways to slice, dice, filter, sort, and page topic data. In general, the API uses different resources to segment the data, such as /companies/satisfaction/topics which represents all of the topics posted to getsatisfaction. Additionally, you can pass any number of query parameters to additionally filter or sort a given list of topics.

Available topic list resources

/topics
All of the topics in satisfaction
/flagged/topics
Every topic with atleast 1 abuse or spam flag, sorted by most flagged topics first
/companies/XXXXX/topics
All of the topics posted to a company
Example call that represents all of the topics in iwantsandy: http://api.getsatisfaction.com/companies/iwantsandy/topics
/people/XXXXX/topics
All of the topics posted by a person
Example call that represents all of the topics that I have created: http://api.getsatisfaction.com/people/scott/topics
/people/XXXXX/followed/topics
All of the topics followed by a person
Example call that represents all of the topics that I am currently following: http://api.getsatisfaction.com/people/scott/followed/topics/topics
/products/XXXXX/topics
All of the topics that are about a product
Example call that represents all of the topics are about an apple iBook: http://api.getsatisfaction.com/products/apple_ibook/topics
/tags/XXXXX/topics
All of the topics tagged with a given tag
Example call that represents all of the topics tagged with 'bug': http://api.getsatisfaction.com/tags/bug/topics

Available query parameters for topic lists

limit
used to specify the number of items that will appear within a single page of results for the feed. 30 is the max
page
Scroll the page X of the topic list. Pair it with limit.
Example call to show items 30-45 of the topics in the twitter community: http://api.getsatisfaction.com/companies/twitter/topics?limit=15&page=3
query
q
full text search for topics using query. please note that this disabled other options besides page and limit
Example call searching for "My twitter stream is missing updates": http://api.getsatisfaction.com/topics?q=My+twitter+stream+is+missing+updates
sort
Sorts the list of topics returned. Go figure. Available options include:
recently_created
Sorts by the topics most recently created first
recently_active
Sorts by the topics most recently posted to or marked by someone who also has the problem/question/idea
first.
most_flagged
Topics with the most spam or abuse flags are first
most_me_toos
Topics with the most people who also have the problem/question/idea first
unanswered
Only show topics with no replies
Example call to show the most popular topics first in the twitter community: http://api.getsatisfaction.com/companies/twitter/topics?sort=most_me_toos
style
Filter topics by style: options are question, idea, problem, and talk,
Example call to show only questions: http://api.getsatisfaction.com/topics?style=question

Sample atom response for a topic feed

  1. <feed xmlns="http://www.w3.org/2005/Atom" xmlns:sfn="http://api.getsatisfaction.com/schema/0.1" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:thr="http://purl.org/syndication/thread/1.0">  
  2.     
  3.    <id>http://localhost:3000/companies/twitter/topics?page=1</id>  
  4.    <title>Topics in Twitter</title>  
  5.    <updated>1969-12-31T18:00:00Z</updated>  
  6.    <link rel="self" href="http://localhost:3000/topics?page=1" type="application/atom+xml">  
  7.    <link rel="first" href="http://localhost:3000/topics?page=1" type="application/atom+xml">  
  8.    <link rel="next" href="http://localhost:3000/topics?page=2" type="application/atom+xml">  
  9.    <link rel="last" href="http://localhost:3000/topics?page=58" type="application/atom+xml">  
  10.        
  11.      
  12.    
  13.    <opensearch:totalresults>858</opensearch:totalresults>  
  14.    <sfn:question_count>349</sfn:question_count>  
  15.    <sfn:idea_count>75</sfn:idea_count>  
  16.    <sfn:problem_count>417</sfn:problem_count>  
  17.    <sfn:talk_count>17</sfn:talk_count>  
  18.    <sfn:unanswered_count>196</sfn:unanswered_count>  
  19.   
  20.    <entry>  
  21.      <id>http://localhost:3000/topics/40981</id>  
  22.      <link rel="topic" href="http://localhost:3000/topics/40981" type="application/atom+xml">  
  23.      <link rel="topic_at_sfn" href="http://localhost:3000/twitter/topics/can_twitter_update_my_myspace_status_bar" type="text/html">  
  24.      <link rel="company" href="http://localhost:3000/companies/55" type="text/html">  
  25.      <link rel="replies" href="http://localhost:3000/topics/40981/replies" type="application/atom+xml">  
  26.      <sfn:id>40981</sfn:id>  
  27.        
  28.      <title type="html">Can Twitter update my Myspace status bar?</title>  
  29.      <updated>2008-03-03T22:44:25Z</updated>  
  30.      <published>2007-11-15T05:52:49Z</published>  
  31.    
  32.      <author>  
  33.        <name>crazygurlbritt</name>  
  34.        <uri>http://localhost:3000/people/40081</uri>  
  35.      </author>  
  36.      <content type="html">  
  37.        If I add a gadget to my Myspace will Twitter update my myspace status just as if I were doing it on myspace without Twitter?  I want to be able to post on Twitter and then my myspace friends will be able to see my update when they log in.  I want it to show up where all my myspace status updates are.  I guess you can do this on facebook or is the facebook app kind of like a gadget?  I hope this isnt confusing.  I want something it's just hard to explain.  My Twitter dream is to be able to call Jott It! to update Twitter and then Twitter updates my Myspace and Facebook status so that I don't have to log in at all.  I wonder if this is possible?  
  38.      </content>  
  39.    
  40.      <sfn:topic_style>question</sfn:topic_style>  
  41.      <sfn:reply_count>2</sfn:reply_count>  
  42.      <sfn:follower_count>12</sfn:follower_count>  
  43.      <sfn:flag_count>0</sfn:flag_count>  
  44.      
  45.      <sfn:tags></sfn:tags>  
  46.    </entry>  
  47.   
  48.    <entry>...</entry>  
  49.    <entry>...</entry>  
  50.    <entry>...</entry>  
  51.   
  52.  </feed>