Viewcast On Demand Measurement Detail
Read the asset definition plus the resolved SYSTEM measurement detail (attributes and audience block) for a single Displays On Demand asset through GET /v2/viewcast/on-demand/{asset_id}.
GET /v2/viewcast/on-demand/{asset_id} returns the full detail record for a single Displays On Demand asset: the asset definition you created through the asset lifecycle plus the resolved SYSTEM measurement detail (display attributes and the audience block) once a measurement has reached a terminal state.
The endpoint lives under the /v2/viewcast/* path because the handler runs on the Viewcast measurement worker, but it operates on Displays On Demand assets and belongs to this family. The endpoint-by-endpoint reference is auto-built from the OpenAPI spec at the Viewcast API reference.
When to use it
Use this endpoint when you already know the asset_id and want the complete picture in one call:
- the asset definition (state, classification, anchor, display attributes, publication, subscription window, timestamps), and
- the measurement detail: the resolved display attributes plus the audience block (OTS, LTS, circulation, spot metrics, share of voice, and related measures).
It complements two endpoints you already know:
- GET /v2/displays/assets/{asset_id} returns the asset definition only, with no measurement payload.
- GET /v2/displays/assets/{asset_id}/measurements/latest returns the measurement run status (
queued/running/failed/completedplusrefund_credits) for polling while a run is in flight.
Request
curl https://api2.mworks.com/v2/viewcast/on-demand/$ASSET_ID \
-H "X-API-Key: $MW_API_KEY"The call takes no query parameters and no request body: everything is addressed by the asset_id path param.
Cost: 1 credit per call (viewcast_on_demand_detail). No purchase charge applies; this is a read, not a measurement.
Authentication and entitlement: an org-scoped API key with the oohdisplays.displays.on_demand_detail feature enabled. Anonymous callers are denied.
Caching: responses carry Cache-Control: private, no-store. The detail reflects the current terminal result on every call; do not cache it client-side.
Response
A successful call returns 200 with the standard v2 envelope:
{
"data": {
"asset_id": "vcaJDVDYWSSMHAXVEFYW1DVD2PPFD",
"org_id": "org_...",
"state": "final_measured",
"classification": "Roadside",
"anchor": { "lat": 33.749, "lon": -84.388 },
"related_parties": [],
"display_id": "dsp_...",
"display": {},
"publication": "private",
"subscription_started_at": null,
"subscription_expires_at": null,
"row_version": 3,
"created_at": "2026-09-01T14:22:00Z",
"updated_at": "2026-09-02T09:15:00Z",
"measurement": {
"attributes": {},
"audience": {
"traffic": 41000,
"face_circ": 38500,
"face_ots": 512000,
"face_lts": 468000,
"spot_circ": 40200,
"spot_ots": 540000,
"spot_lts": 495000,
"spot_length": 480,
"share_of_voice": 0.5,
"face_share_of_voice": 0.25
}
}
},
"meta": {
"request_id": "req_...",
"credits_used": 1,
"product": "viewcast",
"provenance": {}
}
}The data block is the asset definition. The nested measurement block carries:
attributes: the resolved display descriptor (the allowlisted projection of the measurement's resolved attributes).audience: the audience measures. All fields are optional: a terminal result may carry a subset, and informational outcomes (no_coverage,insufficient_data) can legitimately omit measures.
The audience block uses the same OTS/LTS/circulation derivation as every Displays measurement. See Viewcast Methodology for what the measures mean and Methodology delta for how On Demand differs from the Profiles surface.
Failure modes
| Status | Meaning |
|---|---|
| 401 | Authentication missing, invalid, or not org-scoped. |
| 404 | Unknown asset_id, not owned by your org, or no terminal measurement result yet. These cases are intentionally indistinguishable (never 403). |
A 404 while a measurement is still queued or running is expected: the detail endpoint only serves terminal results. Poll measurements/latest until the run completes, then call this endpoint.
What to read next
- Displays On Demand - the family overview and lifecycle at a glance.
- Asset lifecycle - create, list, refine, archive recipes.
- Measurements - queue, poll, and the 202 contract.
- Purchase flow and credits - the credit model, idempotency, and refunds.
- Viewcast API reference - auto-built endpoint documentation.
Updated about 10 hours ago
