Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

DC Member API

REMOTE · API.DYNAMITECIRCLE.COM · SCANNED AUG 3

Read and act on your own Dynamite Circle membership data via the public DC Member API.

+9 this week 81 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →

Endpoint Security97
  • The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
  • Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token. View diagnostics → Pass
  • HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
  • The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
  • DNSSEC is configured correctly; the domain's records validate against the full chain to the root. View diagnostics → Pass
  • The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents. View diagnostics → Partial
Transport & Reachability100
Schema Quality & AI Usability64
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 15729 tokens (~185/item across 85 items; 85 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

remote · api.dynamitecircle.com

# add to Claude Code
claude mcp add --transport http dynamitecircle-dc https://api.dynamitecircle.com/mcp
# ~/.codex/config.toml
[mcp_servers.dynamitecircle-dc]
url = "https://api.dynamitecircle.com/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "dynamitecircle-dc": {
      "type": "remote",
      "url": "https://api.dynamitecircle.com/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add dynamitecircle-dc --url https://api.dynamitecircle.com/mcp --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  dynamitecircle-dc:
    url: "https://api.dynamitecircle.com/mcp"
// mcp.json
{
  "mcpServers": {
    "dynamitecircle-dc": {
      "type": "http",
      "url": "https://api.dynamitecircle.com/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 1 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

  • 31 Jul 26 +6
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 29 Jul 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

  • 27 Jul 26 +1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 26 Jul 26 71

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Probed https://api.dynamitecircle.com/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=api.dynamitecircle.com CN=WR3,O=Google Trust Services,C=US 24 Jun 2026 22 Sept 2026 RSA 2048 SHA256-RSA 2c86fcfd3bb265571007474daf0c1435
SANs: api.dynamitecircle.com
CN=WR3,O=Google Trust Services,C=US (CA) CN=GTS Root R1,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 RSA 2048 SHA256-RSA 7ff005a91568d63abc22861684aa4b5a
CN=GTS Root R1,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 19 Jun 2020 28 Jan 2028 RSA 4096 SHA256-RSA 77bd0d6cdb36f91aea210fc4f058d30d
DNSSEC secure

Validation of api.dynamitecircle.com. Secure

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
dynamitecircle.com. present 64085 8 Verified
api.dynamitecircle.com. Verified address RRset verified with the apex keys
Authentication Enforced and verified

The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.

Result Enforced and verified
Enforced On tool calls
HTTP status 200

WWW-Authenticate challenge Bearer resource_metadata="https://api.dynamitecircle.com/.well-known/oauth-protected-resource"

Bearer resource_metadata="https://api.dynamitecircle.com/.well-known/oauth-protected-resource"
Header Value
strict-transport-security max-age=63072000; includeSubDomains; preload
x-content-type-options nosniff
x-frame-options SAMEORIGIN
referrer-policy no-referrer

Protected resource metadata

Document https://api.dynamitecircle.com/.well-known/oauth-protected-resource
Retrieved Yes
Resource https://api.dynamitecircle.com/mcp
Authorisation server https://api.dynamitecircle.com
Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://api.dynamitecircle.com/mcp Verified 200
http (plaintext) http://api.dynamitecircle.com/mcp HTTPS enforced 301 https://api.dynamitecircle.com/mcp
MCP tools — 85 exposed · ~15,729 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
alerts ~34

GET /alerts — List your alerts Returns the user's alerts, ordered by creation date (newest first). Maximum 50 results.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

alerts_by_id_delete ~90

DELETE /alerts/:alertID — Deactivate an alert Soft-delete an alert by setting `active: false`. The alert's history is preserved for past digests. Use `PATCH /alerts/:alertID` with `active: true` to reactivate. ⚠️ WRITE operation: this mutates your DC account data.

NameTypeReqDescription
alertIDstringyesThe alert ID to delete

No output schema declared.

No examples provided.

alerts_by_id_update ~109

PATCH /alerts/:alertID — Update an alert Update one or more fields on an existing alert. Only provide the fields you want to change. ⚠️ WRITE operation: this mutates your DC account data.

NameTypeReqDescription
activebooleanWhether the alert is active
alertIDstringyesThe alert ID to update
descriptionstringNew alert description
frequencystringNew delivery frequency
namestringNew alert name

No output schema declared.

No examples provided.

alerts_create ~104

POST /alerts — Create an alert Create a new alert. The system will search for matching content and deliver digests on the configured frequency. Maximum 10 active alerts per user. ⚠️ WRITE operation: this mutates your DC account data.

NameTypeReqDescription
descriptionstringyesAlert description — what the alert should look for (max 500 chars)
frequencystringyesDigest delivery frequency
namestringyesAlert name (max 100 chars)

No output schema declared.

No examples provided.

announcements ~147

GET /announcements — List recent announcements Returns the most recent announcements from DC's broadcast channels — official updates from the DC team and chapter staff (DC, DCBKK, DCMEX, DC BLACK, etc.). Same content you see in the app's announcements channels, in a flat newest-first feed. Visibility mirrors the app: DC members see DC-scope announcements; DC BLACK members and staff additionally see DC BLACK announcements. There is no posting, replying, or per-channel filtering — announcements are intentionally one-way and minimal.

NameTypeReqDescription
cursorstringOpaque cursor from a previous response's `nextCursor`
limitnumberMax announcements to return (1-50)

No output schema declared.

No examples provided.

announcements_latest ~119

GET /announcements/latest — Latest announcement per channel (quick overview) Returns the **single most recent announcement from each visible channel** — a one-shot overview rather than a paged feed. Useful as a "what's new across DC?" quick check before drilling into the full feed via `GET /announcements`. Visibility rules are identical to `/announcements`: DC members see DC-scope channels; DC BLACK members and staff additionally see DC BLACK channels. No pagination — the result size equals the number of dispatch channels you can see (currently ~4).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

calendar ~151

GET /calendar — Get your iCalendar feed URL + settings Returns your iCalendar feed URLs and the toggles that control which event categories the feed includes. **Three URLs are returned:** - `httpsURL` — paste into any calendar app that accepts an HTTPS subscription - `webcalURL` — same URL with the `webcal://` scheme; macOS / iOS Calendar opens it directly - `googleURL` — one-click Google Calendar subscribe link The feed includes events you have tickets to, virtual calls, your trips, chapter events, and flagship events — exactly what each `include*` toggle below controls. Tokens are deterministic, so the URLs never change for a given member.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

calendar_update ~194

PATCH /calendar — Update calendar feed settings Update any subset of your calendar feed toggles. Send only the toggles you want to change — omitted fields are left untouched. Returns `{ updated: true }` on success; re-fetch `GET /calendar` if you need the full toggle set + feed URLs (the URLs themselves are stable and don't change when toggles update). ⚠️ WRITE operation: this mutates your DC account data.

NameTypeReqDescription
includeDCBlackEventsbooleanBoolean
includeEventAgendabooleanBoolean
includeFlagshipEventsbooleanBoolean
includeFollowedChapterEventsbooleanBoolean
includeHomeChapterEventsbooleanBoolean
includeMyTicketsbooleanBoolean
includeMyTripsbooleanBoolean
includeOtherChapterEventsbooleanBoolean
includeVirtualCallsbooleanBoolean

No output schema declared.

No examples provided.

chapter ~170

GET /chapters/:cityID — Get a single chapter Get full details for a single chapter, including up to 100 home-chapter members and the list of DCers currently visiting via active trips. - `members` — DCers whose **home chapter** is this city (up to 100). - `currentVisitors` — DCers with an active trip to this city (`startDate <= now <= endDate`). Each entry carries a mini `profile` block, the visitor's `tripID`, and trip start/end dates. Use this to answer "who is in <city> right now?" — both locals (via `members`) and visitors (here). Hidden + guest profiles are filtered from both lists.

NameTypeReqDescription
cityIDstringyesChapter ID (same as Google Place ID)

No output schema declared.

No examples provided.

chapters ~147

GET /chapters — List chapters List all DC chapters (city-based community hubs), sorted by member count. Each chapter has a Google Place ID — pass it to `POST /trips` to create a trip to that chapter's city. **See also:** For a chapter by city or country name (`q='Lisbon'`, `q='Thailand'`), `POST /search/chapters` searches city + country names directly — faster than paginating this member-count-sorted list.

NameTypeReqDescription
cursorstringCursor from a previous response's `nextCursor`. Pass to fetch the next page.
limitnumberMax chapters to return (1-100).

No output schema declared.

No examples provided.

event ~42

GET /events/:eventID — Get event details Returns full details for a specific event, including your ticket status.

NameTypeReqDescription
eventIDstringyesThe event ID

No output schema declared.

No examples provided.

event_agenda ~121

GET /events/:eventID/agenda — Get your personal agenda for an event Returns the sessions and meetups **YOU** have on your personal agenda for an event: - Sessions you bookmarked from the schedule. - Meetups you RSVPd to. **Access:** caller must hold a valid ticket to the event. Use `POST /events/:eventID/schedule/:sessionID/bookmark` and `POST /events/:eventID/meetups/:meetupID/rsvp` to manage entries.

NameTypeReqDescription
eventIDstringyesEvent ID

No output schema declared.

No examples provided.

event_agenda_get ~136

GET /events/:eventID/agenda/:userID — Get another attendee's agenda for an event Returns another attendee's personal agenda for an event — the sessions they bookmarked + meetups they RSVPd to. Use this so an AI agent can plan together with another DCer (find a coffee window, suggest sessions to overlap, propose a meetup). **Access:** open to any active DCer who can see the event. The target must hold a valid ticket — otherwise there is no agenda to return (404).

NameTypeReqDescription
eventIDstringyesEvent ID
userIDstringyesTarget attendee userID

No output schema declared.

No examples provided.

event_agendas ~195

GET /events/:eventID/agendas — Get multiple attendees' agendas in one call Returns the agendas (bookmarked sessions + meetup RSVPs) for **multiple** attendees in a single call. Use when an AI agent needs to plan around several DCers at once — comparing schedules, finding shared sessions, building a meetup invite list. **Query**: `userIDs=A,B,C` — comma-separated. Max 20 IDs per call. **Behavior**: silently drops IDs that don't hold a valid ticket (so the AI doesn't need to pre-filter). Returns only the agendas for confirmed attendees, in the order requested. **Access:** open to any active DCer who can see the event (non-attendee target IDs are silently dropped).

NameTypeReqDescription
eventIDstringyesEvent ID
userIDsstringyesRequired. Comma-separated userIDs (max 20). Non-attendees are silently dropped.

No output schema declared.

No examples provided.

event_attendees ~237

GET /events/:eventID/attendees — List event attendees List the confirmed attendees of an event — DCers holding a `valid` paid ticket OR a `valid`/`maybe` RSVP status. Refunded/canceled tickets are excluded. Hidden and guest profiles are filtered out. Profiles returned use the same shape as the rest of the API (`GET /profile-match`, `GET /trips/:tripID/discovery`, etc.) — full public-other-person view including businessName, socials, expertise, plus privacy-gated annualRevenue + teamSize where shared. **Access:** any active DCer can view event attendees, matching the in-app attendee tab. **Pagination:** newest first; page with `?limit=` (1-100, default 100) plus the opaque `?cursor=` from the previous response's `nextCursor` (`null` when there are no more).

NameTypeReqDescription
cursorstringCursor from a previous response's `nextCursor`. Pass to fetch the next page.
eventIDstringyesThe event ID
limitnumberMax results (1-100).

No output schema declared.

No examples provided.

event_free_slots_create ~310

POST /events/:eventID/free-slots — Find shared free time slots across attendees Computes shared **free slots** across a set of event attendees — the time windows where they're NOT in a bookmarked session or meetup. Use to find a coffee window with one DCer, or a junto-style lunch slot for a group. **Body**: `userIDs[]` (1-20), `minDurationMinutes` (default 30, min 15, max 480), optional `eventDayDate: YYYY-MM-DD` to scope to a single event day. **Slot grid**: derived from the event's session schedule, partitioned into `minDurationMinutes` windows. For each window we subtract each user's bookmarked sessions + meetup RSVPs. **Sort**: slots ranked by `len(freeFor)` desc — fully-shared windows first, then partial overlaps. **Auth**: caller must hold a valid ticket. Non-attendee IDs are silently dropped. ⚠️ WRITE operation: this mutates your DC account data.

NameTypeReqDescription
eventDayDatestringOptional. Scope to a single event day (YYYY-MM-DD venue-local). Omit for the full event range.
eventIDstringyesEvent ID
minDurationMinutesnumberMinimum slot duration in minutes (default 30, range 15-480)
userIDsarrayyesAttendee userIDs to compare (1-20). Non-attendees silently dropped.

No output schema declared.

No examples provided.

event_meetup_attendees ~93

GET /events/:eventID/meetups/:meetupID/attendees — List meetup attendees Returns the list of attendees who have RSVPd to a specific meetup. Same profile shape as `/events/:eventID/attendees`. **Access:** any active DCer who can see the event.

NameTypeReqDescription
eventIDstringyesEvent ID
meetupIDstringyesMeetup ID

No output schema declared.

No examples provided.

event_meetup_rsvp ~151

POST /events/:eventID/meetups/:meetupID/rsvp — RSVP to / leave a meetup Join or leave a meetup. Requires a valid ticket for the event. The meetup's `rsvpCount` is updated atomically and idempotently. When the meetup has a linked chat channel, this mirrors the DC app side effects too: joining subscribes you to the meetup chat and leaving removes you from it. ⚠️ WRITE operation: this mutates your DC account data.

NameTypeReqDescription
eventIDstringyesEvent ID
joinedbooleanyes`true` to join, `false` to leave
meetupIDstringyesMeetup ID

No output schema declared.

No examples provided.

event_meetups ~148

GET /events/:eventID/meetups — List event meetups Returns the approved member-organized meetups for an event, sorted chronologically. Only approved meetups are returned. **Access:** any active DCer who can see the event can view approved meetup listings + attendee lists. Only RSVPing to a meetup (and the resulting chat-channel access) requires a valid ticket. **Time-zone handling:** meetups use explicit wall-clock fields (`date` = YYYY-MM-DD, `startTime` / `endTime` = HH:mm) plus the event's `timezone` (IANA). Pair them when localizing.

NameTypeReqDescription
eventIDstringyesEvent ID

No output schema declared.

No examples provided.

event_rsvp ~83

POST /events/:eventID/rsvp — RSVP to a free event RSVP to an event that uses free RSVP (not ticketed). Only works for events with rsvpEnabled: true. ⚠️ WRITE operation: this mutates your DC account data.

NameTypeReqDescription
eventIDstringyesThe event ID
statusstringyesRSVP status

No output schema declared.

No examples provided.

event_schedule ~187

GET /events/:eventID/schedule — Get event schedule Returns the full schedule (sessions) for an event, sorted chronologically. **Access:** any active DCer who can see the event can view its public schedule. Personal agenda actions still require a valid ticket. **Time-zone handling:** session `startAt` / `endAt` are returned as ISO 8601 strings whose digits represent the **venue-local wall-clock time** (e.g. a 9 AM Mexico City session returns `2026-05-08T09:00:00.000Z`, NOT `15:00:00Z`). The session's `timezone` field carries the IANA zone (e.g. `America/Mexico_City`) — pair them when localizing. This matches the convention used by the DC ICS feed.

NameTypeReqDescription
eventIDstringyesEvent ID

No output schema declared.

No examples provided.

event_schedule_attendees ~98

GET /events/:eventID/schedule/:sessionID/attendees — List session attendees (people who bookmarked it) Returns the list of attendees who have **bookmarked** a specific session into their agenda. Same profile shape as `/events/:eventID/attendees`. **Access:** any active DCer who can see the event.

NameTypeReqDescription
eventIDstringyesEvent ID
sessionIDstringyesSession ID

No output schema declared.

No examples provided.

event_schedule_bookmark ~155

POST /events/:eventID/schedule/:sessionID/bookmark — Bookmark / unbookmark a session Add or remove a session from your personal agenda — this is the API equivalent of the bookmark/star icon on a session card in the DC app. Requires a valid ticket for the event. Counter `rsvpCount` on the session doc is updated atomically and idempotently: repeating the same desired state does not increment or decrement the counter again. ⚠️ WRITE operation: this mutates your DC account data.

NameTypeReqDescription
bookmarkedbooleanyes`true` to add to agenda, `false` to remove
eventIDstringyesEvent ID
sessionIDstringyesSession ID

No output schema declared.

No examples provided.

event_sponsors ~74

GET /events/:eventID/sponsors — List event sponsors Returns the sponsors for an event, ordered by tier (primary → supporting) then display order. Deleted sponsors are filtered out. **Access:** any active DCer who can see the event — sponsors are public.

NameTypeReqDescription
eventIDstringyesEvent ID

No output schema declared.

No examples provided.

events ~156

GET /events — List upcoming events Returns upcoming DC events, sorted by date. Add `?past=true` to include past events. **See also:** For events by name or topic (`q='productivity'`, `q='DCBKK 2026'`), `POST /search/events` searches title + description directly — faster than paginating this date-sorted list. Combine with `?cityID`, `?country`, `?since`, `?until` filters for narrower scopes.

NameTypeReqDescription
cursorstringCursor from a previous response's `nextCursor`. Pass to fetch the next page.
limitnumberMax results (1-50).
pastbooleanInclude past events.

No output schema declared.

No examples provided.

follows_chapter_create ~163

POST /follows/chapters/:cityID — Follow a chapter Follow a DC chapter (city hub). Idempotent. Target must exist in the chapters list (discover via `GET /chapters`). Cap 50 — hitting it returns `409 follow_limit_reached`. This list also drives the `/locator/digest` `favoritePeople` and `favoriteCities` sections — surface trip + event activity from DCers and cities you care about without scrolling everywhere. ⚠️ WRITE operation: this mutates your DC account data.

NameTypeReqDescription
cityIDstringyesChapter ID (Google Place ID). Get from `GET /chapters` (each entry has `cityID`) or `GET /places/search` (`type === "city"`).

No output schema declared.

No examples provided.

follows_chapter_delete ~76

DELETE /follows/chapters/:cityID — Unfollow a chapter Unfollow a DC chapter. Idempotent — unfollowing a chapter you weren't following is a no-op. ⚠️ WRITE operation: this mutates your DC account data.

NameTypeReqDescription
cityIDstringyesChapter ID to unfollow.

No output schema declared.

No examples provided.

follows_chapters ~105

GET /follows/chapters — List followed chapters List the DC chapters (city hubs) you are currently following. Each entry is a mini-chapter with the chapter's Google Place ID — useful for creating trips or surfacing activity in that city. Cap: 50 follows. This list also drives the `/locator/digest` `favoritePeople` and `favoriteCities` sections — surface trip + event activity from DCers and cities you care about without scrolling everywhere.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

follows_profiles ~135

GET /follows/profiles — List followed DCers List the DCers you are currently following. Returns the same mini-profile shape used by every other list endpoint, so each entry roundtrips cleanly with `GET /profile/:userID` or `POST /follows/profiles/:userID`. Cap: 150 follows; the response `cap` echoes that so a client can warn the user as they approach the limit. This list also drives the `/locator/digest` `favoritePeople` and `favoriteCities` sections — surface trip + event activity from DCers and cities you care about without scrolling everywhere.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

follows_profiles_by_id_create ~217

POST /follows/profiles/:userID — Follow a DCer Follow a DCer. Idempotent — calling it twice with the same userID is safe (no-op the second time). Target must exist and be publicly visible (hidden + guest profiles are refused with 404). You cannot follow yourself. When the cap of 150 is reached, returns `409 follow_limit_reached` with a hint to unfollow someone first. The response includes the new `profile` mini-card and updated `count` so the caller can render the change without re-fetching. This list also drives the `/locator/digest` `favoritePeople` and `favoriteCities` sections — surface trip + event activity from DCers and cities you care about without scrolling everywhere. ⚠️ WRITE operation: this mutates your DC account data.

NameTypeReqDescription
userIDstringyesuserID of the DCer to follow. Discover via `GET /profile-match` or `GET /chapters/:cityID` members lists.

No output schema declared.

No examples provided.

follows_profiles_by_id_delete ~112

DELETE /follows/profiles/:userID — Unfollow a DCer Unfollow a DCer. Idempotent — unfollowing someone you weren't following is a no-op (still returns 200 with the updated `count`). Use it whenever you want to stop seeing a DCer in your `/locator/digest` favoritePeople section. ⚠️ WRITE operation: this mutates your DC account data.

NameTypeReqDescription
userIDstringyesuserID of the DCer to unfollow.

No output schema declared.

No examples provided.

inbox_unread ~59

GET /inbox/unread — Get unread counts Returns your total unread message count and per-room breakdown. Only includes rooms you are subscribed to or are a member of.

NameTypeReqDescription
limitnumberMax rooms to return (1-100).

No output schema declared.

No examples provided.

interests ~60

GET /interests — Get your interests config Returns the user's interests configuration — the set of tags they have subscribed or unsubscribed from. Returns an empty `{ tags: {}, createdAt: null, updatedAt: null }` shape when no config exists yet.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

interests_create ~131

POST /interests — Subscribe or unsubscribe from interests Subscribe or unsubscribe from interest tags in a single call. Pass a `updates` map of `{ slug: { subscribed: boolean } }` with up to 20 entries. Slugs that are not in the known interest definitions are silently ignored at the name-lookup step (the subscription is still recorded). ⚠️ WRITE operation: this mutates your DC account data.

NameTypeReqDescription
updatesobjectyesMap of interest tag slug → `{ subscribed: boolean }`. Max 20 entries. Keys must match `/^[a-z0-9-]+$/`.

No output schema declared.

No examples provided.

invites ~182

GET /invites — List your invites List the referral invites credited to you. Two source types appear: - **`manual`** — invites you sent via `POST /invites` (the explicit email-an-invitee flow). - **`permaCode`** — applicants who signed up through your shareable permacode link (`GET /invites/permacode`). Each record tracks where the prospective member is in the funnel (`new` → `invited` → `started` → `submitted` → `approved`/`rejected`/`expired`), the invite type, the invitee's name + email, and timestamps. Read-only.

NameTypeReqDescription
cursorstringCursor from a previous response's `nextCursor`. Pass to fetch the next page.
limitnumberMax results (1-100).

No output schema declared.

No examples provided.

invites_create ~168

POST /invites — Send an invite Send a referral invite to someone. The server queues a templated email (delivered via a background task) that points the invitee at the apply flow with you pre-credited as the referrer. The created invite shows up in `GET /invites` immediately at status `new`. ⚠️ WRITE operation: this mutates your DC account data.

NameTypeReqDescription
emailstringyesInvitee email address. Where the invite email is sent.
fullNamestringyesInvitee full name. Used in the email greeting + matched against existing applications for dedup.
whyDCstringOptional. Short note about why they would be a good fit for DC — surfaces in the admin review queue if the application reaches it.

No output schema declared.

No examples provided.

invites_permacode ~41

GET /invites/permacode — Get your permacode Returns your permanent referral code. Share this link to let people apply with your referral.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

limits ~191

GET /limits — Get your effective rate limits + current usage Returns the effective per-minute and per-day rate limits for your API key, **plus current usage** (how many calls you have already made in the current minute and day windows, when each window resets, and how many calls you have left). Limits derive from your membership tier (DC member: 10/min, 300/day; DC BLACK member and staff: 60/min, 3000/day) unless an admin has set per-key overrides — overrides win when present. The same usage data is also exposed on every API response via the `X-RateLimit-Remaining`, `X-RateLimit-Reset`, `X-RateLimit-Daily-Remaining`, and `X-RateLimit-Daily-Reset` headers. Use this endpoint when you want a JSON snapshot, or the headers when you want to read it on every call.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

locator_digest ~287

GET /locator/digest — Get locator digest Returns your weekly locator digest — the same data that powers the Friday locator email. Use this to surface trip/event activity around the people and cities a member already follows. The response is composed of four independent sections; pass `?sections=<csv>` to skip any you don't need. Each section is described in full below. - **`homeCity`** — Activity in the city you have set as your home chapter. Null if you have no home city, or if you don't belong to any chapter yet. - **`favoriteCities`** — Per-city digest for cities you have favorited (besides your home city). Each entry lists upcoming trips/events into that city + new ones added since last week. - **`favoritePeople`** — Recent activity from members you follow: their new trips, upcoming trips, recently purchased tickets, and events they've RSVPd to. - **`myTrips`** — For each of your own upcoming trips, the people you're likely to overlap with (chapter leads, local members, and other DCers visiting the same city in the same window). Pass a comma-separated subset to `?sections=...` to omit sections you don't use — useful for narrow integrations and faster responses.

NameTypeReqDescription
sectionsstringComma-separated list of sections to include. Defaults to all four sections when omitted.

No output schema declared.

No examples provided.

locator_settings ~53

GET /locator/settings — Get your Friday locator email settings Returns the four toggles that control the Friday locator email digest. The digest is a weekly outbound email surfacing new events, tickets, and trips relevant to you.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

locator_settings_update ~109

PATCH /locator/settings — Update your Friday locator email settings Update any subset of the Friday locator email toggles. Send only the fields you want to change. ⚠️ WRITE operation: this mutates your DC account data.

NameTypeReqDescription
enabledbooleanMaster toggle for the Friday digest
eventsbooleanInclude new events in your area
ticketsbooleanInclude DCers you follow getting event tickets
tripsbooleanInclude new trips to your area

No output schema declared.

No examples provided.

membership ~57

GET /membership — Get your membership state Returns your full membership state: role, lifecycle dates, trial status, billing/subscription details, and a link to the Stripe Customer Portal where you can manage your subscription, payment methods, and download invoices.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

membership_invoices ~84

GET /membership/invoices — List your Stripe invoices Returns your Stripe invoices, newest first. Each entry includes a hosted-invoice URL and a PDF link, both safe to share — perfect for self-serve receipts. Returns an empty array for legacy paypal/chargify members or members with no Stripe customer.

NameTypeReqDescription
limitnumberMax results (1-100)

No output schema declared.

No examples provided.

notifications ~91

GET /notifications — Get your notification preferences Returns your push + email preferences per notification category. Defaults are applied for any preference you have never explicitly set. Email is `null` for `reaction` / `myReaction` because email is not supported for those categories. For the Friday locator email digest, see `GET /locator/settings` — that's a separate concern (outbound digest, not per-event push/email).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

notifications_update ~96

PATCH /notifications — Update your notification preferences Update any subset of your notification preferences. Send only the categories/channels you want to change — the rest stay as-is. Email is rejected for `reaction` / `myReaction` (not supported). ⚠️ WRITE operation: this mutates your DC account data.

NameTypeReqDescription
categoriesobjectyesPer-category push/email toggles. Pass only the categories + channels you want to change.

No output schema declared.

No examples provided.

place ~112

GET /places/:placeID — Get place details Fetch full details for one Google Place ID. Useful for verifying a placeID before sending it to `POST /trips` (which only accepts `type: "city"` placeIDs and rejects venues with a 400). Same shape as a single entry from `GET /places/search`.

NameTypeReqDescription
placeIDstringyesGoogle Place ID. Get one from `GET /places/search` or from a previous response (e.g. `event.city.placeID`).

No output schema declared.

No examples provided.

places_search ~215

GET /places/search — Search Google Places Search for places by name. Use this to look up a Google Place ID before creating a trip or referencing a venue. Results include a `type` field that classifies each match as `city` (a chapter-level locality usable for trips) or `venue` (a specific establishment, address, or country/region match — usable for events/meetups but rejected by `POST /trips`). Filter on `type === "city"` if you're building a trip-creation flow; pass either type to event/meetup APIs. Every result also includes the full enriched location (`description`, `lat`, `lon`, `region`, `regionCode`, `utcOffsetMins`) so the same payload can be passed straight to `POST /trips` without a follow-up `GET /places/:placeID` lookup.

NameTypeReqDescription
limitnumberMax results (1-20)
qstringyesSearch query (city name, country, address, etc.)

No output schema declared.

No examples provided.

profile ~67

GET /profile — Get your own profile Returns your own full profile — every field the in-app profile editor surfaces to you, plus tier-derived state. Same shape regardless of tier (DC and DC BLACK members get identical own-profile payloads). Use `PATCH /profile` to update editable fields.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

profile_match_create ~1,207

POST /profile-match — Match DCers from a description (or recommend if omitted) **AI-powered profile matchmaker.** Match DCers against a natural-language description, or — when `query` is omitted — recommend DCers based on your own profile (chapter, industry, expertise, goals). Returns ranked results from a profile-vector search (Gemini embeddings + reranking under the hood). The caller's LLM synthesizes any narrative on top. Stricter rate limits than the standard CRUD endpoints because of the embedding/rerank cost. **Two modes**: - **With `query`**: free-form description ("DCers in Lisbon who run SaaS"). - **Without `query`**: AI builds an implicit query from your profile and returns "DCers you should meet". Useful for cold-start "who should I message this week?" prompts. **Optional structured filters** (combine with either mode, all AND-ed): - `locationChapterPlaceID` — narrow to DCers whose home / base location matches this Google Place ID. Use for "based in X" queries. Resolve via `GET /places/search`. - `locationCurrentPlaceID` — narrow to DCers currently in this place (auto-derived from their last GPS / active trip). Use for "currently in X" / "visiting X" queries. - `eventID` — narrow to DCers holding a valid ticket to this event ("DCers attending DCMEX who run logistics"). Refunded / canceled tickets are excluded. - `isDCB` — when `true`, narrow to DC BLACK members only. - `businessIndustry` — exact match on the DCer's primary business industry. - `minTeamSize` — "at least this size" filter on team headcount (only matches DCers whose team-size visibility is shared with all DCers). - `minAnnualRevenue` — "at least this revenue" filter on annual revenue (only matches DCers whose revenue visibility is shared with all DCers). - `gender` — exact match on the DCer's self-reported gender. **Note: Gender is sparsely populated — most DCers leave it blank.** Use this as a "narrow if set" hint rather than a hard requirement; combine with `query` for best results.…

NameTypeReqDescription
businessIndustrystringOptional. Exact-match filter on the DCer's primary business industry. Allowed values: `SaaS & Tech`, `Marketing Agency`, `Productized Services`, `Ecommerce & Amazon`, `Courses and Info Products`, `Af…
eventIDstringOptional. DC event ID — narrows results to DCers with a valid ticket (RSVP yes/maybe or paid). Pair with `query` for "DCers attending X who do Y".
genderstringOptional. Exact-match filter on the DCer's self-reported gender. Allowed values: `Man`, `Woman`, `Non-binary`, `Prefer not to say`. **Note: Gender is sparsely populated — most DCers leave it blank**…
isDCBbooleanOptional. When `true`, narrows results to DC BLACK members only.
limitnumberMax results (1-50, default 50). Hard cap at 50 — match is expensive; narrow with filters instead of paginating.
locationChapterPlaceIDstringOptional. Google Place ID — narrows results to DCers based here ("based in X"). Resolve via `GET /places/search`.
locationCurrentPlaceIDstringOptional. Google Place ID — narrows results to DCers currently here, whether they live there or are visiting. **Sparsely populated** — `currentLocation` is self-reported and most DCers leave it null,…
minAnnualRevenuestringOptional. "At least this revenue" filter on annual revenue. Pass any revenue label (e.g. `$1M+`, `$250K+`, `$100K+`); the filter parses to a number and matches DCers at-or-above. Only DCers who set t…
minTeamSizestringOptional. "At least this team size" filter — matches DCers whose team-size bucket is >= this value, ordered as `None < 1-2 < 3-5 < 6-9 < 10-14 < 15-19 < 20-34 < 35-49 < 50-74 < 75-99 < 100+`. `Prefer…
querystringFree-form description of the DCers you want to find. Omit to get recommendations based on your own profile.
skipRerankingbooleanOptional. When `true`, skip the keyword reranker and return results in raw vector-similarity order. Useful when the query is fuzzy/semantic (where exact keyword overlap would add noise) or when compa…

No output schema declared.

No examples provided.

profile_update ~1,014

PATCH /profile — Update profile fields Update allowed profile fields. Only the fields you include will be changed. Location, photo, and gender cannot be updated via API. ⚠️ WRITE operation: this mutates your DC account data.

NameTypeReqDescription
annualRevenuestringApproximate annual revenue (in U.S. dollars) of your primary business over the last 12 months. Predefined bracket.
annualRevenueIsPrivatebooleanVisibility of your revenue. `true` = hidden from other DCers (only DC staff can see it); `false` = visible to all DCers.
askMeAnythingTopicsstringTopics other members can ask you about, in your field of expertise (up to 1600 chars).
businessDescriptionstringDescription of your primary business. Plain text or HTML, up to 1600 chars.
businessIndustrystringCategory your primary business fits into. Must be one of the predefined industries.
businessNamestringName of the main business you run or are primarily focused on right now (max 256 chars). You can list other businesses in `otherBusinesses`.
businessWebsitestringPublic website for your primary business — single URL only (max 256 chars).
currentChallengestringYour current business challenge or goal. Used internally to match you with other members who can help (up to 1600 chars).
dietstringDietary restrictions — used when DC plans event meals.
expertisestringAreas you might consider yourself an expert in — skills you can use to help other members (up to 1600 chars).
facebookstringFacebook username only (no URL prefix). 5-50 chars: letters, digits, `.`.
focusmatestringFocusmate username only (no URL prefix). 3-50 chars: letters, digits, `_`, `-`.
githubstringGitHub username only (no URL prefix). 1-39 chars per GitHub's rules: letters, digits, `-`. Required to be granted access to the public DC client repo — set this to opt in.
headlinestringOne-sentence elevator pitch shown at the top of your DC profile (max 64 chars).
hobbiesstringYour non-business hobbies — games, camping, art, sports, anything (up to 1600 chars).
instagramstringInstagram username only (no URL prefix). 1-30 chars: letters, digits, `.`, `_`.
linkedinstringLinkedIn username only (no URL prefix). 1-50 chars: letters, digits, `.`, `_`, `-`.
nicknamestringDisplay name override — what other DCers see in addition to your real name (max 256 chars).
otherBusinessesstringOther businesses you currently operate. Feel free to share URL, short description, and year started for each (up to 1600 chars).
peopleOfIntereststringWhat kinds of community members you would like to connect with. Used to send recommendations of relevant DCers (up to 1600 chars). Set `peopleOfInterestIsPrivate: true` to keep this visible only to D…
peopleOfInterestIsPrivatebooleanVisibility of your "who I want to meet" answer. `true` = hidden from other DCers (only DC staff can see it); `false` = visible to all DCers.
previousBusinessesstringPrevious business exits and entrepreneurial experience worth listing (up to 1600 chars).
relevantLocationsstringCities or regions you frequently visit. Helps surface trip overlaps with other members (up to 1600 chars).
shirtSizestringT-shirt size — used when DC sends event swag.
spouseNamestringName of your spouse or partner — used only for the DCBKK partner pass. Always private (DC staff only).
teamSizestringNumber of full-time and part-time team members in your primary business. Predefined bracket.
teamSizeIsPrivatebooleanVisibility of your team size. `true` = hidden from other DCers (only DC staff can see it); `false` = visible to all DCers.
twitterstringTwitter/X username only (no URL prefix). 1-15 chars: letters, digits, `_`.
whatsAppstringWhatsApp phone number in international format — `+` followed by 5-16 digits, no dashes or spaces. Required if you want to be added to the DC WhatsApp community. Always private — only visible to DC st…
yearsInBusinessstringHow long you have been on the entrepreneurial path. Used for matching with other members. Predefined bracket.

No output schema declared.

No examples provided.