REST API

The Forum features a REST API to fetch and update various objects. The url format is always prefixed with index.php?action=api.XXXXX where XXXXX is the name of the api. whenever there is a :value in the end-point, it means that it will accept a parameter in that position. The apis were designed to be used with Backbone.js but should be able to be used for other frameworks/applications.

Most of the apis have some level of access control, so certain actions will not be allowed depending on the current user’s role, or will return a subset of the full result.

People

person/:id

Arguments
:id
The id of the Person. Multiple ids can be specified if separated by commas
Actions
GET
Returns a Person, or an array of People if multiple ids are specified.
POST
Creates a new the Person
PUT
Updates the Person
DELETE
Deletes the Person

person/:id/projects

Arguments
:id
The id of the Person
Actions
GET
Returns an array of Person-Projects
POST
Adds the Person to a Project

person/:id/projects/:personProjectId

Arguments
:id
The id of the Person
:personProjectId
The id of the Person-Project relationship
Actions
GET
Returns the specified Person-Project
PUT
Updates the specified Person-Project
DELETE
Deletes the specified Person-Project

person/:id/universities

Arguments
:id
The id of the Person
Actions
GET
Returns all of the universities for the Person
POST
Adds the Person to a University

person/:id/universities/:personUniversityId

Arguments
:id
The id of the Person
:personUniversityId
The id of the Person-University relationship
Actions
GET
Returns the specified Person-University
PUT
Updates the specified Person-University
DELETE
Deletes the specified Person-University

person/:id/roles

Arguments
:id
The id of the Person
Actions
GET
Returns a simplified array of this Person’s Roles

person/:id/subroles

Arguments
:id
The id of the Person
Actions
GET
Returns a simplified array of this Person’s Sub-Roles

person/:id/relations

Arguments
:id
The id of the Person
Actions
GET
Returns all of the relationships for the Person
POST
Adds the Person to a Relationship

person/:id/relations/:relId

Arguments
:id
The id of the Person
:relId
The id of the Relationship
Actions
PUT
Updates the specified Relationship
DELETE
Deletes the specified Relationship

person/:id/products

Arguments
:id
The id of the Person
Actions
GET
Returns a list of non-private Products authored by this Person

person/:id/products/bibtex

Arguments
:id
The id of the Person
Actions
GET
Returns all bibtex references of non-private Products authored by this Person

person/:id/products/private

Arguments
:id
The id of the Person
Actions
GET
Returns a list of private Products authored by this Person

person/:id/products/all

Arguments
:id
The id of the Person
Actions
GET
Returns a list of all Products authored by this Person

person/:id/products/:productId

Arguments
:id
The id of the Person
:productId
The id of the Product
Actions
GET
Returns the Person-Product
POST
Adds the Person to the given Product
DELETE
Removes the Person from the given Product

person/:id/contributions

Arguments
:id
The id of the Person
Actions
GET
Returns a list of contributions that involve this Person

person/:id/allocations

Arguments
:id
The id of the Person
Actions
GET
Returns the amount of allocations per year, per project

personRoleString/:id

Arguments
:id
The id of the Person
Actions
GET
Returns a simplified string version of this Person’s current roles

people

Actions
GET
Returns a list of all People

people/managed

Actions
GET
Returns a list of all People that the current user manages (either implicitely or explicitely)

people/simple

Actions
GET
Returns a list of all People in a simplified format (just names)

people/:role

Arguments
:role
The type of Role to filter by. Multiple Roles can be specified if separated by commas. Using ‘all’ for the Role will include all roles.
Actions
GET
Returns a list of all People that belong to the specified Role(s)

people/:role/simple

Arguments
:role
The type of Role to filter by. Multiple Roles can be specified if separated by commas. Using ‘all’ for the Role will include all roles.
Actions
GET
Returns a list of all People in a simplified format (just names) that belong to the specified Role(s)

people/:role/:university

Arguments
:role
The type of Role to filter by. Multiple Roles can be specified if separated by commas. Using ‘all’ for the Role will include all roles.
:university
The name of the University to filter by
Actions
GET
Returns a list of all People that belong to the specified Role(s), and are from the specified University

people/:role/:university/simple

Arguments
:role
The type of Role to filter by. Multiple Roles can be specified if separated by commas. Using ‘all’ for the Role will include all roles.
:university
The name of the University to filter by
Actions
GET
Returns a list of all People in a simplified format (just names) that belong to the specified Role(s), and are from the specified University

people/:role/:university/:department

Arguments
:role
The type of Role to filter by. Multiple Roles can be specified if separated by commas. Using ‘all’ for the Role will include all roles.
:university
The name of the University to filter by
:department
The name of the department to filter by
Actions
GET
Returns a list of all People that belong to the specified Role(s), and are from the specified University and Department

people/:role/:university/:department/simple

Arguments
:role
The type of Role to filter by. Multiple Roles can be specified if separated by commas. Using ‘all’ for the Role will include all roles.
:university
The name of the University to filter by
:department
The name of the department to filter by
Actions
GET
Returns a list of all People in a simplified format (just names) that belong to the specified Role(s), and are from the specified University and Department

Roles

role

Actions
GET
Returns a list of roles that can be used by the Forum
POST
Adds a Person to a role

role/:id

Arguments
:id
The id of the Role
Actions
GET
Returns the specified Role
PUT
Updates the specified Role
DELETE
Deletes the specified Role

Projects

theme

Actions
GET
Returns a list of all Themes

theme/:id

Arguments
:id
The id of the Theme
Actions
GET
Returns the specified Theme

theme/:id/projects

Arguments
:id
The id of the Theme
Actions
GET
Returns a list of Projects in the specified Theme

project

Actions
GET
Returns a list of all Projects

project/:id

Arguments
:id
The id of the Project
Actions
GET
Returns the specified Project

project/:id/members

Arguments
:id
The id or name of the Project.
Actions
GET
Returns a list of the People in the specified Project

project/:id/members/:role

Arguments
:id
The id or name of the Project
:role
The type of Role to filter by. Multiple Roles can be specified if separated by commas.
Actions
GET
Returns a list of the People in the specified Project

project/:id/contributions

Arguments
:id
The id or name of the Project
Actions
GET
Returns a list Contributions associated with the specified Project

project/:id/allocations

Arguments
:id
The id or name of the Project
Actions
GET
Returns the amount of allocations per year

project/:id/products

Arguments
:id
The id of the Project
Actions
GET
Returns a simplified list of Products associated with the specified Project
POST
Associates a product with the specified Project

project/:id/products/bibtex

Arguments
:id
The id of the Project
Actions
GET
Returns all bibtex references of Products associated with the specified Project

project/:id/products/:productId

Arguments
:id
The id of the Project
::productId
The id of the Product
Actions
GET
Returns a simplified Product specified by the productId
DELETE
Removes the Project from the specified Product

Freeze

freeze

Actions
GET
Returns a list of Frozen features
POST
Adds a new Frozen Project/Feature pair

freeze/:id

Arguments
:id
The id of the Freeze feature
Actions
GET
Returns the specified Frozen feature
DELETE
Removes the specified Frozen Project/Feature pair

Products

product

Actions
GET

Returns a list of all Products in the Forum.

Be aware that this request might fail if there are a large number of Products in the Forum. Look to use one of the more restrictive API

POST
Creates a new Product

product/:projectId/:category/:grand

Arguments
:projectId
The id of a Project to filter by. Multiple ids can be specified if separated by a comma.
:category
The category of the Product to filter by
:grand

Can be ‘grand’, ‘nonGrand’, or ‘both’. ‘grand’.

grand
Include Products which are associated with at least 1 Project
nonGrand
Include Products which are not associated with any Projects
both
Include Products regardless of whether they are associated with any Projects
Actions
GET
Returns a list of filtered Products in the Forum.

product/:projectId/:category/:grand/:start/:count

Arguments
:projectId
The id of a Project to filter by. Multiple ids can be specified if separated by a comma.
:category
The category of the Product to filter by
:grand

Can be ‘grand’, ‘nonGrand’, or ‘both’. ‘grand’.

grand
Include Products which are associated with at least 1 Project
nonGrand
Include Products which are not associated with any Projects
both
Include Products regardless of whether they are associated with any Projects
:start
The result index to start with (useful for pagination/getting the result over multile requests)
:count
The number of results to include in the result
Actions
GET
Returns a list of filtered Products in the Forum.

product/:id

Arguments
:id
The id of the Product. Multiple ids can be specified if separated by a comma.
Actions
GET
Returns the specified Product(s)
PUT
Updates the specified Product
DELETE
Deletes the specified Product. If the Product was ‘private’ the deletion will be permanent.

product/:id/bibtex

Arguments
:id
The id of the Product
Actions
GET
Returns the bibtex reference of the Product

product/:id/citation

Arguments
:id
The id of the Product
Actions
GET
Returns the citation of the Product

product/:id/authors

Arguments
:id
The id of the Product
Actions
GET
Returns a simplified list of People who authored this Product
POST
Adds a Person as an author to the specified Product

product/:id/authors/:personId

Arguments
:id
The id of the Product
:personId
The id of the author
Actions
GET
Returns a simplified Person-Product
DELETE
Removes the Person from the author list of this Product

product/:id/projects

Arguments
:id
The id of the Product
Actions
GET
Returns a list of Projects associated with this Product
POST
Associates a Project with this Product

product/:id/projects/:projectId

Arguments
:id
The id of the Product
:projectId
The id of the Project
Actions
GET
Returns the specified Project-Product associated with this Product
DELETE
Remove the Project from this Product

product/tags

Actions
GET
Returns a list of all Product tags

productDuplicates/:category/:title/:id

Arguments
:category
The category of the Product
:title
The Title of the Product to check against
:id
The id of the Product to check duplicates against
Actions
GET
Returns a list of Products that might be duplicates of the specified Product

Bibliographies

bibliography

Actions
GET
Returns a list of all Bibliographies
POST
Creates a new Bibliography

bibliography/:id

Arguments
:id
The id of the Bibliography
Actions
GET
Returns the specified Bibliography
PUT
Updates the specified Bibliography
DELETE
Deletes the specified Bibliography

bibliography/person/:person_id

Arguments
:person_id
The id of the Person that the Bibliographies belong to
Actions
GET
Returns a list of Bibliographies that belong to the specified Person

Universities

university

Actions
GET
Returns a list of all Universities

university/:id

Arguments
:id
The id of the University
Actions
GET
Returns the specified University

departments

Actions
GET
Returns a list of departments (Strings)

Wiki Pages

wikipage/:id

Arguments
:id
The id of the WikiPage
Actions
GET
Returns the specified WikiPage

wikipage/:namespace/:title

Arguments
:namespace
The namespace of the WikiPage
:id
The title of the WikiPage
Actions
GET
Returns the specified WikiPage

Message Boards

board/:id

Arguments
:id
The id of the Board
Actions
GET
Returns the specified Board

boards

Actions
GET
Returns a list of all Boards

thread

Actions
POST
Creates a new Thread

thread/:id

Arguments
:id
The id of the Thread
Actions
GET
Returns the specified Thread
PUT
Updates the specified Thread
DELETE
Deletes the specified Thread

threads/:board

Arguments
:board
The id of the Board
Actions
GET
Returns a list of all Threads which belong to the specified Board

post

Actions
POST
Creates a new Post

post/:id

Arguments
:id
The id of the Post
Actions
GET
Returns the specified Post
PUT
Updates the specified Post
DELETE
Deletes the specified Post

PDFs

pdf/:id

Arguments
:id
The id (token) of the PDF
Actions
GET
Returns the specified PDF

Mailing Lists

mailingList

Actions
GET
Returns a list of all MailingLists

mailingList/:listId

Arguments
:listId
The id of the MailingList
Actions
GET
Returns the specified MailingList

mailingList/:listId/rules

Arguments
:listId
The id of the MailingList
Actions
GET
Returns a list of the MailingListRules for the specified MailingList
POST
Creates a new MailingListRule for the specified MailingList

mailingList/:listId/rules/:ruleId

Arguments
:listId
The id of the MailingList
:ruleId
The id of the MailingListRule
Actions
GET
Returns the specified MailingListRule
PUT
Updates the specified MailingListRule
DELETE
Deletes the specified MailingListRule

Table Of Contents

Previous topic

Cross Forum Export

This Page