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.
- 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
- Arguments
- :id
- The id of the Person
- Actions
- GET
- Returns an array of Person-Projects
- POST
- Adds the Person to a Project
- 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
- Arguments
- :id
- The id of the Person
- Actions
- GET
- Returns all of the universities for the Person
- POST
- Adds the Person to a University
- 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
- Arguments
- :id
- The id of the Person
- Actions
- GET
- Returns a simplified array of this Person’s Roles
- Arguments
- :id
- The id of the Person
- Actions
- GET
- Returns a simplified array of this Person’s Sub-Roles
- Arguments
- :id
- The id of the Person
- Actions
- GET
- Returns all of the relationships for the Person
- POST
- Adds the Person to a Relationship
- Arguments
- :id
- The id of the Person
- :relId
- The id of the Relationship
- Actions
- PUT
- Updates the specified Relationship
- DELETE
- Deletes the specified Relationship
- Arguments
- :id
- The id of the Person
- Actions
- GET
- Returns a list of non-private Products authored by this Person
- Arguments
- :id
- The id of the Person
- Actions
- GET
- Returns all bibtex references of non-private Products authored by this Person
- Arguments
- :id
- The id of the Person
- Actions
- GET
- Returns a list of private Products authored by this Person
- Arguments
- :id
- The id of the Person
- Actions
- GET
- Returns a list of all Products authored by this Person
- 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
- Arguments
- :id
- The id of the Person
- Actions
- GET
- Returns a list of contributions that involve this Person
- Arguments
- :id
- The id of the Person
- Actions
- GET
- Returns the amount of allocations per year, per project
- Arguments
- :id
- The id of the Person
- Actions
- GET
- Returns a simplified string version of this Person’s current roles
- Actions
- GET
- Returns a list of all People
- Actions
- GET
- Returns a list of all People that the current user manages (either implicitely or explicitely)
- Actions
- GET
- Returns a list of all People in a simplified format (just names)
- 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)
- 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)
- 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
- 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
- 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
- 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
- Actions
- GET
- Returns a list of roles that can be used by the Forum
- POST
- Adds a Person to a role
- Arguments
- :id
- The id of the Role
- Actions
- GET
- Returns the specified Role
- PUT
- Updates the specified Role
- DELETE
- Deletes the specified Role
- Actions
- GET
- Returns a list of all Themes
- Arguments
- :id
- The id of the Theme
- Actions
- GET
- Returns the specified Theme
- Arguments
- :id
- The id of the Theme
- Actions
- GET
- Returns a list of Projects in the specified Theme
- Actions
- GET
- Returns a list of all Projects
- Arguments
- :id
- The id of the Project
- Actions
- GET
- Returns the specified Project
- Arguments
- :id
- The id or name of the Project.
- Actions
- GET
- Returns a list of the People in the specified Project
- 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
- Arguments
- :id
- The id or name of the Project
- Actions
- GET
- Returns a list Contributions associated with the specified Project
- Arguments
- :id
- The id or name of the Project
- Actions
- GET
- Returns the amount of allocations per year
- 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
- Arguments
- :id
- The id of the Project
- Actions
- GET
- Returns all bibtex references of Products associated with the specified Project
- 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
- Actions
- GET
- Returns a list of Frozen features
- POST
- Adds a new Frozen Project/Feature pair
- Arguments
- :id
- The id of the Freeze feature
- Actions
- GET
- Returns the specified Frozen feature
- DELETE
- Removes the specified Frozen Project/Feature pair
- 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
- 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.
- 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.
- 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.
- Arguments
- :id
- The id of the Product
- Actions
- GET
- Returns the bibtex reference of the Product
- Arguments
- :id
- The id of the Product
- Actions
- GET
- Returns the citation of the Product
- 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
- 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
- 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
- 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
- Actions
- GET
- Returns a list of all Product tags
- 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
- Actions
- GET
- Returns a list of all Bibliographies
- POST
- Creates a new Bibliography
- Arguments
- :id
- The id of the Bibliography
- Actions
- GET
- Returns the specified Bibliography
- PUT
- Updates the specified Bibliography
- DELETE
- Deletes the specified Bibliography
- 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
- Actions
- GET
- Returns a list of all Universities
- Arguments
- :id
- The id of the University
- Actions
- GET
- Returns the specified University
- Actions
- GET
- Returns a list of departments (Strings)
- Arguments
- :id
- The id of the WikiPage
- Actions
- GET
- Returns the specified WikiPage
- Arguments
- :namespace
- The namespace of the WikiPage
- :id
- The title of the WikiPage
- Actions
- GET
- Returns the specified WikiPage
- Arguments
- :id
- The id of the Board
- Actions
- GET
- Returns the specified Board
- Actions
- GET
- Returns a list of all Boards
- Actions
- POST
- Creates a new Thread
- Arguments
- :id
- The id of the Thread
- Actions
- GET
- Returns the specified Thread
- PUT
- Updates the specified Thread
- DELETE
- Deletes the specified Thread
- Arguments
- :board
- The id of the Board
- Actions
- GET
- Returns a list of all Threads which belong to the specified Board
- Arguments
- :board
- The id of the Board
- :search
- A search string
- Actions
- GET
- Returns a list of all Threads which belong to the specified Board and match the specified search string based on a full text search
- Actions
- POST
- Creates a new Post
- Arguments
- :id
- The id of the Post
- Actions
- GET
- Returns the specified Post
- PUT
- Updates the specified Post
- DELETE
- Deletes the specified Post
- Actions
- GET
- Returns a list of all MailingLists
- Arguments
- :listId
- The id of the MailingList
- Actions
- GET
- Returns the specified MailingList
- 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
- 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