curl --request GET \
--url https://api.muveya.com/v1/analytics/exports/{exportId} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.muveya.com/v1/analytics/exports/{exportId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.muveya.com/v1/analytics/exports/{exportId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"exportId": "<string>",
"status": "pending",
"reportType": "briefing",
"period": "daily",
"byteSize": 123,
"checksum": "<string>",
"error": "<string>",
"downloadUrl": "<string>",
"downloadExpiresAt": "2023-11-07T05:31:56Z"
}{
"type": "<string>",
"title": "<string>",
"status": 499,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"requestId": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 499,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"requestId": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 499,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"requestId": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 499,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"requestId": "<string>"
}Poll a briefing export
Polls one export job by its opaque id. Requires analytics:read. A ready job carries a short-lived signed download URL (re-minted on each poll) and the artifact checksum; a failed job carries a non-sensitive reason. Scoped to the workspace the key is bound to; an unknown id is a 404 with no oracle.
curl --request GET \
--url https://api.muveya.com/v1/analytics/exports/{exportId} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.muveya.com/v1/analytics/exports/{exportId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.muveya.com/v1/analytics/exports/{exportId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"exportId": "<string>",
"status": "pending",
"reportType": "briefing",
"period": "daily",
"byteSize": 123,
"checksum": "<string>",
"error": "<string>",
"downloadUrl": "<string>",
"downloadExpiresAt": "2023-11-07T05:31:56Z"
}{
"type": "<string>",
"title": "<string>",
"status": 499,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"requestId": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 499,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"requestId": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 499,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"requestId": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 499,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"requestId": "<string>"
}Authorizations
Opaque mvy_test_ API key sent as a Bearer token. It derives exactly one workspace server-side; the path never carries a workspace selector.
Path Parameters
The opaque export job id returned by POST /v1/analytics/exports.
Response
The export job.
The opaque poll handle for the export job.
pending, building, ready, failed briefing daily, weekly Size of the built artifact in bytes; present once ready.
SHA-256 hex of the redacted artifact — the FR-AUD-02 checksum; present once ready.
A machine-readable, non-sensitive reason code; present only when the job failed.
A short-lived signed download URL; present only when ready, re-minted on each poll.
When the current download URL stops working.