Static routes

GET /
GET /{discussion_slug}/partners

The main view on a discussion

GET /{discussion_slug}/notifications

The main view on a discussion

GET /{discussion_slug}/user/discussion_preferences

The main view on a discussion

GET /{discussion_slug}/posts*remainder

The main view on a discussion

GET /{discussion_slug}/widget*remainder

The main view on a discussion

GET /{discussion_slug}/idea*remainder

The main view on a discussion

GET /{discussion_slug}/user/account

The main view on a discussion

GET /{discussion_slug}/timeline

The main view on a discussion

GET /{discussion_slug}/settings

The main view on a discussion

GET /{discussion_slug}/discussion_preferences

The main view on a discussion

GET /{discussion_slug}/user/tos

The main view on a discussion

GET /{discussion_slug}/profile*remainder

The main view on a discussion

GET /{discussion_slug}/about

The main view on a discussion

GET /{discussion_slug}/G/*remainder

The main view on a discussion

GET /{discussion_slug}/user/profile

The main view on a discussion

GET /{discussion_slug}/user/notifications

The main view on a discussion

GET /{discussion_slug}/sentrytest

The main view on a discussion

GET /{discussion_slug}/edition

The main view on a discussion

GET /{discussion_slug}/styleguide
GET /{discussion_slug}/test
POST /{discussion_slug}/login
GET /{discussion_slug}/login
POST /login
GET /login
GET /{discussion_slug}/login_showallproviders
GET /login_showallproviders
GET /{discussion_slug}/logout
GET /logout
GET /user/{type}/{identifier}/avatar/{size:\d+}
GET /{discussion_slug}/users/email_confirm/{token}
GET /users/email_confirm/{token}
GET /{discussion_slug}/do_password_change/{token}

Validate the change_password token, and react accordingly.

GET /do_password_change/{token}

Validate the change_password token, and react accordingly.

GET /{discussion_slug}/welcome/{token}

Validate the change_password token, and react accordingly.

GET /welcome/{token}

Validate the change_password token, and react accordingly.

POST /disconnect/{backend}
POST /disconnect/{backend}/{association_id}
GET /api/v1/token
OPTIONS /api/v1/token
GET /api/v1/check_password_token/{token}
HEAD /api/v1/mime_type
ANY /api/v1/saml_metadata
GET /admin

The Base admin view, for frontend urls

GET /admin/test_simultaneous_ajax_calls/
GET /admin/global_preferences

The Base admin view, for frontend urls

ANY /{discussion_slug}/
GET /api/v1/discussion/{discussion_id:\d+}/agents/{id:.+}
HEAD /api/v1/discussion/{discussion_id:\d+}/agents/{id:.+}
ANY /api/v1/discussion/{discussion_id:\d+}/agents/{id:.+}
GET /api/v1/discussion/{discussion_id:\d+}/agents/
HEAD /api/v1/discussion/{discussion_id:\d+}/agents/
ANY /api/v1/discussion/{discussion_id:\d+}/agents/
GET /api/v1/discussion/{discussion_id:\d+}/roles/localfor/{user_id:.+}
HEAD /api/v1/discussion/{discussion_id:\d+}/roles/localfor/{user_id:.+}
PUT /api/v1/discussion/{discussion_id:\d+}/roles/localfor/{user_id:.+}
OPTIONS /api/v1/discussion/{discussion_id:\d+}/roles/localfor/{user_id:.+}
ANY /api/v1/discussion/{discussion_id:\d+}/roles/localfor/{user_id:.+}
GET /api/v1/discussion/{discussion_id:\d+}/roles/globalfor/{user_id:.+}
HEAD /api/v1/discussion/{discussion_id:\d+}/roles/globalfor/{user_id:.+}
PUT /api/v1/discussion/{discussion_id:\d+}/roles/globalfor/{user_id:.+}
OPTIONS /api/v1/discussion/{discussion_id:\d+}/roles/globalfor/{user_id:.+}
ANY /api/v1/discussion/{discussion_id:\d+}/roles/globalfor/{user_id:.+}
GET /api/v1/discussion/{discussion_id:\d+}/permissions
HEAD /api/v1/discussion/{discussion_id:\d+}/permissions
OPTIONS /api/v1/discussion/{discussion_id:\d+}/permissions
ANY /api/v1/discussion/{discussion_id:\d+}/permissions
GET /api/v1/discussion/{discussion_id:\d+}/permissions/r/{role_name}
HEAD /api/v1/discussion/{discussion_id:\d+}/permissions/r/{role_name}
PUT /api/v1/discussion/{discussion_id:\d+}/permissions/r/{role_name}
OPTIONS /api/v1/discussion/{discussion_id:\d+}/permissions/r/{role_name}
ANY /api/v1/discussion/{discussion_id:\d+}/permissions/r/{role_name}
GET /api/v1/discussion/{discussion_id:\d+}/permissions/u/{user_id:.+}
HEAD /api/v1/discussion/{discussion_id:\d+}/permissions/u/{user_id:.+}
OPTIONS /api/v1/discussion/{discussion_id:\d+}/permissions/u/{user_id:.+}
ANY /api/v1/discussion/{discussion_id:\d+}/permissions/u/{user_id:.+}
GET /api/v1/discussion/{discussion_id:\d+}/roles
HEAD /api/v1/discussion/{discussion_id:\d+}/roles
PUT /api/v1/discussion/{discussion_id:\d+}/roles
OPTIONS /api/v1/discussion/{discussion_id:\d+}/roles
ANY /api/v1/discussion/{discussion_id:\d+}/roles
GET /api/v1/discussion/{discussion_id:\d+}/permissions/{permission}/u/{user_id:.+}
HEAD /api/v1/discussion/{discussion_id:\d+}/permissions/{permission}/u/{user_id:.+}
ANY /api/v1/discussion/{discussion_id:\d+}/permissions/{permission}/u/{user_id:.+}
GET /api/v1/discussion/{discussion_id:\d+}/permissions/{permission}/u/
HEAD /api/v1/discussion/{discussion_id:\d+}/permissions/{permission}/u/
ANY /api/v1/discussion/{discussion_id:\d+}/permissions/{permission}/u/
GET /api/v1/discussion/{discussion_id:\d+}
HEAD /api/v1/discussion/{discussion_id:\d+}
PUT /api/v1/discussion/{discussion_id:\d+}
DELETE /api/v1/discussion/{discussion_id:\d+}
ANY /api/v1/discussion/{discussion_id:\d+}
GET /instances/{discussion_id:\d+}
HEAD /instances/{discussion_id:\d+}
DELETE /instances/{discussion_id:\d+}
ANY /instances/{discussion_id:\d+}
GET /instances
HEAD /instances
POST /instances
ANY /instances
GET /api/v1/discussion/{discussion_id:\d+}/extracts/{id:.+}
HEAD /api/v1/discussion/{discussion_id:\d+}/extracts/{id:.+}
PUT /api/v1/discussion/{discussion_id:\d+}/extracts/{id:.+}

Updating an Extract

DELETE /api/v1/discussion/{discussion_id:\d+}/extracts/{id:.+}
OPTIONS /api/v1/discussion/{discussion_id:\d+}/extracts/{id:.+}
ANY /api/v1/discussion/{discussion_id:\d+}/extracts/{id:.+}
GET /api/v1/discussion/{discussion_id:\d+}/extracts
HEAD /api/v1/discussion/{discussion_id:\d+}/extracts
POST /api/v1/discussion/{discussion_id:\d+}/extracts

Create a new extract.

OPTIONS /api/v1/discussion/{discussion_id:\d+}/extracts
ANY /api/v1/discussion/{discussion_id:\d+}/extracts
GET /api/v1/discussion/{discussion_id:\d+}/search_extracts
HEAD /api/v1/discussion/{discussion_id:\d+}/search_extracts
OPTIONS /api/v1/discussion/{discussion_id:\d+}/search_extracts
ANY /api/v1/discussion/{discussion_id:\d+}/search_extracts
GET /api/v1/discussion/{discussion_id:\d+}/generic/{cls}/{id}{view:(/[^/]+)?}
HEAD /api/v1/discussion/{discussion_id:\d+}/generic/{cls}/{id}{view:(/[^/]+)?}
ANY /api/v1/discussion/{discussion_id:\d+}/generic/{cls}/{id}{view:(/[^/]+)?}
GET /api/v1/discussion/{discussion_id:\d+}/ideas/{id:.+}
HEAD /api/v1/discussion/{discussion_id:\d+}/ideas/{id:.+}
PUT /api/v1/discussion/{discussion_id:\d+}/ideas/{id:.+}

Update this idea.

In case the parentId is changed, handle all IdeaLink changes and send relevant ideas on the socket.

DELETE /api/v1/discussion/{discussion_id:\d+}/ideas/{id:.+}
ANY /api/v1/discussion/{discussion_id:\d+}/ideas/{id:.+}
GET /api/v1/discussion/{discussion_id:\d+}/ideas_extracts/{id:.+}
HEAD /api/v1/discussion/{discussion_id:\d+}/ideas_extracts/{id:.+}
ANY /api/v1/discussion/{discussion_id:\d+}/ideas_extracts/{id:.+}
POST /api/v1/discussion/{discussion_id:\d+}/ideas
GET /api/v1/discussion/{discussion_id:\d+}/ideas
HEAD /api/v1/discussion/{discussion_id:\d+}/ideas
ANY /api/v1/discussion/{discussion_id:\d+}/ideas
GET /api/v1/discussion/{discussion_id:\d+}/posts/{id:.+}
HEAD /api/v1/discussion/{discussion_id:\d+}/posts/{id:.+}
ANY /api/v1/discussion/{discussion_id:\d+}/posts/{id:.+}
PUT /api/v1/discussion/{discussion_id:\d+}/post_read/{id:.+}

Mark this post as un/read. Return the read post count for all affected ideas.

ANY /api/v1/discussion/{discussion_id:\d+}/post_read/{id:.+}
GET /api/v1/discussion/{discussion_id:\d+}/posts

Query interface on posts Filters have two forms: only_*, is for filters that cannot be reversed (ex: only_synthesis, only_orphan) is_*, is for filters that can be reversed (ex:is_unread=true returns only unread message, is_unread=false returns only read messages) order: can be chronological, reverse_chronological, popularity root_post_id: all posts below the one specified. family_post_id: all posts below the one specified, and all its ancestors. post_reply_to: replies to a given post root_idea_id: all posts associated with the given idea ids: explicit message ids. posted_after_date, posted_before_date: date selection (ISO format) post_author: filter by author keyword: use full-text search locale: restrict to locale

HEAD /api/v1/discussion/{discussion_id:\d+}/posts

Query interface on posts Filters have two forms: only_*, is for filters that cannot be reversed (ex: only_synthesis, only_orphan) is_*, is for filters that can be reversed (ex:is_unread=true returns only unread message, is_unread=false returns only read messages) order: can be chronological, reverse_chronological, popularity root_post_id: all posts below the one specified. family_post_id: all posts below the one specified, and all its ancestors. post_reply_to: replies to a given post root_idea_id: all posts associated with the given idea ids: explicit message ids. posted_after_date, posted_before_date: date selection (ISO format) post_author: filter by author keyword: use full-text search locale: restrict to locale

POST /api/v1/discussion/{discussion_id:\d+}/posts

Create a new post in this discussion.

We use post, not put, because we don’t know the id of the post

ANY /api/v1/discussion/{discussion_id:\d+}/posts
GET /api/v1/discussion/{discussion_id:\d+}/sources/
HEAD /api/v1/discussion/{discussion_id:\d+}/sources/
ANY /api/v1/discussion/{discussion_id:\d+}/sources/
GET /api/v1/discussion/{discussion_id:\d+}/explicit_subgraphs/synthesis
HEAD /api/v1/discussion/{discussion_id:\d+}/explicit_subgraphs/synthesis
ANY /api/v1/discussion/{discussion_id:\d+}/explicit_subgraphs/synthesis
GET /api/v1/discussion/{discussion_id:\d+}/explicit_subgraphs/synthesis/{id:.+}
HEAD /api/v1/discussion/{discussion_id:\d+}/explicit_subgraphs/synthesis/{id:.+}
PUT /api/v1/discussion/{discussion_id:\d+}/explicit_subgraphs/synthesis/{id:.+}
ANY /api/v1/discussion/{discussion_id:\d+}/explicit_subgraphs/synthesis/{id:.+}
GET /{discussion_slug}

The main view on a discussion