Entries

“Entries” is the common URL location for forum topics.

Show

GET /entries/#{id}.xml
Returns a single entry.

Response

Status: 200
<entry>
  <id>12</id>
  <forum-id>6</forum-id>
  <title>This is the title of the topic</title>
  <body>This is the body of the topic</body>
  <created-at>2007-01-03T00:10:08Z</created-at>
  <updated-at>2007-06-04T10:07:02Z</updated-at>
  <hits>3</hits>
  <posts-count>1</posts-count>
  <is-locked>false</is-locked>
  <is-pinned>true</is-pinned>
  <is-public>false</is-public>
  <submitter-id>3</submitter-id>
</entry>

List

GET /forums/#{forum_id}/entries.xml
Returns all entries (topics) for a given forum. The list is paginated using offsets. If 25 elements are returned (the page limit), use ?page=2 to get the next 25 entries, and so on.

Response

Status: 200

<entries count="87">
  <entry>
    ...
  </entry>
  <entry>
    ...
  </entry>
</entries>

Create

POST /entries.xml
Creates a new entry.

Request

<entry>
  <forum-id>6</forum-id>
  <title>This is the title of the entry</title>
  <body>This is the text of the first post for the entry</body>
  <current-tags>printer ink</current-tags>
  <is-locked>false</is-locked>
  <is-pinned>true</is-pinned>
</entry>

Submitter of the entry is set to the authenticated user

Response

Status: 201
Location: {new-entry-id}.xml

Update

PUT /entries/#{id}.xml
Updates an existing entry with new details from the submitted XML.

Request

<entry>
  <is-pinned>false</is-pinned>
  <additional-tags>printing</additional-tags>
</entry>

Response

Status: 200

Entry set not to be pinned and “printing” tag added. You can remove tags with remove-tags and set tags with set-tags.

Destroy

DELETE /entries/#{id}.xml
Destroys the entry with the referenced ID. All related posts are destroyed as well.

Response

Status: 200

List Posts

GET /entries/#{id}/posts.xml

Lets you iterate all the posts for a given entry. You can supply a page parameter to get next page, i.e.: /entries/#{id}/posts.xml?page=#{page}.

RESPONSE

Status: 200

<?xml version="1.0" encoding="UTF-8"?>
<posts type="array" count="7">
 <post>
   <account-id type="integer">1</account-id>
   <body>This was an awesome article, thanks so much</body>
   <created-at type="datetime">2011-02-03T11:41:12-08:00</created-at>
   <entry-id type="integer">43</entry-id>
   <forum-id type="integer">12</forum-id>
   <id type="integer">594718</id>
   <is-informative type="boolean">false</is-informative>
   <updated-at type="datetime">2011-02-03T11:41:12-08:00</updated-at>
   <user-id type="integer">2640</user-id>
 </post>

 ...
 <post>
   <account-id type="integer">1</account-id>
   <body>You make me happy.</body>
   <created-at type="datetime">2011-02-03T08:25:51-08:00</created-at>
   <entry-id type="integer">43</entry-id>
   <forum-id type="integer">12</forum-id>
   <id type="integer">598</id>
   <is-informative type="boolean">false</is-informative>
   <updated-at type="datetime">2011-02-03T08:25:51-08:00</updated-at>
   <user-id type="integer">2647</user-id>
 </post>
</posts>

Add post

POST /posts

Add a post to an existing entry.

Request

<post>
  <entry-id>43</entry-id>
  <body>This is a comment to an entry</body>
</post>

Response

Status: 200

Update post

PUT /posts/#{post_id}
Edits an existing post.

Request

<post>
  <body>This is a edited comment to an entry</body>
</post>

Response

Status: 200

Destroy post

DELETE /posts/#{id}.xml
Destroys the post with the referenced ID.

Response

Status: 200

Note: You can decide if the creation of a topic, or a comment within a topic, triggers an email notification to subscribers. This is handy when bulk importing a large amount of topics and comments via the API. When making a POST to entries.xml or posts.xml just include <silence-notification>true</silence-notification> to stop any notifications being generated.