This page inventories API endpoints and their access requirements. For browser pages and other UI routes, use Page and admin routes.


Resident Council website APIs

Endpoints

PathMethodAuthPurposeSource
/api/changelogGETPublicAggregate GitHub commits and releasesihnyc-rc-landing/functions/api/changelog.ts
/api/canva-imageGETPublicResolve Canva preview image (with screenshot fallback)ihnyc-rc-landing/functions/api/canva-image.ts
/api/statsGETPublic in code (edge protection expected)Serve stats.json from R2ihnyc-rc-landing/functions/api/stats.ts
/api/csv-uploadPOSTPublic in code (edge protection expected)Upload CSV/Excel to R2 with metadataihnyc-rc-landing/functions/api/csv-upload.ts
/api/csv-listGETPublic in code (edge protection expected)List uploaded datasetsihnyc-rc-landing/functions/api/csv-list.ts
/api/csv-dataGETPublic in code (edge protection expected)Fetch dataset dataihnyc-rc-landing/functions/api/csv-data.ts
/api/dataset-typesGETPublic in code (edge protection expected)List dataset schemasihnyc-rc-landing/functions/api/dataset-types.ts
/api/publishPOSTPublic in code (edge protection expected)Publish curated datasets to analytics-storeihnyc-rc-landing/functions/api/publish.ts

Programs Calendar APIs

Endpoints

PathMethodAuthPurposeSource
/api/subs/newPOSTPublic (Turnstile for programs)Start subscription flowihnyc-rc-cal-landing/functions/api/subs/new.ts
/api/subs/verifyGETMagic linkMint calendar tokenihnyc-rc-cal-landing/functions/api/subs/verify.ts
/api/turnstile-site-keyGETPublicReturn Turnstile site keyihnyc-rc-cal-landing/functions/api/turnstile-site-key.ts
/renewGETSigned renewal credentialShow renewal confirmationihnyc-rc-cal-landing/functions/renew.ts
/api/subs/extendPOSTSigned renewal credentialExtend an existing token rowihnyc-rc-cal-landing/functions/api/subs/extend.ts
/cal/programs.icsGET/HEADTokenServe programs ICS from R2ihnyc-rc-cal-landing/functions/cal/programs.ics.ts
/cal/internal.icsGET/HEADAccess (edge)Proxy internal ICS via n8nihnyc-rc-cal-landing/functions/cal/internal.ics.ts
/api/webhooks/resendPOSTSvix signatureRecord email delivery outcomesihnyc-rc-cal-landing/functions/api/webhooks/resend.ts
/api/cron/regenerate-programs-icsPOSTCron bearer tokenBuild Programs ICS from Notionihnyc-rc-cal-landing/functions/api/cron/regenerate-programs-ics.ts
/api/cron/renewal-warningsPOSTCron bearer tokenSend renewal warningsihnyc-rc-cal-landing/functions/api/cron/renewal-warnings.ts
/api/admin/*VariesAccess JWT + RC Console action grantObserve and operate subscriptions, tokens, email, and templatesihnyc-rc-cal-landing/functions/api/admin/_middleware.ts

The exact Calendar admin route-to-action map is in the service API reference. Mixpanel and /api/admin/mixpanel-test have been removed.


RC Console APIs

PathMethodAuthPurposeSource
/api/authz/checkPOSTMachine service tokenDecide whether a person’s current role includes a service actionihnyc-rc-landing/rc-admin/src/routes/authz.ts
/api/healthGETHealth service tokenReturn non-PII cron, publish, and roster healthihnyc-rc-landing/rc-admin/src/routes/health.ts
/api/console/*VariesVerified Access identity and Console capabilityManage people, positions, assignments, access maps, terms, and settingsihnyc-rc-landing/rc-admin/src/routes/console.ts
/api/self/*VariesVerified current-member identityClaim an identity and update the signed-in person’s own profileihnyc-rc-landing/rc-admin/src/routes/self.ts
/api/membersGETPublicReturn the public council-member artifactihnyc-rc-landing/rc-admin/src/routes/members.ts
/api/casework-ownersGETCasework service tokenReturn current role owners and the casework-email switchihnyc-rc-landing/rc-admin/src/routes/casework.ts

RC Console is active and D1-authoritative for council people, positions, assignments, and access maps. Calendar uses the policy endpoint; other services retain their own documented authorization model unless listed here.


Endpoints

PathMethodAuthPurposeSource
/healthGETPublicService healthihnyc-rc-gallery/src/index.ts
/api/galleryGETPublicList published itemsihnyc-rc-gallery/src/index.ts
/api/gallery/:idGETPublicGet one itemihnyc-rc-gallery/src/index.ts
/media/*GET/HEADPublicServe original or resized mediaihnyc-rc-gallery/src/index.ts
/api/admin/mediaGET/POSTAccess (edge)List or upload mediaihnyc-rc-gallery/src/index.ts
/api/admin/media/:idGET/PATCH/DELETEAccess (edge)Read/update/delete mediaihnyc-rc-gallery/src/index.ts
/api/admin/healthGETAccess (edge)Admin healthihnyc-rc-gallery/src/index.ts
/api/admin/repair/idsPOSTAccess (edge)Repair specific idsihnyc-rc-gallery/src/index.ts
/api/admin/repair/orphansPOSTAccess (edge)Cleanup orphansihnyc-rc-gallery/src/index.ts

Voting APIs

Endpoints

PathMethodAuthPurposeSource
/healthGETPublicService healthihnyc-rc-vote/src/index.ts
/admin/electionsGET/POSTAccess or ADMIN_API_KEYAdmin elections CRUDihnyc-rc-vote/src/routes/admin.ts
/admin/elections/:idGETAccess or ADMIN_API_KEYGet election detailsihnyc-rc-vote/src/routes/admin.ts
/admin/elections/:id/manual-resultsPUTAccess or ADMIN_API_KEYSave manual resultsihnyc-rc-vote/src/routes/admin.ts
/admin/elections/:id/manual-resultsDELETEAccess or ADMIN_API_KEYClear manual resultsihnyc-rc-vote/src/routes/admin.ts
/admin/elections/:id/attachmentsPATCHAccess or ADMIN_API_KEYUpdate Notion attachmentsihnyc-rc-vote/src/routes/admin.ts
/admin/elections/:id/datesPATCHAccess or ADMIN_API_KEYUpdate election datesihnyc-rc-vote/src/routes/admin.ts
/admin/elections/:id/settingsPATCHAccess or ADMIN_API_KEYUpdate election settingsihnyc-rc-vote/src/routes/admin.ts
/admin/elections/:idDELETEAccess or ADMIN_API_KEYDelete electionihnyc-rc-vote/src/routes/admin.ts
/admin/elections/:id/tokensGET/POSTAccess or ADMIN_API_KEYToken batchesihnyc-rc-vote/src/routes/admin.ts
/admin/elections/:id/batchesDELETEAccess or ADMIN_API_KEYDelete token batchihnyc-rc-vote/src/routes/admin.ts
/admin/elections/:id/candidatesGET/POSTAccess or ADMIN_API_KEYManage ranked candidatesihnyc-rc-vote/src/routes/admin.ts
/admin/elections/:id/optionsGET/POSTAccess or ADMIN_API_KEYManage poll optionsihnyc-rc-vote/src/routes/admin.ts
/admin/elections/:id/options/:optionIdDELETEAccess or ADMIN_API_KEYDelete poll optionihnyc-rc-vote/src/routes/admin.ts
/admin/elections/:id/invitePOSTAccess or ADMIN_API_KEYSend invitesihnyc-rc-vote/src/routes/admin.ts
/admin/elections/:id/invitesGETAccess or ADMIN_API_KEYInvite statusihnyc-rc-vote/src/routes/admin.ts
/admin/elections/:id/invites/:inviteId/resendPOSTAccess or ADMIN_API_KEYResend inviteihnyc-rc-vote/src/routes/admin.ts
/admin/elections/:id/invites/:inviteId/remindPOSTAccess or ADMIN_API_KEYSend reminder to inviteihnyc-rc-vote/src/routes/admin.ts
/admin/elections/:id/reminders/sendPOSTAccess or ADMIN_API_KEYSend remindersihnyc-rc-vote/src/routes/admin.ts
/admin/elections/:id/results-emailPOSTAccess or ADMIN_API_KEYSend results emailsihnyc-rc-vote/src/routes/admin.ts
/admin/elections/:id/closePOSTAccess or ADMIN_API_KEYClose electionihnyc-rc-vote/src/routes/admin.ts
/admin/bulk-invitesPOSTAccess or ADMIN_API_KEYBulk invite managementihnyc-rc-vote/src/routes/admin.ts
/admin/test-emailsPOSTAccess or ADMIN_API_KEYSend test emailsihnyc-rc-vote/src/routes/admin.ts
/admin/audit-logsGETAccess or ADMIN_API_KEYAudit log APIihnyc-rc-vote/src/routes/admin.ts
/admin/distribution-listsGET/POSTAccess or ADMIN_API_KEYDistribution listsihnyc-rc-vote/src/routes/admin.ts
/admin/distribution-lists/:idGET/PUTAccess or ADMIN_API_KEYDistribution list detailihnyc-rc-vote/src/routes/admin.ts
/admin/distribution-lists/:idDELETEAccess or ADMIN_API_KEYDelete distribution listihnyc-rc-vote/src/routes/admin.ts
/admin/distribution-lists/:id/emailsPOSTAccess or ADMIN_API_KEYAdd emails to listihnyc-rc-vote/src/routes/admin.ts
/admin/distribution-lists/:id/emails/:emailIdDELETEAccess or ADMIN_API_KEYRemove email from listihnyc-rc-vote/src/routes/admin.ts
/admin/notion/databasesGETAccess or ADMIN_API_KEYList Notion databasesihnyc-rc-vote/src/routes/admin.ts
/admin/notion/databases/:databaseId/pagesGETAccess or ADMIN_API_KEYSearch Notion pagesihnyc-rc-vote/src/routes/admin.ts
/admin/notion/pages/:pageId/validateGETAccess or ADMIN_API_KEYValidate Notion pageihnyc-rc-vote/src/routes/admin.ts
/admin/elections/:id/notion/linkPOSTAccess or ADMIN_API_KEYLink election to Notionihnyc-rc-vote/src/routes/admin.ts
/admin/elections/:id/notion/linkDELETEAccess or ADMIN_API_KEYUnlink election from Notionihnyc-rc-vote/src/routes/admin.ts
/admin/elections/:id/notion/syncPOSTAccess or ADMIN_API_KEYTrigger Notion syncihnyc-rc-vote/src/routes/admin.ts
/admin/elections/:id/published-statusGETAccess or ADMIN_API_KEYDebug published statusihnyc-rc-vote/src/routes/admin.ts

Shared notes

Edge Protection

Access enforcement for some admin routes is handled at the Cloudflare edge in production.

Sources: ihnyc-rc-gallery/README.md, ihnyc-rc-cal-landing/README.md


Games APIs

Endpoints

PathMethodAuthPurposeSource
/api/healthGETPublicHealth checkihnyc-games/services/api/src/index.ts
/api/eventsGETPublicList eventsihnyc-games/services/api/src/index.ts
/api/events/:idGETPublicFetch one eventihnyc-games/services/api/src/index.ts
/api/standingsGETPublicMedal table by floorihnyc-games/services/api/src/index.ts
/api/rosters/summaryGETPublicRoster totals by building/floorihnyc-games/services/api/src/index.ts
/api/admin/eventsGET/POSTAdminList/create eventsihnyc-games/services/api/src/index.ts
/api/admin/events/:idPATCHAdminUpdate eventihnyc-games/services/api/src/index.ts
/api/admin/resultsGET/POSTAdminGet/save resultsihnyc-games/services/api/src/index.ts
/api/admin/results/:idDELETEAdminDelete result rowihnyc-games/services/api/src/index.ts
/api/admin/import/csvPOSTAdminImport CSV submissionsihnyc-games/services/api/src/index.ts
/api/admin/importsGETAdminImport run historyihnyc-games/services/api/src/index.ts
/api/admin/submissionsGETAdminSubmission reviewihnyc-games/services/api/src/index.ts
/api/admin/submissions/:idDELETEAdminDelete submissionihnyc-games/services/api/src/index.ts