This documentation is for the rest endpoints under /api/v2
- boolean - (true, false, 1, 0, yes, no)
- datetime string - ISO 8601 date/time, or unix epoch in milliseconds
- ISO_8601_DATETIME - ISO 8601 date/time
- epoch - unix epoch in milliseconds
- id_string - a string for the id
- username_string - user's username. All lowercase word characters of atleast 3, with the posibility of '-'s and '&'s
JSON SeamailDetails {
"seamail": Object {
"id": "id_string",
"users": Array [
Object { "username": "username_string",
"display_name": "displayname_string"
}, …],
"subject": "string",
"messages": Array [
SeamailMessage {
"author": "username_string",
"author_display_name": "displayname_string",
"text": "string",
"timestamp": "ISO_8601_DATETIME"
}, …
],
"is_unread": boolean
}
}
JSON SeamailMetaInfo {
"id": id_string,
"users": ARRAY [ Object {
"username": "username_string",
"display_name": "displayname_string"
},
… ],
"subject": "string",
"messages": "\d+ message",
"timestamp": "ISO_8601_DATETIME",
"is_unread": boolean
}
Gets the User's seamail (Not the messages contained within, just the subject, etc)
- logged in.
- Accepts: key query parameter
- unread=<boolean> - Optional (Default: false) - only show unread seamail if true
- after=<datetime string> - Optional (Default: all messages) - Only show seamail after this point in time.
{
"seamail_meta": [ SeamailMetaInfo{…}, … ],
"last_checked": epoch
}
Gets the messages contained within a seamail
- logged in.
- Accepts: key query parameter
none
JSON SeamailDetails{…}
Creates a new Seamail, with a initial message
- logged in.
- Accepts: key query parameter
none
JSON Object {
"users": [username_string, …], # no need to add the author, as that is automatically included
"subject": "string",
"text": "string" # The first post's of the seamail's textual content
}
JSON SeamailDetails{…}
Create a new message within a Seamail
- logged in.
- Accepts: key query parameter
none
JSON Object {
"text": "string"
}
JSON SeamailMessage{…}
modifies the recipients of a seamail
- logged in.
- Accepts: key query parameter
none
JSON Object {
"users": ["username_string", …]
}
JSON SeamailMetaInfo{…}
Get how many unread seamails the user has
{
"status": "ok",
"email_count": 0
}
Get/post information on the tweet stream
JSON StreamPostMeta {
"id": "id_string",
"author": "username_string",
"display_name": "displayname_string",
"text": "marked up text",
"timestamp": "ISO_8601_DATETIME",
"likes": null|Integer,
"mentions": ["username_string", …],
"entities": [ … ],
"hash_tags": [ "word_character_string", … ],
"parent_chain": [ "stream_post_id_string", …]
}
JSON StreamPostDetails {
"id": "id_string",
"author": "username_string",
"display_name": "displayname_string",
"text": "marked up text",
"timestamp": "ISO_8601_DATETIME",
"likes": null|Integer,
"mentions": [ "username_string", … ],
"entities": [ … ],
"hash_tags": [ "word_character_string", … ],
"parent_chain": [ "stream_post_id_string", .. ],
"children": [StreamPostMeta{… Minus the parent_chain}, …]
}
Get the recent tweets in the stream
- start=epoch - Optional (Default: Now) - The start location for getting tweets
- older_posts - Optional (Default: off) - If this parameter exist, retrieve posts older than this, otherwise get newer ones
- limit=Integer - Optional (Default: 20) - How many to tweets to get
- author=username - Optional (Default:No Filter) - Filter by username specified
- hashtag=hashtag - Optional (Default:NO Filter) - Filter by hashtag
- likes=username - Optional (Default:No Filter) - Return only posts liked by the username specified
- mentions=username - Optional (Default:No Filter) - Filter by mentions of username specified
- include_author=true - Optional (Default: false) - When filtering by mentions, include posts mentioning or written by the username specified
- starred=true - Optional (Default: false) - Return only posts by starred users (You must be logged in for this to work.)
JSON Object { "stream_posts": Array[ StreamPostMeta {…}, … ],
"next_page": 1421197659001
}
Get details of a stream post (tweet) This will include the children posts (replies) to this tweet sorted in timestamp order
- limit=Integer - Optional(Default: 20) - Number of children posts to return with this tweet
- start_loc=Integer - Optional(Default: 0) - Start offset to display children posts
JSON StreamPostDetails {…}
View a user's mention's stream
- page=Integer - Optional(Default: 0) - Number of posts to return
- limit=Integer - Optional(Default: 20) - Start offset to view
- after=epoch - Optional(Default: None) - Start time to query for (only showing mentions newer than this)
JSON Object {"status": "ok", "posts": [StreamPostMeta {…}, …],
"next": "page number to start with"}
View a hash tag tweet stream
- page=Integer - Optional(Default: 0) - Number of posts to return
- limit=Integer - Optional(Default: 20) - Start offset to view
- after=epoch - Optional(Default: None) - Start time to query for (only showing mentions newer than this)
JSON Object {"status": "ok", "posts": [StreamPostMeta {…}, …],
"next": "page number to start with"}
Like a post
- logged in.
- Accepts: key query parameter
Current users who like the post
{
"status": "ok",
"likes": [
"username_string", ...
]
}
Unlike a post
- logged in.
- Accepts: key query parameter
Current users who like the post
{
"status": "ok",
"likes": [
"username_string", ...
]
}
Get the current likes of a post
Current users who like the post
{
"status": "ok",
"likes": [
"username_string", ...
]
}
Posts or reply to a post in the stream.
- logged in.
- Accepts: key query parameter
JSON Object { "parent": "stream_post_id_string", "text": "Tweet content", "photo": "photo_id_string"}
- The parent is optional. If Specified, it will make this post a reply to another StreamPost by the id_string passed in.
- The photo is optional. If Specified, it will make this post link in the photo that has already been uploaded with the id_string passed in.
- Text is NOT optional. This will be the text of the tweet to be posted.
The author will be the logged in user. The timestamp will be "Now", defaults to no likes. The post will have mentions and hashtags automatically extracted.
JSON StreamPostDetails {…}
Allows the user to edit the text or photo for this post. Nothing else is modifyable
- logged in.
- Accepts: key query parameter
JSON Object {"text": "string", "photo": "photo_id_string"}
Both text and photo are optional, however, at least one must be specified. If one is not specified it will not be changed.
A user may only edit their posts, unless they are an admin.
JSON StreamPostDetails {…}
Allows the user to delete a post
- logged in.
- Accepts: key query parameter
A user may only edit their posts, unless they are an admin.
No body. 200-OK
Get some metainformation about hashtags
Get auto completion list for hashtags. Query string must be greater than 3, and not include the '#' symbol
{
"values": [ "word_character_string"]
}
Perform a search against the database for results. Will search for Stream and Forum Posts, usernames, and seamail
- limit - The amount of objects per type returned
- page - The starting offset for objects being displayed (per type) returned
JSON Object {
"status": "ok",
"stream_posts": {
"matches": [ StreamPostMeta ,… ],
"count": Integer:Count of matches,
"more": boolean:True if more results than display is found
},
"forum_posts": {
"matches": [ ForumPostMeta ,… ],
"count": Integer:Count of matches,
"more": boolean:True if more results than display is found
},
"users": {
"matches": [ UserMeta, … ],
"count": Integer:Count of matches,
"more": boolean:True if more results than display is found
},
"seamails": {
"matches": [ SeamailMetaInfo, … ],
"count": Integer:Count of matches,
"more": boolean:True if more results than display is found
},
"query": {
"text": "used text query" (this may be modified from what is passed in, if required)
}
}
Log in user, returning a 'key' that can be used in each /api/v2 request that requires authentication. This can be used instead of having a session cookie.
Removes any session data for the request. This really has no effect if using the 'key' style.
Returns the logged in user's information
Get auto completion list for usernames. Username string must be greater than 3, and not include the '@' symbol
View the user information
Get the user's profile picture
- full=true - Optional(Default: false) - Returns a larger version of the profile image
[ binary data that makes up the photo ]
Modify the user's profile photo
Reset the user's profile to the default identicon image
Get/post new threads and posts to those threads
JSON ForumMeta {
"id": "id_string",
"last_post_display_name": "display_name_string",
"last_post_page": Integer,
"last_post_username": "author_string",
"posts": Integer,
"subject": "subject_string",
"timestamp": "ISO_8601_DATETIME"
}
JSON Forum {
"id": "id_string",
"latest_read": "ISO_8601_DATETIME", // Last time the user read the thread
"subject": "subject_string",
"next_page": null|Integer,
"prev_page": null|Integer,
"posts": Array[PostMeta {…}, …]
}
JSON PostMeta {
"id": "id_string",
"forum_id": "forum_id_string",
"author": "author_string",
"display_name": "display_name_string",
"likes": Array["username_string", …],
"new": boolean,
"text": "text_string",
"timestamp": "ISO_8601_DATETIME"
}
Returns the index of all threads. Can be paginated or mass list.
- page=integer - Optional - Used in conjunction with limit query, if not present will respond with all threads
- limit=integer - Optional - Used in conjunction with page query, will determine how many threads are shown per page
JSON Object {
"forums_meta": Array[ ForumMeta {…}, … ],
"next_page": Integer,
"prev_page": Integer
}
Creates a forum and it's first post.
- logged in.
- Accepts: key query parameters
JSON Object {
"subject": "string",
"text": "string",
"photos": Array ["string", …]
}
Returns a thread and it's contained posts.
- page=integer - Optional - Used in conjunction with limit query, if not present will respond with all posts in the thread
- limit=integer - Optional - Used in conjunction with page query, will determine how many posts are shown per page
JSON Object {
"forum": ForumMeta {…}
}
Creates a new post in the thread
- logged in.
- Accepts: key query parameters
JSON Object {
"text": "string",
"photos": Array ["string", …]
}
JSON Object { "forum_post": PostMeta {…} }
Likes a specific post_id
- logged in.
- Accepts: key query parameters
JSON Object { "likes": Array ["username_string", …] }
Unlikes a specific post_id
- logged in.
- Accepts: key query parameters
JSON Object { "likes": Array ["username_string", …] }
Get/post information on events.
JSON EventMeta {
"id": "id_string",
"author": "username_string",
"display_name": "displayname_string",
"title": "title_string",
"location": "location_string",
"start_time": "ISO_8601_DATETIME",
"end_time": "ISO_8601_DATETIME",
"signups": ["username_string", …],
"favorites": ["username_string", …],
"description": "marked up text",
"max_signups": null|Integer
}
- sort_by=variable name - Optional (Default: start_time) - First variable query is sorted by
- order=asc|desc - Optional (Default: desc) - Second variable query is searched by, ascending or descending
JSON Object { "total_count": 5,
"events": Array[ EventMeta {…}, … ],
}
Posts an event.
- logged in.
- Accepts: key query parameter
JSON Object {
"title": "string",
"start_time": "ISO_8601_DATETIME",
"location": "string",
"description": "string",
"end_time": "ISO_8601_DATETIME",
"max_signups": integer
}
- Description, end_time and max_signups are all optional fields.
JSON EventMeta {…}
Get details of an event.
JSON EventMeta {…}
Destroy an owned event.
- logged in.
- Accepts: key query parameter
A user may only delete their events, unless they are an admin.
No body. 200-OK
Allows the user to edit the description, location, start and end times and max signups. Title is not modifyable.
- logged in.
- Accepts: key query parameter
A user may only edit their events, unless they are an admin.
JSON Object {
"description": "string",
"location": "string",
"start_time": "ISO_8601_DATETIME",
"end_time": "ISO_8601_DATETIME",
"max_signups": integer
}
JSON EventMeta {…}
Allows the user to signup to an event.
- logged in.
- Accepts: key query parameter
JSON EventMeta {…}
Allows the user to remove their signup from an event.
- logged in.
- Accepts: key query parameter
JSON EventMeta {…}
Allows the user to favorite an event.
- logged in.
- Accepts: key query parameter
JSON EventMeta {…}
Allows the user to remove their favorite from an event.
- logged in.
- Accepts: key query parameter
JSON EventMeta {…}