curl --request POST \
--url https://api.muveya.com/v1/analytics/exports \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{}'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://api.muveya.com/v1/analytics/exports', 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"
payload = {}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, 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>"
}Request a briefing export
Requests an asynchronous redacted CSV export of the management briefing. Requires analytics:read. Returns 202 with the job in pending (or already ready when the export runs inline); poll GET /v1/analytics/exports/ for the signed download URL. The artifact carries counts/quantities/durations only — no cost, value or patient reference — and is auditable (tenant, actor, period, instant, checksum).
curl --request POST \
--url https://api.muveya.com/v1/analytics/exports \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{}'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://api.muveya.com/v1/analytics/exports', 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"
payload = {}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, 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.
Headers
The language of the CSV figure labels: en, es or pt (default en), fixed when the export is requested. Metric keys, dimensions, units, values and evidence ids never change with it.
Body
The briefing cadence to export; defaults to daily.
daily, weekly Response
The export job was accepted.
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.