Help
DevelopersReference

Sittings

One row per tour play, for a tour, in a day window.

Base URL https://api.showpilot.com/v1. Every call needs Authorization: Bearer <api key>; see Authentication.

A tour's sittings, newest first

GET /tours/{id}/sittings

Scope: sittings:read. Operation id: listTourSittings.

One row per play. The operator's own plays from the dashboard are excluded. from and to are inclusive UTC days on the sitting's start.

Parameters

NameInTypeMeaning
idpathstringThe tour's UUID or public id.
limitqueryintegerPage size, 1 to 200. Default 50.
cursorquerystringThe nextCursor from the previous page. Opaque; never build one.
fromquerystring (date)First day of the range (UTC), YYYY-MM-DD. Default is 29 days before to.
toquerystring (date)Last day of the range (UTC), YYYY-MM-DD, inclusive. Default is today. The range is at most 366 days.

Example request

curl "https://api.showpilot.com/v1/tours/t_9f3k2q/sittings?limit=50&from=2026-08-25&to=2026-09-23" \
  -H "Authorization: Bearer $SHOWPILOT_API_KEY"
Runs against your sandbox with a test key.

Response

One page of sittings.

FieldTypeAlwaysMeaning
itemsarray of Sittingyes
nextCursorNextCursoryes

Sitting

One play of a tour by one viewer.

FieldTypeAlwaysMeaning
idstringyesThe view session id.
tourIdstring (uuid)yes
visitorIdstring or nullyes
emailstring or nullyes
sourcestring or nullyesWhere it played: preview, lightbox, embed, share, chat or legacy.
startedAtstring (date-time)yes
endedAtstring (date-time)yes
secondsintegeryes
stepViewsintegeryesStep views including revisits.
stepsSeenarray of integeryesDistinct step indexes
maxStepintegeryesFurthest step index reached; -1 when none.
completedbooleanyes
ctaClicksintegeryes

NextCursor

Pass as cursor for the next page; null on the last page.

Errors

StatusWhen
400A parameter is malformed, such as a cursor this API did not issue, a limit under 1, or an unknown status. Code invalid-request.
401No key, or an unknown or revoked key. Code unauthorized.
403A valid key without the operation's scope (code insufficient-scope), or a plan without API access (code plan-api-off).
404No object with that id in this workspace. Code not-found.
429The key's bucket is empty. Code rate-limited; wait the Retry-After seconds.

On this page