Construct a request. Watch the response take shape.
A faithful, client-side simulation of the Waste Data Platform API gateway at wgpfapimprod.azure-api.net. Pick an endpoint, set a date range, toggle pagination, and apply filters — the request preview and JSON response update live so you can see exactly what the contract returns before you write a line of integration code.
Everything below runs in your browser against synthetic demo data. No requests leave this page, and no real customer data is ever shown — this is a schema playground, not a live console.
Build a request, read the response
Adjust any control and the request URL, the curl snippet, and the JSON body all re-render instantly. Toggle page_size to switch between the backward-compatible bare array and the paginated envelope, then walk the cursor with Next page.
Request builder
The Ocp-Apim-Subscription-Key value is a placeholder. Swap in the key Wasteology issued to your account.
How auth works
Every call carries a single header. There is no OAuth dance and no account identifier in the query string.
The header
Send Ocp-Apim-Subscription-Key on every request. This is the APIM subscription key Wasteology issued for your account.
Scoped by key
The key resolves to exactly one account. The API filters every response to that organization automatically — you never pass an account id for scoping.
Gateway
Production lives at wgpfapimprod.azure-api.net, fronted by Azure API Management. Dates are ISO-8601 and windows cap at 366 days.
Detail vs Summary
Same date range, same filters — two very different response bodies. Choose based on whether you need every service event or a compact monthly rollup.
One row per service event, up to the full 28-field record: accounts, locations, invoice/service dates, material, container, amounts, weights, and emissions. Optionally paginated. Use it for line-item reconciliation, custom reports, and BI ingestion.
Pre-aggregated rollups grouped by month × material × disposal_type × service_type, with record_count, totals for amount and weight (lbs + tons), and total CO₂e. Ideal for dashboards and emissions tracking without pulling every row.
Pagination
Pagination is opt-in and backward-compatible. Omit page_size and you get exactly what existing integrations always got: a bare array. Add it and the body becomes an envelope with a keyset cursor.
No page_size — legacy
The response is a bare JSON array of detail records. Nothing about the shape changed, so integrations written before pagination existed keep working untouched.
With page_size — envelope
You get { data, paging }. Read paging.next_cursor and send it back as cursor to fetch the next page. Keep following the cursor until has_more is false — at which point next_cursor is dropped entirely. Pages never overlap.
Loop rule: follow next_cursor until has_more = false. Do not compute offsets yourself — the cursor is an opaque keyset token. Try it: set a small page_size in the explorer above and click Next page repeatedly.
Filtering
All filters are optional query parameters and stack together (logical AND). They apply to both endpoints — on the summary they simply narrow which groups are rolled up.
material
Trash, Single Stream, Organics, Cardboard, C&D.
disposal_type
Landfill or Recycle.
service_type
Recurring or On Call.
location_id
Restrict to a single site.
account_id
Restrict to a sub-account within your scope.
begin_date / end_date
Always required. ISO-8601, ≤ 366-day window.