Listo Public API
This is the Listo Public Screening API. It lets your management system receive screening session results from locations that use the Listo iPad app — in real time, and as a backfill API for any sessions you missed while offline.
Two delivery modes, one screening shape:
- Push (real time): Listo publishes a CloudEvent to a dedicated Azure Service Bus queue provisioned for your organization. You receive each session within seconds of submission.
- Pull (Sessions API): A small REST API,
GET /v1/tenants/{tenantId}/screenings, returns the same screenings in time-range pages, scoped to one tenant per call. Use it to catch up after planned downtime, to re-process sessions, or to seed historical state.
I want to…
Receive events from Service Bus
Connect a long-running consumer to the queue we provision for your organization. Every completed screening arrives as a CloudEvent with the full session payload in the body.
Backfill missed events with the Sessions API
Call GET /v1/tenants/{tenantId}/screenings?from=…&to=… with an OAuth
bearer token to page through historical screenings for one tenant at a
time. The screening data is the same on both transports; Service Bus
wraps it in a CloudEvent envelope, while the Sessions API returns it
directly. Add a small wrapper if you want unified handling.
Conventions
- All timestamps are RFC 3339 date-times.
testTimeandemailSentDateTimepreserve the offset they were recorded with (matching the underlyingdatetimeoffsetstorage), e.g.2026-05-08T11:25:33+02:00.birthdayis emitted at midnight UTC. - All IDs are either UUIDs (e.g.
tenantId) or integers (the sessionid). - All payloads are
application/jsonand use camelCase field names. - All breaking changes ship under a new URL version (
/v1→/v2) and a new CloudEventstypesuffix (...completed.v1→...completed.v2). New optional fields may appear within a major version without a bump — see Versioning & compatibility.
Ready? Start with the overview →