Report roadmap content
curl --request POST \
--url https://api.plazza.ca/v1/roadmapBoards/{board}/reports \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"item": "roadmapBoards/hire/items/019a7c2e-4b1d-7c3a-9d4e-5f6a7b8c9d0e",
"reason": "SPAM",
"comment": null,
"details": "Advertises an unrelated product."
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
item: 'roadmapBoards/hire/items/019a7c2e-4b1d-7c3a-9d4e-5f6a7b8c9d0e',
reason: 'SPAM',
comment: null,
details: 'Advertises an unrelated product.'
})
};
fetch('https://api.plazza.ca/v1/roadmapBoards/{board}/reports', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.plazza.ca/v1/roadmapBoards/{board}/reports"
payload = {
"item": "roadmapBoards/hire/items/019a7c2e-4b1d-7c3a-9d4e-5f6a7b8c9d0e",
"reason": "SPAM",
"comment": None,
"details": "Advertises an unrelated product."
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"name": "roadmapBoards/hire/reports/019a7c33-5d6e-7f80-9a1b-2c3d4e5f6a7b",
"item": "roadmapBoards/hire/items/019a7c2e-4b1d-7c3a-9d4e-5f6a7b8c9d0e",
"comment": "roadmapBoards/hire/items/019a7c2e-4b1d-7c3a-9d4e-5f6a7b8c9d0e/comments/019a7c31-0e2f-7a1b-8c3d-4e5f6a7b8c9d",
"reason": "SPAM",
"details": "Advertises an unrelated product.",
"state": "OPEN",
"createTime": "2026-11-07T10:02:13.004Z",
"resolveTime": null
}{
"error": {
"code": 401,
"message": "Unauthorized",
"status": "UNAUTHENTICATED",
"details": [
{
"@type": "type.googleapis.com/google.rpc.ErrorInfo",
"reason": "MISSING_CREDENTIALS",
"domain": "api.plazza.ca"
},
{
"@type": "type.googleapis.com/google.rpc.LocalizedMessage",
"locale": "en",
"message": "Sign in to continue."
}
]
}
}Roadmap
Report roadmap content
Flags an item or a comment for staff to review. Reports are private.
POST
/
v1
/
roadmapBoards
/
{board}
/
reports
Report roadmap content
curl --request POST \
--url https://api.plazza.ca/v1/roadmapBoards/{board}/reports \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"item": "roadmapBoards/hire/items/019a7c2e-4b1d-7c3a-9d4e-5f6a7b8c9d0e",
"reason": "SPAM",
"comment": null,
"details": "Advertises an unrelated product."
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
item: 'roadmapBoards/hire/items/019a7c2e-4b1d-7c3a-9d4e-5f6a7b8c9d0e',
reason: 'SPAM',
comment: null,
details: 'Advertises an unrelated product.'
})
};
fetch('https://api.plazza.ca/v1/roadmapBoards/{board}/reports', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.plazza.ca/v1/roadmapBoards/{board}/reports"
payload = {
"item": "roadmapBoards/hire/items/019a7c2e-4b1d-7c3a-9d4e-5f6a7b8c9d0e",
"reason": "SPAM",
"comment": None,
"details": "Advertises an unrelated product."
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"name": "roadmapBoards/hire/reports/019a7c33-5d6e-7f80-9a1b-2c3d4e5f6a7b",
"item": "roadmapBoards/hire/items/019a7c2e-4b1d-7c3a-9d4e-5f6a7b8c9d0e",
"comment": "roadmapBoards/hire/items/019a7c2e-4b1d-7c3a-9d4e-5f6a7b8c9d0e/comments/019a7c31-0e2f-7a1b-8c3d-4e5f6a7b8c9d",
"reason": "SPAM",
"details": "Advertises an unrelated product.",
"state": "OPEN",
"createTime": "2026-11-07T10:02:13.004Z",
"resolveTime": null
}{
"error": {
"code": 401,
"message": "Unauthorized",
"status": "UNAUTHENTICATED",
"details": [
{
"@type": "type.googleapis.com/google.rpc.ErrorInfo",
"reason": "MISSING_CREDENTIALS",
"domain": "api.plazza.ca"
},
{
"@type": "type.googleapis.com/google.rpc.LocalizedMessage",
"locale": "en",
"message": "Sign in to continue."
}
]
}
}Authorizations
Path Parameters
Query Parameters
Makes a retry safe: a request with the same id and content returns the resource the first one created.
Pattern:
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$Example:
"0f5e8c1e-7a8b-4c2d-9e1f-2a3b4c5d6e7f"
Body
application/json
A private report for staff to review.
Response
A private report of an item or comment, for staff to review. It never names the reporter.
A private report of an item or comment, for staff to review. It never names the reporter.