Skip to content
Coritan Docs

Organization API: Customer Portal: Community

The 44 Organization API operations for community.

View as Markdown

Part of Customer Portal.

Method Path Summary
GET /api/v1/orgs/{org_slug}/portal/community/forum/me Forum viewer summary
POST /api/v1/orgs/{org_slug}/portal/community/forum/moderation/members/{handle}/role Set member role
POST /api/v1/orgs/{org_slug}/portal/community/forum/moderation/members/{handle}/suspend Suspend member
GET /api/v1/orgs/{org_slug}/portal/community/forum/moderation/reports Moderation reports
POST /api/v1/orgs/{org_slug}/portal/community/forum/moderation/reports/{report_id}/resolve Close a report, optionally acting on what it pointed at
POST /api/v1/orgs/{org_slug}/portal/community/forum/moderation/threads/{thread_id}/flags Pin, lock, move or mark a thread as a duplicate
PUT /api/v1/orgs/{org_slug}/portal/community/forum/posts/{post_id} Update post
DELETE /api/v1/orgs/{org_slug}/portal/community/forum/posts/{post_id} Delete post
POST /api/v1/orgs/{org_slug}/portal/community/forum/posts/{post_id}/react React to post
POST /api/v1/orgs/{org_slug}/portal/community/forum/posts/{post_id}/vote Vote post
POST /api/v1/orgs/{org_slug}/portal/community/forum/reports Report content
GET /api/v1/orgs/{org_slug}/portal/community/forum/subscriptions Threads the member follows, with how many posts they have not seen
POST /api/v1/orgs/{org_slug}/portal/community/forum/subscriptions/read Mark subscriptions read
POST /api/v1/orgs/{org_slug}/portal/community/forum/threads Create thread
PUT /api/v1/orgs/{org_slug}/portal/community/forum/threads/{thread_id} Update thread
DELETE /api/v1/orgs/{org_slug}/portal/community/forum/threads/{thread_id} Delete thread
POST /api/v1/orgs/{org_slug}/portal/community/forum/threads/{thread_id}/bump Bump thread
POST /api/v1/orgs/{org_slug}/portal/community/forum/threads/{thread_id}/posts Create post
POST /api/v1/orgs/{org_slug}/portal/community/forum/threads/{thread_id}/solution Accept a reply as the answer
DELETE /api/v1/orgs/{org_slug}/portal/community/forum/threads/{thread_id}/solution Clear solution
POST /api/v1/orgs/{org_slug}/portal/community/forum/threads/{thread_id}/subscription Toggle subscription
DELETE /api/v1/orgs/{org_slug}/portal/community/forum/threads/{thread_id}/subscription Stop following, idempotently
GET /api/v1/orgs/{org_slug}/portal/community/guides/articles My articles
POST /api/v1/orgs/{org_slug}/portal/community/guides/articles Create article
GET /api/v1/orgs/{org_slug}/portal/community/guides/articles/{article_id} Get my article
PUT /api/v1/orgs/{org_slug}/portal/community/guides/articles/{article_id} Propose or update
DELETE /api/v1/orgs/{org_slug}/portal/community/guides/articles/{article_id} The author removing their own guide, whatever state it is in
GET /api/v1/orgs/{org_slug}/portal/community/guides/articles/{article_id}/diff Article diff
POST /api/v1/orgs/{org_slug}/portal/community/guides/articles/{article_id}/proposal/withdraw Withdraw proposal
POST /api/v1/orgs/{org_slug}/portal/community/guides/articles/{article_id}/propose Propose or update
GET /api/v1/orgs/{org_slug}/portal/community/guides/moderation Moderation queue
POST /api/v1/orgs/{org_slug}/portal/community/guides/moderation/articles/{article_id}/approve Mod approve
POST /api/v1/orgs/{org_slug}/portal/community/guides/moderation/articles/{article_id}/reject Mod reject
POST /api/v1/orgs/{org_slug}/portal/community/guides/moderation/comments/{comment_id}/approve Mod approve comment
POST /api/v1/orgs/{org_slug}/portal/community/guides/moderation/comments/{comment_id}/reject Mod reject comment
POST /api/v1/orgs/{org_slug}/portal/community/guides/moderation/reports/{report_id}/resolve Close a report
GET /api/v1/orgs/{org_slug}/portal/community/guides/notifications List notifications
POST /api/v1/orgs/{org_slug}/portal/community/guides/notifications/{notification_id}/read Mark notification read
POST /api/v1/orgs/{org_slug}/portal/community/members/{handle}/wall Create wall post
GET /api/v1/orgs/{org_slug}/portal/community/profile Get own profile
PUT /api/v1/orgs/{org_slug}/portal/community/profile Update own profile
DELETE /api/v1/orgs/{org_slug}/portal/community/wall/comments/{comment_id} Delete wall comment
DELETE /api/v1/orgs/{org_slug}/portal/community/wall/{wall_post_id} Delete wall post
POST /api/v1/orgs/{org_slug}/portal/community/wall/{wall_post_id}/comments Create wall comment

GET /api/v1/orgs/{org_slug}/portal/community/forum/me

The signed-in member as the forum chrome sees them: handle, role, unread followed threads, and the open report count for staff.

Also the one request a member who only reads makes with their token, so ensure_profile stamping them present here is what keeps Active … ago honest for somebody who never posts; the storefront asks again when its copy is a few minutes old.

Name In Type Required
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/portal/community/forum/moderation/members/{handle}/role

Name In Type Required
org_slug path string yes
handle path string yes

application/json (required)

Field Type Required
role string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/portal/community/forum/moderation/members/{handle}/suspend

Name In Type Required
org_slug path string yes
handle path string yes

application/json (required)

Field Type Required
suspend boolean no
reason string or null no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

GET /api/v1/orgs/{org_slug}/portal/community/forum/moderation/reports

Name In Type Required Description
org_slug path string yes
status query string no Default: open.
page query integer no Default: 1.
page_size query integer no Default: 25.
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Close a report, optionally acting on what it pointed at

Section titled Close a report, optionally acting on what it pointed at

POST /api/v1/orgs/{org_slug}/portal/community/forum/moderation/reports/{report_id}/resolve

Close a report, optionally acting on what it pointed at.

The action and the closing are one request, so the queue cannot end up with a removed post and a report still open against it. Nor can it end up the other way round, which is worse: a dismissed report and content nobody looked at.

Name In Type Required
org_slug path string yes
report_id path integer yes

application/json (required)

Field Type Required
resolution string or null no
action string no
note string or null no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Pin, lock, move or mark a thread as a duplicate

Section titled Pin, lock, move or mark a thread as a duplicate

POST /api/v1/orgs/{org_slug}/portal/community/forum/moderation/threads/{thread_id}/flags

Pin, lock, move or mark a thread as a duplicate.

The duplicate marker is the one that matters for search: it takes the newer thread out of the index and leaves the older one holding the ranking, which is the opposite of what happens if you simply delete the repost.

Name In Type Required
org_slug path string yes
thread_id path integer yes

application/json (required)

Field Type Required
is_sticky boolean or null no
is_locked boolean or null no
category_slug string or null no
duplicate_of_thread_id integer or null no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

PUT /api/v1/orgs/{org_slug}/portal/community/forum/posts/{post_id}

Name In Type Required
org_slug path string yes
post_id path integer yes

application/json (required)

Field Type Required
body_markdown string yes
edit_reason string or null no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

DELETE /api/v1/orgs/{org_slug}/portal/community/forum/posts/{post_id}

Name In Type Required
org_slug path string yes
post_id path integer yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/portal/community/forum/posts/{post_id}/react

Name In Type Required
org_slug path string yes
post_id path integer yes

application/json (required)

Field Type Required
reaction_type string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/portal/community/forum/posts/{post_id}/vote

Name In Type Required
org_slug path string yes
post_id path integer yes

application/json (required)

Field Type Required
value integer yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/portal/community/forum/reports

Name In Type Required
org_slug path string yes
thread_id query integer or null no
post_id query integer or null no
handle query string or null no

application/json (required)

Field Type Required
category string no
reason string or null no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Threads the member follows, with how many posts they have not seen

Section titled Threads the member follows, with how many posts they have not seen

GET /api/v1/orgs/{org_slug}/portal/community/forum/subscriptions

Threads the member follows, with how many posts they have not seen.

Name In Type Required Description
org_slug path string yes
unread query boolean no Default: False.
page query integer no Default: 1.
page_size query integer no Default: 20.
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/portal/community/forum/subscriptions/read

Name In Type Required
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/portal/community/forum/threads

Name In Type Required
org_slug path string yes

application/json (required)

Field Type Required
category_slug string yes
title string yes
body_markdown string yes
kind string no
tags array of string or null no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

PUT /api/v1/orgs/{org_slug}/portal/community/forum/threads/{thread_id}

Name In Type Required
org_slug path string yes
thread_id path integer yes

application/json (required)

Field Type Required
title string or null no
body_markdown string or null no
tags array of string or null no
edit_reason string or null no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

DELETE /api/v1/orgs/{org_slug}/portal/community/forum/threads/{thread_id}

Name In Type Required
org_slug path string yes
thread_id path integer yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/portal/community/forum/threads/{thread_id}/bump

Name In Type Required
org_slug path string yes
thread_id path integer yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/portal/community/forum/threads/{thread_id}/posts

Name In Type Required
org_slug path string yes
thread_id path integer yes

application/json (required)

Field Type Required
body_markdown string yes
parent_post_id integer or null no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/portal/community/forum/threads/{thread_id}/solution

Accept a reply as the answer.

The reference forum has no such thing, which is why its question boards are thousands of pages that end without one. An accepted answer is the single strongest signal in the relevance score, and the only one that promotes a thread into the assistant-facing export.

Name In Type Required
org_slug path string yes
thread_id path integer yes
post_id query integer yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

DELETE /api/v1/orgs/{org_slug}/portal/community/forum/threads/{thread_id}/solution

Name In Type Required
org_slug path string yes
thread_id path integer yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/portal/community/forum/threads/{thread_id}/subscription

Name In Type Required
org_slug path string yes
thread_id path integer yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

DELETE /api/v1/orgs/{org_slug}/portal/community/forum/threads/{thread_id}/subscription

Stop following, idempotently. The toggle is wrong for a list of Unfollow buttons, where a double click would follow again.

Name In Type Required
org_slug path string yes
thread_id path integer yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

GET /api/v1/orgs/{org_slug}/portal/community/guides/articles

Name In Type Required
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/portal/community/guides/articles

Name In Type Required
org_slug path string yes

application/json (required)

Field Type Required
title string or null no
slug string or null no
summary string or null no
body_markdown string or null no
category string or null no
tags array of string or null no
difficulty string or null no
game_slug string or null no
cover_data_uri string or null no
seo_title string or null no
seo_description string or null no
change_note string or null no
submit boolean no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

GET /api/v1/orgs/{org_slug}/portal/community/guides/articles/{article_id}

Name In Type Required Description
article_id path integer yes
org_slug path string yes
view query string no Default: live.
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

PUT /api/v1/orgs/{org_slug}/portal/community/guides/articles/{article_id}

Name In Type Required
article_id path integer yes
org_slug path string yes

application/json (required)

Field Type Required
title string or null no
slug string or null no
summary string or null no
body_markdown string or null no
category string or null no
tags array of string or null no
difficulty string or null no
game_slug string or null no
cover_data_uri string or null no
seo_title string or null no
seo_description string or null no
change_note string or null no
submit boolean no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

The author removing their own guide, whatever state it is in

Section titled The author removing their own guide, whatever state it is in

DELETE /api/v1/orgs/{org_slug}/portal/community/guides/articles/{article_id}

The author removing their own guide, whatever state it is in.

A hard delete, on purpose: the author is withdrawing something they wrote, and a row kept around "archived" would still be theirs to find in the library and staff's to stumble over in the queue. Revisions, comments, votes, reports and notifications go with it. The rows are removed in dependency order rather than left to the cascades, because the two article→revision keys were added best-effort and may not exist on an older database.

Name In Type Required
article_id path integer yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

GET /api/v1/orgs/{org_slug}/portal/community/guides/articles/{article_id}/diff

Name In Type Required
article_id path integer yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/portal/community/guides/articles/{article_id}/proposal/withdraw

Name In Type Required
article_id path integer yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/portal/community/guides/articles/{article_id}/propose

Name In Type Required
article_id path integer yes
org_slug path string yes

application/json (required)

Field Type Required
title string or null no
slug string or null no
summary string or null no
body_markdown string or null no
category string or null no
tags array of string or null no
difficulty string or null no
game_slug string or null no
cover_data_uri string or null no
seo_title string or null no
seo_description string or null no
change_note string or null no
submit boolean no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

GET /api/v1/orgs/{org_slug}/portal/community/guides/moderation

Name In Type Required
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/portal/community/guides/moderation/articles/{article_id}/approve

Name In Type Required
article_id path integer yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/portal/community/guides/moderation/articles/{article_id}/reject

Name In Type Required
article_id path integer yes
org_slug path string yes

application/json (required)

Field Type Required
reason string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/portal/community/guides/moderation/comments/{comment_id}/approve

Name In Type Required
comment_id path integer yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/portal/community/guides/moderation/comments/{comment_id}/reject

Name In Type Required
comment_id path integer yes
org_slug path string yes

application/json (required)

Field Type Required
reason string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/portal/community/guides/moderation/reports/{report_id}/resolve

Close a report. Without this the queue only ever grew.

Name In Type Required
report_id path integer yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

GET /api/v1/orgs/{org_slug}/portal/community/guides/notifications

Name In Type Required
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/portal/community/guides/notifications/{notification_id}/read

Name In Type Required
notification_id path integer yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/portal/community/members/{handle}/wall

Name In Type Required
org_slug path string yes
handle path string yes

application/json (required)

Field Type Required
body_markdown string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

GET /api/v1/orgs/{org_slug}/portal/community/profile

Name In Type Required
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

PUT /api/v1/orgs/{org_slug}/portal/community/profile

Name In Type Required
org_slug path string yes

application/json (required)

Field Type Required
display_name string or null no
biography string or null no
location string or null no
website_url string or null no
signature string or null no
avatar_data_uri string or null no
banner_data_uri string or null no
wall_enabled boolean or null no
index_opt_out boolean or null no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

DELETE /api/v1/orgs/{org_slug}/portal/community/wall/comments/{comment_id}

Name In Type Required
org_slug path string yes
comment_id path integer yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

DELETE /api/v1/orgs/{org_slug}/portal/community/wall/{wall_post_id}

Name In Type Required
org_slug path string yes
wall_post_id path integer yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/portal/community/wall/{wall_post_id}/comments

Name In Type Required
org_slug path string yes
wall_post_id path integer yes

application/json (required)

Field Type Required
body_markdown string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.