Furries PH Docs
Dashboard
Platform API docs

Route Reference

Webhooks and Contact

Public contact form, Auth hooks, and public waitlist entrypoints. Includes generated endpoint contracts from partners-api source.

First created Last updated

End-to-end developer runbook

  1. Step 1 - Confirm the API area: Identify the product area, route module, endpoint path, and consumer before writing or calling code.
  2. Step 2 - Read the endpoint contract: Check method, auth, parameters, response, errors, side effects, and related docs.
  3. Step 3 - Prepare authentication and input: Use the right session, bearer token, webhook secret, or internal header. Validate body and query data before sending it.
  4. Step 4 - Make the request: Call the endpoint from the correct origin and environment. Keep credentials and secrets out of logs.
  5. Step 5 - Verify response, side effects, and records: Confirm status code, response shape, database records, external side effects, and audit evidence.
  6. Step 6 - Add tests, docs, and handoff notes: Update route inventory, consumer notes, and certification checks before depending on the change.

Family summary

Public contact form, Auth hooks, and public waitlist entrypoints.

Modules audited

  • contact.ts: 1 generated endpoint entries.
  • authEmail.ts: 1 generated endpoint entries.
  • waitlist.ts: 10 generated endpoint entries.

Endpoint table

MethodPathModuleAuth scanSource
POST/hooks/send-emailauthEmail.tsWebhook/internal route; inspect signature or shared secret verification before use.partners-api/src/routes/authEmail.ts:868
GET/api/events/:id/waitlist-configwaitlist.tsPartner dashboard session required.partners-api/src/routes/waitlist.ts:263
PUT/api/events/:id/waitlist-config/:subjectType/:subjectIdwaitlist.tsPartner dashboard session required.partners-api/src/routes/waitlist.ts:298
POST/api/events/:id/waitlist/process-next/:tierIdwaitlist.tsPartner dashboard session required.partners-api/src/routes/waitlist.ts:388
POST/api/internal/waitlist/expire-offerswaitlist.tsInternal cron secret required.partners-api/src/routes/waitlist.ts:654
GET/api/manage/:id/waitlist-configwaitlist.tsPartner dashboard session required.partners-api/src/routes/waitlist.ts:263
PUT/api/manage/:id/waitlist-config/:subjectType/:subjectIdwaitlist.tsPartner dashboard session required.partners-api/src/routes/waitlist.ts:298
POST/api/manage/:id/waitlist/process-next/:tierIdwaitlist.tsPartner dashboard session required.partners-api/src/routes/waitlist.ts:388
POST/api/rego/waitlist/:entryId/acceptwaitlist.tsRego attendee session required.partners-api/src/routes/waitlist.ts:553
POST/api/rego/waitlist/:entryId/declinewaitlist.tsRego attendee session required.partners-api/src/routes/waitlist.ts:470
GET/api/rego/waitlist/pending-offerwaitlist.tsRego attendee session required.partners-api/src/routes/waitlist.ts:413
POST/contactcontact.tsPublic route with validation and outbound mail behavior.partners-api/src/routes/contact.ts:28

Endpoint contract notes

  1. Action 1 - Verify unknowns: The table is source-generated, but fields marked unknown need manual handler review.
  2. Action 2 - Check source line: Use the source line as the starting point for exact request, response, and side-effect behavior.
  3. Action 3 - Review consumers: Search dashboard, rego, EMS LAN, and webhook callers before changing a path or response.
  4. Action 4 - Update inventory: Regenerate after any route change.

All docs