Skip to main content

Reporting exports

The reporting endpoints pull CSV reports on the interactive videos, instructors, and video sources in an Instance or Super Instance. They exist for the analyses that aren't practical through the app UI: auditing which videos stream from which host, reconciling instructor activity against your SIS, or tying interactive videos back to LMS course IDs.

Three reports are available, each in an Instance and a Super Instance flavour:

ReportOne row perTypical use
bulbsInteractive video created in the date rangeInventory of content, its owners, privacy, view counts, and duration.
instructorsInstructor who logged in during the date rangeActivity and adoption reporting; seat reconciliation.
video-sourcesVideo attached to an interactive videoAuditing video hosts (Kaltura, YouTube, HLS, Panopto…), source URLs, and course IDs.

Permissions

Reports are admin-only, and the scope in the path decides which admin right is required:

  • Instance reports (/instance/{instanceId}/…) require the calling user to be an owner or admin of that Instance.
  • Super Instance reports (/superinstance/{superInstanceId}/…) require manage permission on that Super Instance.

The IDs are explicit in the path rather than derived from your credentials, because one set of credentials can administer several Instances. A request for an Instance you don't administer returns 403.

These are heavy database pulls, and a report covering a large district can take minutes. So the default is asynchronous:

  • runAsync=true (the default). The report is generated in the background and emailed to the calling user as a download link, valid for 24 hours. The request returns immediately with a plain-text confirmation.
  • runAsync=false. The CSV comes back in the response body as text/csv. Use this when you're pulling a narrow date range and want to pipe the result straight into your own tooling. Be prepared for a slow response on large scopes — if generation runs long, the report is emailed as well.
Pull video sources inline
curl 'https://www.wevideo.com/api/5/public/reports/instance/1234/video-sources?videoHost=kaltura&videoHost=youtube&runAsync=false' \
-H 'Authorization: WEVSIMPLE your-api-secret-here'
Response
Bulb ID,Bulb Name,Owner Email,Video ID,Video Name,Video Host,Video URL,LMS Course ID(s),Created
88213,Cell Division,instructor@example.edu,55901,Mitosis lecture,kaltura,https://cdnapisec.kaltura.com/...,canvas:4471,2026-02-11 09:14:02
88240,Photosynthesis Lab,instructor@example.edu,55938,Lab walkthrough,youtube,https://www.youtube.com/watch?v=...,canvas:4471; canvas:4488,2026-02-14 15:02:47
Queue a full-year export and have it emailed
curl 'https://www.wevideo.com/api/5/public/reports/superinstance/77/bulbs?fromDate=2026-01-01&toDate=2026-12-31' \
-H 'Authorization: WEVSIMPLE your-api-secret-here'
Response
Your export is being generated and will be emailed to admin@example.edu when it is ready.

Parameters

ParameterApplies toDescription
fromDateallStart of the date range, as YYYY-MM-DD. Required for bulbs and instructors; optional for video-sources.
toDateallEnd of the date range, as YYYY-MM-DD. Required for bulbs and instructors; optional for video-sources.
videoHostvideo-sourcesRestrict to videos on specific hosts, e.g. kaltura, youtube, hls, panopto, techconnect. Repeat the parameter for several.
runAsyncalltrue (default) emails a download link; false returns the CSV inline.

fromDate and toDate filter on creation date for bulbs and video-sources, and on last login for instructors. Omitting them on video-sources exports every active video in the scope.

One export at a time

Only one export can run per Instance or Super Instance at a time. While a report is being generated, further requests for the same scope return 429 Too Many Requests:

{
"status": 429,
"error": "Too Many Requests",
"message": "An export is already running for this instance. Please wait for it to finish before starting another one."
}

Instance and Super Instance scopes are counted separately, so a Super Instance pull doesn't block an export for one of its member Instances. If you're scripting several reports, run them in sequence and retry on 429 with a backoff of a minute or two rather than in parallel.

Errors

StatusLikely cause
400Missing fromDate/toDate on a report that requires them, a malformed date, or an unrecognised videoHost.
401Missing, malformed, or wrong Authorization header. See Authentication.
403Credentials are valid but the user does not administer the Instance or Super Instance in the path.
429An export is already running for that scope.

Next steps

  • Core entities — how Instances and Super Instances relate.
  • API reference — the full parameter list for each reporting endpoint.