Furries PH Docs
Dashboard
Platform API docs

Route Reference

Social and Integrations

Discord, Telegram, social account linking, state tokens, member tags, roles, and ZEP access. 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

Discord, Telegram, social account linking, state tokens, member tags, roles, and ZEP access.

EPS personal reminder boundary

A dashboard Discord or Telegram account link is necessary but not sufficient for Event Planning personal reminders. EPS resolves the current signed-in user and then requires a dedicated provider capability check:

  • Telegram DM: the matching linked Telegram user must complete a single-use private /start binding with the platform bot. Organization chats, groups, channels, forum topics, member tags, and forwarded messages are not personal reminder destinations.
  • Discord DM: the matching linked Discord user must pass a platform-bot DM create/reuse test. Guild roles, shared servers, event entitlements, channels, and webhooks do not prove that the bot can privately message the person.
  • Revocation: unlink, changed provider identity, duplicated identity, expired state, blocked bot, or DM privacy failure makes the personal channel unavailable and cancels pending identity-versioned delivery work without changing EPS access or mandatory email.

The platform bot credentials and OAuth secrets remain API-owned. The reminder pipeline does not store a user’s Discord or Telegram OAuth access token for delivery, and browser responses expose no private chat/DM locator. Provider identity never grants project membership or permission to view the linked planning record.

Modules audited

  • social.ts: 11 generated endpoint entries.
  • socialLinking.ts: 31 generated endpoint entries.
  • zep.ts: 9 generated endpoint entries.

Endpoint table

MethodPathModuleAuth scanSource
GET/api/events/:id/social/bot-settingssocialLinking.tsPartner dashboard session required.partners-api/src/routes/socialLinking.ts:1862
PATCH/api/events/:id/social/bot-settingssocialLinking.tsPartner dashboard session required.partners-api/src/routes/socialLinking.ts:1903
GET/api/events/:id/social/discord/guildssocialLinking.tsPartner dashboard session required.partners-api/src/routes/socialLinking.ts:1744
GET/api/events/:id/social/discord/guilds/:guildId/rolessocialLinking.tsPartner dashboard session required.partners-api/src/routes/socialLinking.ts:1765
GET/api/events/:id/social/discord/link/startsocialLinking.tsPartner dashboard session required.partners-api/src/routes/socialLinking.ts:1668
GET/api/events/:id/social/telegram/chatssocialLinking.tsPartner dashboard session required.partners-api/src/routes/socialLinking.ts:1801
POST/api/events/:id/social/telegram/link/completesocialLinking.tsPartner dashboard session required.partners-api/src/routes/socialLinking.ts:1929
GET/api/events/:id/social/telegram/link/startsocialLinking.tsPartner dashboard session required.partners-api/src/routes/socialLinking.ts:1698
GET/api/events/:id/zep/app-bundlezep.tsPartner dashboard session required.partners-api/src/routes/zep.ts:484
GET/api/events/:id/zep/configzep.tsPartner dashboard session required.partners-api/src/routes/zep.ts:422
PUT/api/events/:id/zep/configzep.tsPartner dashboard session required.partners-api/src/routes/zep.ts:501
POST/api/internal/social-entitlements/reconcilesocialLinking.tsInternal cron secret required.partners-api/src/routes/socialLinking.ts:2288
GET/api/manage/:id/social/bot-settingssocialLinking.tsPartner dashboard session required.partners-api/src/routes/socialLinking.ts:1862
PATCH/api/manage/:id/social/bot-settingssocialLinking.tsPartner dashboard session required.partners-api/src/routes/socialLinking.ts:1903
GET/api/manage/:id/social/discord/guildssocialLinking.tsPartner dashboard session required.partners-api/src/routes/socialLinking.ts:1744
GET/api/manage/:id/social/discord/guilds/:guildId/rolessocialLinking.tsPartner dashboard session required.partners-api/src/routes/socialLinking.ts:1765
GET/api/manage/:id/social/discord/link/startsocialLinking.tsPartner dashboard session required.partners-api/src/routes/socialLinking.ts:1668
GET/api/manage/:id/social/telegram/chatssocialLinking.tsPartner dashboard session required.partners-api/src/routes/socialLinking.ts:1801
POST/api/manage/:id/social/telegram/link/completesocialLinking.tsPartner dashboard session required.partners-api/src/routes/socialLinking.ts:1929
GET/api/manage/:id/social/telegram/link/startsocialLinking.tsPartner dashboard session required.partners-api/src/routes/socialLinking.ts:1698
GET/api/manage/:id/zep/app-bundlezep.tsPartner dashboard session required.partners-api/src/routes/zep.ts:484
GET/api/manage/:id/zep/configzep.tsPartner dashboard session required.partners-api/src/routes/zep.ts:422
PUT/api/manage/:id/zep/configzep.tsPartner dashboard session required.partners-api/src/routes/zep.ts:501
DELETE/api/org/social/discord/guilds/:guildIdsocialLinking.tsPartner dashboard session required.partners-api/src/routes/socialLinking.ts:1822
GET/api/org/social/discord/link/startsocialLinking.tsPartner dashboard session required.partners-api/src/routes/socialLinking.ts:1492
POST/api/org/social/discord/unlinksocialLinking.tsPartner dashboard session required.partners-api/src/routes/socialLinking.ts:1522
GET/api/org/social/settingssocialLinking.tsPartner dashboard session required.partners-api/src/routes/socialLinking.ts:1452
POST/api/org/social/telegram/chat/link/completesocialLinking.tsPartner dashboard session required.partners-api/src/routes/socialLinking.ts:1642
GET/api/org/social/telegram/chat/link/startsocialLinking.tsPartner dashboard session required.partners-api/src/routes/socialLinking.ts:1600
DELETE/api/org/social/telegram/chats/:chatIdsocialLinking.tsPartner dashboard session required.partners-api/src/routes/socialLinking.ts:1842
GET/api/org/social/telegram/link/startsocialLinking.tsPartner dashboard session required.partners-api/src/routes/socialLinking.ts:1544
POST/api/org/social/telegram/unlinksocialLinking.tsPartner dashboard session required.partners-api/src/routes/socialLinking.ts:1578
GET/api/rego/friendssocial.tsRego attendee session required.partners-api/src/routes/social.ts:183
DELETE/api/rego/friends/:idsocial.tsRego attendee session required.partners-api/src/routes/social.ts:559
PATCH/api/rego/friends/:id/acceptsocial.tsRego attendee session required.partners-api/src/routes/social.ts:418
PATCH/api/rego/friends/:id/declinesocial.tsRego attendee session required.partners-api/src/routes/social.ts:488
GET/api/rego/friends/eventssocial.tsRego attendee session required.partners-api/src/routes/social.ts:673
POST/api/rego/friends/requestsocial.tsRego attendee session required.partners-api/src/routes/social.ts:301
GET/api/rego/friends/requestssocial.tsRego attendee session required.partners-api/src/routes/social.ts:241
GET/api/rego/friends/sentsocial.tsRego attendee session required.partners-api/src/routes/social.ts:271
GET/api/rego/social/discord/link/startsocialLinking.tsRego attendee session required.partners-api/src/routes/socialLinking.ts:1346
POST/api/rego/social/discord/unlinksocialLinking.tsRego attendee session required.partners-api/src/routes/socialLinking.ts:1402
GET/api/rego/social/settingssocial.tsRego attendee session required.partners-api/src/routes/social.ts:58
PATCH/api/rego/social/settingssocial.tsRego attendee session required.partners-api/src/routes/social.ts:81
GET/api/rego/social/telegram/link/startsocialLinking.tsRego attendee session required.partners-api/src/routes/socialLinking.ts:1372
POST/api/rego/social/telegram/unlinksocialLinking.tsRego attendee session required.partners-api/src/routes/socialLinking.ts:1427
GET/api/rego/users/searchsocial.tsRego attendee session required.partners-api/src/routes/social.ts:129
POST/api/rego/zep/launchzep.tsRego attendee session required.partners-api/src/routes/zep.ts:695
GET/api/rego/zep/statuszep.tsRego attendee session required.partners-api/src/routes/zep.ts:680
POST/api/zep/validatezep.tsUnknown from source scan; inspect middleware and handler body before use.partners-api/src/routes/zep.ts:728
POST/hooks/telegramsocialLinking.tsWebhook/internal route; inspect signature or shared secret verification before use.partners-api/src/routes/socialLinking.ts:1059

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