Read-only REST API for the public WebinarTV catalog.
- Node.js
- TypeScript
- Fastify
- TypeBox
- Swagger / OpenAPI
- Vitest
npm install
npm run devThe server starts on http://localhost:3000 by default.
npm run dev
npm run build
npm run start
npm run typecheck
npm run lint
npm run testHOSTPORTSOURCE_URLCACHE_TTL_MSSTALE_IF_ERROR_MSLOG_LEVELRATE_LIMIT_MAX
GET /healthzGET /openapi.jsonGET /docs/GET /v1/metaGET /v1/categoriesGET /v1/webinarsGET /v1/webinars/:id
GET /v1/webinars supports:
pagelimitcategorystatus=all|upcoming|pastqsort=trending|start_time|score|topicorder=asc|desc
The API pulls from the public WebinarTV catalog JSON at:
https://storage.googleapis.com/webinartv-200-webinars/webinars-200.json
At the time this project was implemented, the observed source shape normalized from:
400raw rows200unique webinars- each webinar appearing once in
trendingand once in a single category bucket