curl --request POST \
--url https://app.chatobserver.com/api/v2/reports/{reportId}/assessments \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--header 'x-workspace-id: <x-workspace-id>' \
--data '
{
"target": {
"kind": "saved_revision",
"reportId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"revision": 1,
"expectedDocumentHash": "<string>"
},
"profile": {
"version": 1
},
"pageSelection": {
"kind": "all"
},
"contexts": [
{
"id": "<unknown>",
"canvasWidth": 123,
"viewport": {
"width": 123,
"height": 123
},
"scale": 9,
"locale": "<string>",
"timezone": "<string>",
"scenarioId": "saved-defaults"
}
],
"requiredChecks": "profile_defaults",
"emptyStateDeclarations": [
{
"pageId": "<unknown>",
"elementId": "<unknown>",
"contextId": "<unknown>",
"reason": "<string>"
}
]
}
'const options = {
method: 'POST',
headers: {
'x-workspace-id': '<x-workspace-id>',
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
target: {
kind: 'saved_revision',
reportId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
revision: 1,
expectedDocumentHash: '<string>'
},
profile: {version: 1},
pageSelection: {kind: 'all'},
contexts: [
{
id: '<unknown>',
canvasWidth: 123,
viewport: {width: 123, height: 123},
scale: 9,
locale: '<string>',
timezone: '<string>',
scenarioId: 'saved-defaults'
}
],
requiredChecks: 'profile_defaults',
emptyStateDeclarations: [
{
pageId: '<unknown>',
elementId: '<unknown>',
contextId: '<unknown>',
reason: '<string>'
}
]
})
};
fetch('https://app.chatobserver.com/api/v2/reports/{reportId}/assessments', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.chatobserver.com/api/v2/reports/{reportId}/assessments"
payload = {
"target": {
"kind": "saved_revision",
"reportId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"revision": 1,
"expectedDocumentHash": "<string>"
},
"profile": { "version": 1 },
"pageSelection": { "kind": "all" },
"contexts": [
{
"id": "<unknown>",
"canvasWidth": 123,
"viewport": {
"width": 123,
"height": 123
},
"scale": 9,
"locale": "<string>",
"timezone": "<string>",
"scenarioId": "saved-defaults"
}
],
"requiredChecks": "profile_defaults",
"emptyStateDeclarations": [
{
"pageId": "<unknown>",
"elementId": "<unknown>",
"contextId": "<unknown>",
"reason": "<string>"
}
]
}
headers = {
"x-workspace-id": "<x-workspace-id>",
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"reportId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"target": {
"kind": "saved_revision",
"reportId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"revision": 1,
"expectedDocumentHash": "<string>"
},
"status": "queued",
"createdAt": "2023-11-07T05:31:56Z",
"expiresAt": "2023-11-07T05:31:56Z",
"failureCode": "work_budget_exceeded",
"progress": {
"requestedPageContexts": 1,
"completedPageContexts": "<unknown>"
},
"assessment": {
"version": 1,
"assessmentId": "<unknown>",
"documentHash": "<unknown>",
"profile": {
"id": "<unknown>",
"version": 1
},
"coverage": {
"requiredPageContexts": 1,
"completedPageContexts": 1,
"unverifiedPageContexts": 1,
"complete": true
},
"structure": {
"status": "valid"
},
"render": {
"status": "valid"
},
"design": {
"status": "assessed",
"advisoryCount": 1,
"coverageGaps": [
"<unknown>"
]
},
"data": {
"status": "ready",
"issueCodes": [
"<unknown>"
]
},
"publication": {
"status": "not_published"
},
"safeToCommit": true,
"findingCount": "<unknown>"
}
}
}{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"reportId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"target": {
"kind": "saved_revision",
"reportId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"revision": 1,
"expectedDocumentHash": "<string>"
},
"status": "queued",
"createdAt": "2023-11-07T05:31:56Z",
"expiresAt": "2023-11-07T05:31:56Z",
"failureCode": "work_budget_exceeded",
"progress": {
"requestedPageContexts": 1,
"completedPageContexts": "<unknown>"
},
"assessment": {
"version": 1,
"assessmentId": "<unknown>",
"documentHash": "<unknown>",
"profile": {
"id": "<unknown>",
"version": 1
},
"coverage": {
"requiredPageContexts": 1,
"completedPageContexts": 1,
"unverifiedPageContexts": 1,
"complete": true
},
"structure": {
"status": "valid"
},
"render": {
"status": "valid"
},
"design": {
"status": "assessed",
"advisoryCount": 1,
"coverageGaps": [
"<unknown>"
]
},
"data": {
"status": "ready",
"issueCodes": [
"<unknown>"
]
},
"publication": {
"status": "not_published"
},
"safeToCommit": true,
"findingCount": "<unknown>"
}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
},
"requestId": "<string>"
}Assess an exact saved report revision
Requires user-authorized Chatobserver MCP consent, reports:read, current native membership and report access, and workspace feature availability. Workspace service keys are unsupported. Cached report outputs additionally require independent Data access and data:read consent. Report discovery and assessment do not run queries, refresh Data, edit reports or publish shares. Unknown or unsupported evidence is not a pass.
curl --request POST \
--url https://app.chatobserver.com/api/v2/reports/{reportId}/assessments \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--header 'x-workspace-id: <x-workspace-id>' \
--data '
{
"target": {
"kind": "saved_revision",
"reportId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"revision": 1,
"expectedDocumentHash": "<string>"
},
"profile": {
"version": 1
},
"pageSelection": {
"kind": "all"
},
"contexts": [
{
"id": "<unknown>",
"canvasWidth": 123,
"viewport": {
"width": 123,
"height": 123
},
"scale": 9,
"locale": "<string>",
"timezone": "<string>",
"scenarioId": "saved-defaults"
}
],
"requiredChecks": "profile_defaults",
"emptyStateDeclarations": [
{
"pageId": "<unknown>",
"elementId": "<unknown>",
"contextId": "<unknown>",
"reason": "<string>"
}
]
}
'const options = {
method: 'POST',
headers: {
'x-workspace-id': '<x-workspace-id>',
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
target: {
kind: 'saved_revision',
reportId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
revision: 1,
expectedDocumentHash: '<string>'
},
profile: {version: 1},
pageSelection: {kind: 'all'},
contexts: [
{
id: '<unknown>',
canvasWidth: 123,
viewport: {width: 123, height: 123},
scale: 9,
locale: '<string>',
timezone: '<string>',
scenarioId: 'saved-defaults'
}
],
requiredChecks: 'profile_defaults',
emptyStateDeclarations: [
{
pageId: '<unknown>',
elementId: '<unknown>',
contextId: '<unknown>',
reason: '<string>'
}
]
})
};
fetch('https://app.chatobserver.com/api/v2/reports/{reportId}/assessments', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.chatobserver.com/api/v2/reports/{reportId}/assessments"
payload = {
"target": {
"kind": "saved_revision",
"reportId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"revision": 1,
"expectedDocumentHash": "<string>"
},
"profile": { "version": 1 },
"pageSelection": { "kind": "all" },
"contexts": [
{
"id": "<unknown>",
"canvasWidth": 123,
"viewport": {
"width": 123,
"height": 123
},
"scale": 9,
"locale": "<string>",
"timezone": "<string>",
"scenarioId": "saved-defaults"
}
],
"requiredChecks": "profile_defaults",
"emptyStateDeclarations": [
{
"pageId": "<unknown>",
"elementId": "<unknown>",
"contextId": "<unknown>",
"reason": "<string>"
}
]
}
headers = {
"x-workspace-id": "<x-workspace-id>",
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"reportId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"target": {
"kind": "saved_revision",
"reportId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"revision": 1,
"expectedDocumentHash": "<string>"
},
"status": "queued",
"createdAt": "2023-11-07T05:31:56Z",
"expiresAt": "2023-11-07T05:31:56Z",
"failureCode": "work_budget_exceeded",
"progress": {
"requestedPageContexts": 1,
"completedPageContexts": "<unknown>"
},
"assessment": {
"version": 1,
"assessmentId": "<unknown>",
"documentHash": "<unknown>",
"profile": {
"id": "<unknown>",
"version": 1
},
"coverage": {
"requiredPageContexts": 1,
"completedPageContexts": 1,
"unverifiedPageContexts": 1,
"complete": true
},
"structure": {
"status": "valid"
},
"render": {
"status": "valid"
},
"design": {
"status": "assessed",
"advisoryCount": 1,
"coverageGaps": [
"<unknown>"
]
},
"data": {
"status": "ready",
"issueCodes": [
"<unknown>"
]
},
"publication": {
"status": "not_published"
},
"safeToCommit": true,
"findingCount": "<unknown>"
}
}
}{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"reportId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"target": {
"kind": "saved_revision",
"reportId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"revision": 1,
"expectedDocumentHash": "<string>"
},
"status": "queued",
"createdAt": "2023-11-07T05:31:56Z",
"expiresAt": "2023-11-07T05:31:56Z",
"failureCode": "work_budget_exceeded",
"progress": {
"requestedPageContexts": 1,
"completedPageContexts": "<unknown>"
},
"assessment": {
"version": 1,
"assessmentId": "<unknown>",
"documentHash": "<unknown>",
"profile": {
"id": "<unknown>",
"version": 1
},
"coverage": {
"requiredPageContexts": 1,
"completedPageContexts": 1,
"unverifiedPageContexts": 1,
"complete": true
},
"structure": {
"status": "valid"
},
"render": {
"status": "valid"
},
"design": {
"status": "assessed",
"advisoryCount": 1,
"coverageGaps": [
"<unknown>"
]
},
"data": {
"status": "ready",
"issueCodes": [
"<unknown>"
]
},
"publication": {
"status": "not_published"
},
"safeToCommit": true,
"findingCount": "<unknown>"
}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
},
"requestId": "<string>"
}reports:read.Authorizations
Delegated application credential issued after Chatobserver account consent. Restricted to selected workspaces and explicitly supported MCP operations. The MCP server access token is a separate credential and cannot be used here.
Headers
Explicit workspace selected for the delegated account.
^ws_[a-f0-9]{32}$Path Parameters
Body
Show child attributes
Show child attributes
Show child attributes
Show child attributes
- Option 1
- Option 2
Show child attributes
Show child attributes
1 - 256 elementsShow child attributes
Show child attributes
require_existing_output, allow_declared_empty_states "profile_defaults"1000Show child attributes
Show child attributes
Response
Identical idempotent replay.
- Option 1
- Option 2
Show child attributes
Show child attributes