Furries PH Docs
Dashboard
Platform API docs

Route Reference

Admin and Organization

Partner administration, organization settings, notices, Discord administration, and trust-safety enforcement records. 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

Profile formatting settings

FPH admins can open Profile settings at Admin Profile settings to enable or disable Allow line breaks in bios. The default is off. The setting applies to optional personal bios in Partners, Rego, and the external EPS staff directory. Toggling it preserves stored bio text; a later explicit bio save uses the current formatting policy.

GET /api/admin/profile-settings returns { "allowBioNewlines": false }. PATCH /api/admin/profile-settings accepts exactly one boolean field, allowBioNewlines, and returns the saved policy. Both require an enabled canonical FPH admin membership. Partner administrators and other FPH roles cannot manage this platform setting. Writes also require recent MFA verification and create an audit record. Reload the saved setting after an interrupted request before deciding whether another save is needed.

Partner administration, organization settings, notices, Discord administration, and trust-safety enforcement records.

Modules audited

  • admin.ts: 16 generated endpoint entries.
  • adminDiscord.ts: 2 generated endpoint entries.
  • orgSettings.ts: 3 generated endpoint entries.
  • notices.ts: 5 generated endpoint entries.
  • networkBans.ts: 8 generated endpoint entries.

Endpoint table

MethodPathModuleAuth scanSource
POST/api/admin/discord/messagesadminDiscord.tsPartner dashboard session required.partners-api/src/routes/adminDiscord.ts:49
GET/api/admin/discord/targetsadminDiscord.tsPartner dashboard session required.partners-api/src/routes/adminDiscord.ts:11
DELETE/api/admin/events/:eventId/registrationsadmin.tsPartner dashboard session required.partners-api/src/routes/admin.ts:976
GET/api/admin/membersadmin.tsPartner dashboard session required.partners-api/src/routes/admin.ts:183
POST/api/admin/membersadmin.tsPartner dashboard session required.partners-api/src/routes/admin.ts:214
DELETE/api/admin/members/:membershipIdadmin.tsPartner dashboard session required.partners-api/src/routes/admin.ts:321
PATCH/api/admin/members/:membershipIdadmin.tsPartner dashboard session required.partners-api/src/routes/admin.ts:383
GET/api/admin/noticesnotices.tsPartner dashboard session required.partners-api/src/routes/notices.ts:218
POST/api/admin/noticesnotices.tsPartner dashboard session required.partners-api/src/routes/notices.ts:236
PATCH/api/admin/notices/:idnotices.tsPartner dashboard session required.partners-api/src/routes/notices.ts:350
GET/api/admin/partnersadmin.tsPartner dashboard session required.partners-api/src/routes/admin.ts:63
POST/api/admin/partnersadmin.tsPartner dashboard session required.partners-api/src/routes/admin.ts:78
PATCH/api/admin/partners/:partnerIdadmin.tsPartner dashboard session required.partners-api/src/routes/admin.ts:121
POST/api/admin/partners/:partnerId/cms-tokenadmin.tsPartner dashboard session required.partners-api/src/routes/admin.ts:465
GET/api/admin/platform-feeadmin.tsPartner dashboard session required.partners-api/src/routes/admin.ts:612
PATCH/api/admin/platform-feeadmin.tsPartner dashboard session required.partners-api/src/routes/admin.ts:625
GET/api/admin/platform-securityadmin.tsPartner dashboard session required.partners-api/src/routes/admin.ts:932
PATCH/api/admin/platform-securityadmin.tsPartner dashboard session required.partners-api/src/routes/admin.ts:942
PUT/api/admin/settlement-payment-providersadmin.tsPartner dashboard session required.partners-api/src/routes/admin.ts:798
GET/api/admin/settlement-settingsadmin.tsPartner dashboard session required.partners-api/src/routes/admin.ts:676
PATCH/api/admin/settlement-settingsadmin.tsPartner dashboard session required.partners-api/src/routes/admin.ts:714
GET/api/network-bans/:watchlistEntryIdnetworkBans.tsPartner dashboard session required.partners-api/src/routes/networkBans.ts:218
PATCH/api/network-bans/:watchlistEntryId/appealnetworkBans.tsPartner dashboard session required.partners-api/src/routes/networkBans.ts:522
POST/api/network-bans/:watchlistEntryId/appealnetworkBans.tsPartner dashboard session required.partners-api/src/routes/networkBans.ts:277
GET/api/network-bans/:watchlistEntryId/appeal-statusnetworkBans.tsPartner dashboard session required.partners-api/src/routes/networkBans.ts:357
GET/api/network-bans/:watchlistEntryId/appealsnetworkBans.tsPartner dashboard session required.partners-api/src/routes/networkBans.ts:417
GET/api/network-bans/appealsnetworkBans.tsPartner dashboard session required.partners-api/src/routes/networkBans.ts:14
POST/api/network-bans/appeals/:appealId/decisionnetworkBans.tsPartner dashboard session required.partners-api/src/routes/networkBans.ts:94
GET/api/network-bans/my-appealsnetworkBans.tsPartner dashboard session required.partners-api/src/routes/networkBans.ts:154
POST/api/notices/:id/acknotices.tsPartner dashboard session required.partners-api/src/routes/notices.ts:192
GET/api/notices/unackednotices.tsPartner dashboard session required.partners-api/src/routes/notices.ts:133
GET/api/org/settingsorgSettings.tsPartner dashboard session required.partners-api/src/routes/orgSettings.ts:86
PATCH/api/org/settingsorgSettings.tsPartner dashboard session required.partners-api/src/routes/orgSettings.ts:113
POST/api/org/settings/data-silo/backfillorgSettings.tsPartner dashboard session required.partners-api/src/routes/orgSettings.ts:207

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