Adopt cached query output for a report
curl --request POST \
--url https://app.chatobserver.com/api/v2/reports/{reportId}/data-sources/{sourceId}/adopt \
--header 'Authorization: Bearer <token>' \
--header 'Idempotency-Key: <idempotency-key>' \
--header 'x-workspace-id: <x-workspace-id>'const options = {
method: 'POST',
headers: {
'x-workspace-id': '<x-workspace-id>',
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>'
}
};
fetch('https://app.chatobserver.com/api/v2/reports/{reportId}/data-sources/{sourceId}/adopt', 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}/data-sources/{sourceId}/adopt"
headers = {
"x-workspace-id": "<x-workspace-id>",
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>"
}
response = requests.post(url, headers=headers)
print(response.text){
"data": {
"attachmentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"reportId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"stableKey": "<string>",
"displayName": "<string>",
"attachmentVersionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"generationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "<string>",
"catalogue": {
"version": 1,
"attachmentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"source": {
"kind": "metrics_query",
"connectorKey": "<string>",
"sourceAccountIds": [
123
],
"catalogueSnapshotIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]
},
"fields": [
{
"id": "<string>",
"sourceFieldId": "<string>",
"displayName": "<string>",
"description": "<string>",
"role": "dimension",
"dataType": "string",
"defaultAggregation": "none",
"allowedAggregations": [
"<unknown>"
],
"format": {
"kind": "number",
"locale": "<string>",
"currencyCode": "<string>",
"minimumFractionDigits": 10,
"maximumFractionDigits": 10,
"compact": true,
"dateStyle": "short",
"timeStyle": "short"
},
"semanticTags": [
"<string>"
],
"nullable": true,
"hidden": true,
"sensitive": true,
"filter": {
"allowed": true,
"operators": [
"<string>"
],
"valueResolverId": "<string>"
},
"orderable": true,
"lineage": {
"kind": "metrics",
"connectorKey": "<string>",
"sourceAccountId": 123,
"catalogueSnapshotId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"sourceFieldId": "<string>",
"providerFieldId": "<string>",
"origin": "<string>"
}
}
],
"generatedAt": "2023-11-07T05:31:56Z",
"schemaFingerprint": "<string>"
},
"generation": {
"status": "<string>",
"freshness": "<string>",
"rowCount": 1,
"warnings": [
"<string>"
]
}
},
"adoption": {
"state": "complete",
"issueCode": "<string>",
"generationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
},
"requestId": "<string>"
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
},
"requestId": "<string>"
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
},
"requestId": "<string>"
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
},
"requestId": "<string>"
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
},
"requestId": "<string>"
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
},
"requestId": "<string>"
}Reports
Adopt cached query output for a report
Materialize only the retained successful output of an exact pinned Metrics V2 query version. Requires reports:write, data:read and current report/query/connection/network permissions. UUID retries reconcile the original cached generation. Missing or expired output remains explicit. No provider execution or saved-document edits.
POST
/
api
/
v2
/
reports
/
{reportId}
/
data-sources
/
{sourceId}
/
adopt
Adopt cached query output for a report
curl --request POST \
--url https://app.chatobserver.com/api/v2/reports/{reportId}/data-sources/{sourceId}/adopt \
--header 'Authorization: Bearer <token>' \
--header 'Idempotency-Key: <idempotency-key>' \
--header 'x-workspace-id: <x-workspace-id>'const options = {
method: 'POST',
headers: {
'x-workspace-id': '<x-workspace-id>',
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>'
}
};
fetch('https://app.chatobserver.com/api/v2/reports/{reportId}/data-sources/{sourceId}/adopt', 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}/data-sources/{sourceId}/adopt"
headers = {
"x-workspace-id": "<x-workspace-id>",
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>"
}
response = requests.post(url, headers=headers)
print(response.text){
"data": {
"attachmentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"reportId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"stableKey": "<string>",
"displayName": "<string>",
"attachmentVersionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"generationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "<string>",
"catalogue": {
"version": 1,
"attachmentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"source": {
"kind": "metrics_query",
"connectorKey": "<string>",
"sourceAccountIds": [
123
],
"catalogueSnapshotIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]
},
"fields": [
{
"id": "<string>",
"sourceFieldId": "<string>",
"displayName": "<string>",
"description": "<string>",
"role": "dimension",
"dataType": "string",
"defaultAggregation": "none",
"allowedAggregations": [
"<unknown>"
],
"format": {
"kind": "number",
"locale": "<string>",
"currencyCode": "<string>",
"minimumFractionDigits": 10,
"maximumFractionDigits": 10,
"compact": true,
"dateStyle": "short",
"timeStyle": "short"
},
"semanticTags": [
"<string>"
],
"nullable": true,
"hidden": true,
"sensitive": true,
"filter": {
"allowed": true,
"operators": [
"<string>"
],
"valueResolverId": "<string>"
},
"orderable": true,
"lineage": {
"kind": "metrics",
"connectorKey": "<string>",
"sourceAccountId": 123,
"catalogueSnapshotId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"sourceFieldId": "<string>",
"providerFieldId": "<string>",
"origin": "<string>"
}
}
],
"generatedAt": "2023-11-07T05:31:56Z",
"schemaFingerprint": "<string>"
},
"generation": {
"status": "<string>",
"freshness": "<string>",
"rowCount": 1,
"warnings": [
"<string>"
]
}
},
"adoption": {
"state": "complete",
"issueCode": "<string>",
"generationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
},
"requestId": "<string>"
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
},
"requestId": "<string>"
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
},
"requestId": "<string>"
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
},
"requestId": "<string>"
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
},
"requestId": "<string>"
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
},
"requestId": "<string>"
}Required scopes:
reports:write, data: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.
Pattern:
^ws_[a-f0-9]{32}$