Take the 2-minute tour ×
Stack Apps is a question and answer site for apps, scripts, and development with the Stack Exchange API. It's 100% free, no registration required.

While it's possible to pick up on many of the changes that are made to the API by looking at every [status-completed] tagged question on here, I'd like to see a single post that's updated every time a change is made to the structure of results returned from the API or the parameters methods take. Something like:

  • 6/04/2010 - The tags methods now return restricted_to and fulfills_required.
share|improve this question
    
Ah! You beat me to it :) –  Nathan Osman Jun 4 '10 at 16:51
    
add comment

1 Answer

up vote 3 down vote accepted

While I am all for transparency, introducing a burden on Kevin's time to announce every modification would severely affect the time to market for the beta.

I am parsing the API several times a day and the changes are fairly fast and furious.

I will write a schema comparer that will emit a change list, create a Q here and keep it current.

It may take a few days.


Update:

I have rewritten the api parser which will now output an xml document containing each route, it's parameters and return type.

Now I will write a comparer that will flag new/changed routes/types/enum etc.


Here is a sample .ToString() of the api definition. I have ommitted the return type due to size constraints.

I will make an announcement of a SOAPIWATCH service that will notify subscribers when the API changes and provide a nicely presented diff. The audience for this will likely be we developers.

SOAPI - Version 0.8 Revision 2010.6.4.1

Types:
  Seen Types:
    128-bit floating point, IEEE 754
    32-bit signed integer
    boolean
    guid, 8-4-4-4-12 format
    number
    one of active (default), votes, creation, featured, hot, week, or month
    one of activity (default), views, creation, added, or votes
    one of activity (default), views, creation, or votes
    one of anonymous, unregistered, registered, or moderator
    one of comment, askoranswered, badge, revision, or accepted
    one of creation (default), or votes
    one of desc (default), or asc
    one of popular (default), activity, or name
    one of question, answer, comment, revision, or votes
    one of question, or answer
    one of reputation (default), creation, or name
    one of single_user, or vote_based
    string
    unix epoch date, range [0, 253,402,300,799]

  Unknown Types:


Routes:
  /answers/{id}
  ------------------------------------------
    Parameters:
    ----------------------------------------
    body (optional) (boolean)
    comments (optional) (boolean)
    fromdate (optional) (unix epoch date, range [0, 253,402,300,799])
    id (string)
    max (optional) (unix epoch date, range [0, 253,402,300,799])
    min (optional) (unix epoch date, range [0, 253,402,300,799])
    order (optional) (one of desc (default), or asc)
    page (optional) (32-bit signed integer)
    pagesize (optional) (32-bit signed integer)
    sort (optional) (one of activity (default), views, creation, or votes)
    todate (optional) (unix epoch date, range [0, 253,402,300,799])


  /answers/{id}/comments
  ------------------------------------------
    Parameters:
    ----------------------------------------
    fromdate (optional) (unix epoch date, range [0, 253,402,300,799])
    id (string)
    max (optional) (unix epoch date, range [0, 253,402,300,799])
    min (optional) (unix epoch date, range [0, 253,402,300,799])
    order (optional) (one of desc (default), or asc)
    page (optional) (32-bit signed integer)
    pagesize (optional) (32-bit signed integer)
    sort (optional) (one of creation (default), or votes)
    todate (optional) (unix epoch date, range [0, 253,402,300,799])


  /badges
  ------------------------------------------
    Parameters:
    ----------------------------------------


  /badges/{id}
  ------------------------------------------
    Parameters:
    ----------------------------------------
    fromdate (optional) (unix epoch date, range [0, 253,402,300,799])
    id (string)
    page (optional) (32-bit signed integer)
    pagesize (optional) (32-bit signed integer)
    todate (optional) (unix epoch date, range [0, 253,402,300,799])


  /badges/name
  ------------------------------------------
    Parameters:
    ----------------------------------------


  /badges/tags
  ------------------------------------------
    Parameters:
    ----------------------------------------


  /comments/{id}
  ------------------------------------------
    Parameters:
    ----------------------------------------
    fromdate (optional) (unix epoch date, range [0, 253,402,300,799])
    id (string)
    max (optional) (unix epoch date, range [0, 253,402,300,799])
    min (optional) (unix epoch date, range [0, 253,402,300,799])
    order (optional) (one of desc (default), or asc)
    page (optional) (32-bit signed integer)
    pagesize (optional) (32-bit signed integer)
    sort (optional) (one of creation (default), or votes)
    todate (optional) (unix epoch date, range [0, 253,402,300,799])


  /errors/{id}
  ------------------------------------------
    Parameters:
    ----------------------------------------
    id (32-bit signed integer)


  /posts/{id}/comments
  ------------------------------------------
    Parameters:
    ----------------------------------------
    fromdate (optional) (unix epoch date, range [0, 253,402,300,799])
    id (string)
    max (optional) (unix epoch date, range [0, 253,402,300,799])
    min (optional) (unix epoch date, range [0, 253,402,300,799])
    order (optional) (one of desc (default), or asc)
    page (optional) (32-bit signed integer)
    pagesize (optional) (32-bit signed integer)
    sort (optional) (one of creation (default), or votes)
    todate (optional) (unix epoch date, range [0, 253,402,300,799])


  /questions
  ------------------------------------------
    Parameters:
    ----------------------------------------
    body (optional) (boolean)
    comments (optional) (boolean)
    fromdate (optional) (unix epoch date, range [0, 253,402,300,799])
    max (optional) (unix epoch date, range [0, 253,402,300,799])
    min (optional) (unix epoch date, range [0, 253,402,300,799])
    order (optional) (one of desc (default), or asc)
    page (optional) (32-bit signed integer)
    pagesize (optional) (32-bit signed integer)
    sort (optional) (one of active (default), votes, creation, featured, hot, week, or month)
    tagged (optional) (string)
    todate (optional) (unix epoch date, range [0, 253,402,300,799])


  /questions/{id}
  ------------------------------------------
    Parameters:
    ----------------------------------------
    body (optional) (boolean)
    comments (optional) (boolean)
    fromdate (optional) (unix epoch date, range [0, 253,402,300,799])
    id (string)
    max (optional) (unix epoch date, range [0, 253,402,300,799])
    min (optional) (unix epoch date, range [0, 253,402,300,799])
    order (optional) (one of desc (default), or asc)
    page (optional) (32-bit signed integer)
    pagesize (optional) (32-bit signed integer)
    sort (optional) (one of activity (default), views, creation, or votes)
    todate (optional) (unix epoch date, range [0, 253,402,300,799])


  /questions/{id}/answers
  ------------------------------------------
    Parameters:
    ----------------------------------------
    body (optional) (boolean)
    comments (optional) (boolean)
    fromdate (optional) (unix epoch date, range [0, 253,402,300,799])
    id (string)
    max (optional) (unix epoch date, range [0, 253,402,300,799])
    min (optional) (unix epoch date, range [0, 253,402,300,799])
    order (optional) (one of desc (default), or asc)
    page (optional) (32-bit signed integer)
    pagesize (optional) (32-bit signed integer)
    sort (optional) (one of activity (default), views, creation, or votes)
    todate (optional) (unix epoch date, range [0, 253,402,300,799])


  /questions/{id}/comments
  ------------------------------------------
    Parameters:
    ----------------------------------------
    fromdate (optional) (unix epoch date, range [0, 253,402,300,799])
    id (string)
    max (optional) (unix epoch date, range [0, 253,402,300,799])
    min (optional) (unix epoch date, range [0, 253,402,300,799])
    order (optional) (one of desc (default), or asc)
    page (optional) (32-bit signed integer)
    pagesize (optional) (32-bit signed integer)
    sort (optional) (one of creation (default), or votes)
    todate (optional) (unix epoch date, range [0, 253,402,300,799])


  /questions/{id}/timeline
  ------------------------------------------
    Parameters:
    ----------------------------------------
    fromdate (optional) (unix epoch date, range [0, 253,402,300,799])
    id (string)
    page (optional) (32-bit signed integer)
    pagesize (optional) (32-bit signed integer)
    todate (optional) (unix epoch date, range [0, 253,402,300,799])


  /questions/tagged/{tags}
  ------------------------------------------
    Parameters:
    ----------------------------------------
    body (optional) (boolean)
    comments (optional) (boolean)
    fromdate (optional) (unix epoch date, range [0, 253,402,300,799])
    max (optional) (unix epoch date, range [0, 253,402,300,799])
    min (optional) (unix epoch date, range [0, 253,402,300,799])
    order (optional) (one of desc (default), or asc)
    page (optional) (32-bit signed integer)
    pagesize (optional) (32-bit signed integer)
    sort (optional) (one of active (default), votes, creation, featured, hot, week, or month)
    tags (string)
    todate (optional) (unix epoch date, range [0, 253,402,300,799])


  /questions/unanswered
  ------------------------------------------
    Parameters:
    ----------------------------------------
    body (optional) (boolean)
    comments (optional) (boolean)
    fromdate (optional) (unix epoch date, range [0, 253,402,300,799])
    max (optional) (unix epoch date, range [0, 253,402,300,799])
    min (optional) (unix epoch date, range [0, 253,402,300,799])
    order (optional) (one of desc (default), or asc)
    page (optional) (32-bit signed integer)
    pagesize (optional) (32-bit signed integer)
    sort (optional) (one of creation (default), or votes)
    tagged (optional) (string)
    todate (optional) (unix epoch date, range [0, 253,402,300,799])


  /revisions/{id}
  ------------------------------------------
    Parameters:
    ----------------------------------------
    fromdate (optional) (unix epoch date, range [0, 253,402,300,799])
    id (string)
    todate (optional) (unix epoch date, range [0, 253,402,300,799])


  /revisions/{id}/{revisionguid}
  ------------------------------------------
    Parameters:
    ----------------------------------------
    fromdate (optional) (unix epoch date, range [0, 253,402,300,799])
    id (string)
    revisionguid (guid, 8-4-4-4-12 format)
    todate (optional) (unix epoch date, range [0, 253,402,300,799])


  /search
  ------------------------------------------
    Parameters:
    ----------------------------------------
    intitle (optional) (string)
    max (optional) (unix epoch date, range [0, 253,402,300,799])
    min (optional) (unix epoch date, range [0, 253,402,300,799])
    nottagged (optional) (string)
    order (optional) (one of desc (default), or asc)
    page (optional) (32-bit signed integer)
    pagesize (optional) (32-bit signed integer)
    sort (optional) (one of activity (default), views, creation, or votes)
    tagged (optional) (string)


  /stats
  ------------------------------------------
    Parameters:
    ----------------------------------------


  /tags
  ------------------------------------------
    Parameters:
    ----------------------------------------
    filter (optional) (string)
    fromdate (optional) (unix epoch date, range [0, 253,402,300,799])
    max (optional) (string)
    min (optional) (string)
    order (optional) (one of desc (default), or asc)
    page (optional) (32-bit signed integer)
    pagesize (optional) (32-bit signed integer)
    sort (optional) (one of popular (default), activity, or name)
    todate (optional) (unix epoch date, range [0, 253,402,300,799])


  /users
  ------------------------------------------
    Parameters:
    ----------------------------------------
    filter (optional) (string)
    fromdate (optional) (unix epoch date, range [0, 253,402,300,799])
    id (optional) (string)
    max (optional) (string)
    min (optional) (string)
    order (optional) (one of desc (default), or asc)
    page (optional) (32-bit signed integer)
    pagesize (optional) (32-bit signed integer)
    sort (optional) (one of reputation (default), creation, or name)
    todate (optional) (unix epoch date, range [0, 253,402,300,799])


  /users/{id}
  ------------------------------------------
    Parameters:
    ----------------------------------------
    fromdate (optional) (unix epoch date, range [0, 253,402,300,799])
    id (string)
    max (optional) (string)
    min (optional) (string)
    order (optional) (one of desc (default), or asc)
    page (optional) (32-bit signed integer)
    pagesize (optional) (32-bit signed integer)
    sort (optional) (one of reputation (default), creation, or name)
    todate (optional) (unix epoch date, range [0, 253,402,300,799])


  /users/{id}/answers
  ------------------------------------------
    Parameters:
    ----------------------------------------
    body (optional) (boolean)
    comments (optional) (boolean)
    fromdate (optional) (unix epoch date, range [0, 253,402,300,799])
    id (string)
    max (optional) (unix epoch date, range [0, 253,402,300,799])
    min (optional) (unix epoch date, range [0, 253,402,300,799])
    order (optional) (one of desc (default), or asc)
    page (optional) (32-bit signed integer)
    pagesize (optional) (32-bit signed integer)
    sort (optional) (one of activity (default), views, creation, or votes)
    todate (optional) (unix epoch date, range [0, 253,402,300,799])


  /users/{id}/badges
  ------------------------------------------
    Parameters:
    ----------------------------------------
    id (string)


  /users/{id}/comments
  ------------------------------------------
    Parameters:
    ----------------------------------------
    fromdate (optional) (unix epoch date, range [0, 253,402,300,799])
    id (string)
    max (optional) (unix epoch date, range [0, 253,402,300,799])
    min (optional) (unix epoch date, range [0, 253,402,300,799])
    order (optional) (one of desc (default), or asc)
    page (optional) (32-bit signed integer)
    pagesize (optional) (32-bit signed integer)
    sort (optional) (one of creation (default), or votes)
    todate (optional) (unix epoch date, range [0, 253,402,300,799])


  /users/{id}/comments/{toid}
  ------------------------------------------
    Parameters:
    ----------------------------------------
    fromdate (optional) (unix epoch date, range [0, 253,402,300,799])
    id (string)
    max (optional) (unix epoch date, range [0, 253,402,300,799])
    min (optional) (unix epoch date, range [0, 253,402,300,799])
    order (optional) (one of desc (default), or asc)
    page (optional) (32-bit signed integer)
    pagesize (optional) (32-bit signed integer)
    sort (optional) (one of creation (default), or votes)
    todate (optional) (unix epoch date, range [0, 253,402,300,799])
    toid (32-bit signed integer)


  /users/{id}/favorites
  ------------------------------------------
    Parameters:
    ----------------------------------------
    body (optional) (boolean)
    comments (optional) (boolean)
    fromdate (optional) (unix epoch date, range [0, 253,402,300,799])
    id (string)
    max (optional) (unix epoch date, range [0, 253,402,300,799])
    min (optional) (unix epoch date, range [0, 253,402,300,799])
    order (optional) (one of desc (default), or asc)
    page (optional) (32-bit signed integer)
    pagesize (optional) (32-bit signed integer)
    sort (optional) (one of activity (default), views, creation, added, or votes)
    todate (optional) (unix epoch date, range [0, 253,402,300,799])


  /users/{id}/mentioned
  ------------------------------------------
    Parameters:
    ----------------------------------------
    fromdate (optional) (unix epoch date, range [0, 253,402,300,799])
    id (string)
    max (optional) (unix epoch date, range [0, 253,402,300,799])
    min (optional) (unix epoch date, range [0, 253,402,300,799])
    order (optional) (one of desc (default), or asc)
    page (optional) (32-bit signed integer)
    pagesize (optional) (32-bit signed integer)
    sort (optional) (one of creation (default), or votes)
    todate (optional) (unix epoch date, range [0, 253,402,300,799])


  /users/{id}/questions
  ------------------------------------------
    Parameters:
    ----------------------------------------
    body (optional) (boolean)
    comments (optional) (boolean)
    fromdate (optional) (unix epoch date, range [0, 253,402,300,799])
    id (string)
    max (optional) (unix epoch date, range [0, 253,402,300,799])
    min (optional) (unix epoch date, range [0, 253,402,300,799])
    order (optional) (one of desc (default), or asc)
    page (optional) (32-bit signed integer)
    pagesize (optional) (32-bit signed integer)
    sort (optional) (one of activity (default), views, creation, or votes)
    todate (optional) (unix epoch date, range [0, 253,402,300,799])


  /users/{id}/reputation
  ------------------------------------------
    Parameters:
    ----------------------------------------
    fromdate (optional) (unix epoch date, range [0, 253,402,300,799])
    id (string)
    page (optional) (32-bit signed integer)
    pagesize (optional) (32-bit signed integer)
    todate (optional) (unix epoch date, range [0, 253,402,300,799])


  /users/{id}/tags
  ------------------------------------------
    Parameters:
    ----------------------------------------
    filter (optional) (string)
    fromdate (optional) (unix epoch date, range [0, 253,402,300,799])
    id (string)
    max (optional) (string)
    min (optional) (string)
    order (optional) (one of desc (default), or asc)
    page (optional) (32-bit signed integer)
    pagesize (optional) (32-bit signed integer)
    sort (optional) (one of popular (default), activity, or name)
    todate (optional) (unix epoch date, range [0, 253,402,300,799])


  /users/{id}/timeline
  ------------------------------------------
    Parameters:
    ----------------------------------------
    fromdate (optional) (unix epoch date, range [0, 253,402,300,799])
    id (string)
    page (optional) (32-bit signed integer)
    pagesize (optional) (32-bit signed integer)
    todate (optional) (unix epoch date, range [0, 253,402,300,799])



share|improve this answer
    
"introducing a burden on Kevin's time to announce every modification would severely affect the time to market for the beta" - we had one on the dev.meta site... and it worked fine. –  Nathan Osman Jun 4 '10 at 16:52
    
He's doing it anyway, for many things. They're just scattered around on different posts here. And yeah, I was thinking about writing something to grab all the method helps and diff them every so often, but haven't had time so far. –  ColinD Jun 4 '10 at 16:56
    
@colin - don't bother unless you just want to do it. I will release the new api parser shortly on soapi.codeplex.com –  Sky Sanders Jun 4 '10 at 19:01
    
Cool, that will be very useful. –  ColinD Jun 4 '10 at 19:06
add comment

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .