Dynamite Circle Live Calls API

The Live Calls API from Dynamite Circle — 4 operation(s) for live calls.

Operations 4

GET /virtual-events List Live Calls #
GET /virtual-events/{sessionID} Get Live Call details #
GET /virtual-events/{sessionID}/attendees List Live Call attendees #
POST /virtual-events/{sessionID}/rsvp RSVP to Live Call #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/dynamitecircle-com:dynamitecircle-com-live-calls-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

dynamitecircle-com-live-calls-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    name: DC Team
    url: https://dc.dynamitecircle.com
  description: 'Programmatic access to your DC membership data — trips, events, profile, announcements, and more. Designed for AI assistants, automation, and personal integrations. > **For ALL active DC members.** Every active DC member is eligible from day one — DC, DC BLACK, and trial accounts alike. ## What this is for


    The DC Member API is for **personal use** — wiring DC into your own AI assistant, scripting personal automations, pulling your own data into your own dashboards. Think "give my Claude/Codex/Cursor access to my DC trips and announcements" or "auto-update my DC trip when I book a flight."


    **It is not for:**


    - Building apps that other DC members log into (use the official DC app)

    - Crawling, scraping, or bulk-exporting member data

    - Building an alternative DC client

    - Public-facing services running on top of the API


    We **augment, we don''t replace** — the API gives you awareness and convenience, then sends you to the app for the real interactions. Human stuff stays in the app: no message content, no DM access, no bulk profile browsing, no discussion threads. **Rate limits are strict on purpose.** They''re sized for personal automation, not application traffic. We''ll loosen them once we see real usage patterns — if you hit a wall, email the DC developer team at **bugs+api@dynamitecircle.com** and we''ll sort you out. ## Connect to Claude & other AI apps (hosted MCP)


    This API is also a hosted MCP server — add it as a connector in Claude, Cursor, ChatGPT, or any MCP-compatible app and your assistant can read and act on your DC data directly. **No install.** When prompted, **sign in with your DC account** (one-click OAuth) — or paste a `dk_` API key. Every endpoint below is exposed as a tool. **Connector URL** (Streamable HTTP): `https://api.dynamitecircle.com/mcp`


    - **Claude (web, Desktop & mobile):** Settings → Connectors → **Add custom connector** → paste the URL → **Connect**, then sign in with your DC account. (Paid Claude plan; on Team/Enterprise an admin may need to approve it first.)

    - **Claude Code:** `claude mcp add --transport http dc https://api.dynamitecircle.com/mcp`

    - **Cursor, ChatGPT & other MCP apps:** add a custom / remote MCP connector pointing at the URL above (Streamable HTTP). Discovery is published at `/.well-known/mcp.json`. **What you can do once connected** — ask in plain language, e.g. "Which DCBKK sessions have I bookmarked?", "Add a trip to Lisbon and show me which DCers will be around", "RSVP me to the next Bangkok meetup", "Summarize the latest announcements." Reads run freely; writes do exactly what the matching endpoint documents. Access is scoped to **you** — the connector only ever sees your own membership data. ## Official client — Agent Skill, CLI, Python library, MCP server


    The fastest way to use this API — and to plug it into Claude Code, Codex CLI, Gemini CLI, Cursor, GitHub Copilot, or Claude Desktop — is the **official DC client**. One self-contained Python file, stdlib only, that ships as **four integrations from the same source**: Agent Skill (auto-discovered via SKILL.md), CLI (`dc …`), Python library (`from dc import DC`), and MCP server (`dc --mcp`, optional `mcp` dep). **Install via PyPI** (easiest):


    ```bash

    pip install dynamitecircle

    dc setup --api-key dk_your_api_key

    dc self-test

    dc profile

    ```


    The package is published on PyPI as `dynamitecircle` — same code as the repo, version-locked to the deployed API.'
  title: DC Member Live Calls API
  version: 2.6.11
servers:
- description: Production
  url: https://api.dynamitecircle.com
security:
- ApiKeyAuth: []
tags:
- name: Live Calls
paths:
  /virtual-events:
    get:
      description: Returns upcoming Live Calls (online sessions like Connect Calls, Happy Hour, Welcome Call, plus DC BLACK-only calls). Add `?past=true` to include past calls.
      operationId: get_virtual-events
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  events:
                    items:
                      type: object
                    type: array
                    description: Array of Live Calls
                    properties:
                      sessionID:
                        type: string
                        description: Session ID
                      name:
                        type: string
                        description: Live Call name
                      kind:
                        type: string
                        description: Session kind
                        enum:
                        - dc
                        - dcb
                        - dca
                        - welcome
                        - happy
                        - virtual
                      description:
                        type: string
                        description: Live Call description
                      scheduledAt:
                        type: string
                        description: Scheduled start (ISO 8601)
                      scheduledEndAt:
                        type: string
                        description: Scheduled end (ISO 8601)
                      duration:
                        type: number
                        description: Duration in minutes
                      attendeeCount:
                        type: number
                        description: Number of attendees
                      chatRoomID:
                        type: string
                        description: Linked chat room ID, or null while the room is still being created
                      isLive:
                        type: boolean
                        description: Whether the Live Call is currently live
                      myRsvp:
                        type: string
                        description: Your RSVP (null if none)
                        enum:
                        - 'yes'
                        - 'no'
                        - maybe
                      meetUrl:
                        type: string
                        description: Meet/video URL (if you RSVPd yes/maybe)
                  nextCursor:
                    type: string
                    description: Cursor for the next page, or `null` if no more events.
                type: object
          description: Success
        '401':
          description: Unauthorized — missing or invalid API key
        '403':
          description: Forbidden — inactive membership or not eligible
        '429':
          description: Rate limit exceeded
      summary: List Live Calls
      tags:
      - Live Calls
      parameters:
      - description: Include past Live Calls.
        in: query
        name: past
        required: false
        schema:
          default: 'false'
          type: boolean
      - description: Max results (1-100).
        in: query
        name: limit
        required: false
        schema:
          default: '20'
          type: number
      - description: Cursor from a previous response's `nextCursor`. Pass to fetch the next page.
        in: query
        name: cursor
        required: false
        schema:
          default: ''
          type: string
  /virtual-events/{sessionID}:
    get:
      description: 'Returns the same payload shape as one entry from `GET /virtual-events` for a single online Live Call — `sessionID`, `name`, `description`, `kind` (which audience tier the session is open to), `scheduledAt` / `scheduledEndAt` (ISO 8601), `duration` in minutes, `attendeeCount`, `chatRoomID`, `isLive`, `meetUrl` (the video-call join link, returned regardless of your RSVP state), `myRsvp` (your current `yes`/`no`/`maybe` or `null`), and `status`.


        DC BLACK callers also see DC BLACK-only sessions; DC tier callers get `tier_restricted` (403) on those.'
      operationId: get_virtual-events__sessionID
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  event:
                    type: object
                    description: Live Call details. Same shape as one entry from `GET /virtual-events`.
                    properties:
                      sessionID:
                        type: string
                        description: Session ID
                      name:
                        type: string
                        description: Live Call name
                      kind:
                        type: string
                        description: Session kind
                        enum:
                        - dc
                        - dcb
                        - dca
                        - welcome
                        - happy
                        - virtual
                      description:
                        type: string
                        description: Live Call description
                      scheduledAt:
                        type: string
                        description: Scheduled start (ISO 8601)
                      scheduledEndAt:
                        type: string
                        description: Scheduled end (ISO 8601)
                      duration:
                        type: number
                        description: Duration in minutes
                      attendeeCount:
                        type: number
                        description: Number of attendees who RSVPd yes
                      chatRoomID:
                        type: string
                        description: Linked chat room ID, or null while the room is still being created
                      isLive:
                        type: boolean
                        description: Whether the Live Call is currently live
                      myRsvp:
                        type: string
                        description: Your RSVP, or `null` if you haven't RSVPd
                        enum:
                        - 'yes'
                        - 'no'
                        - maybe
                      meetUrl:
                        type: string
                        description: Video-call join URL. Returned regardless of your RSVP state when the host has set one.
                      status:
                        type: string
                        description: Session lifecycle status
                type: object
          description: Success
        '401':
          description: Unauthorized — missing or invalid API key
        '403':
          description: Forbidden — inactive membership or not eligible
        '429':
          description: Rate limit exceeded
      summary: Get Live Call details
      tags:
      - Live Calls
      parameters:
      - description: The Live Call session ID. Find IDs via `GET /virtual-events`.
        example: abc123
        in: path
        name: sessionID
        required: true
        schema:
          type: string
  /virtual-events/{sessionID}/attendees:
    get:
      description: 'List the attendees of a Live Call — the DCers who RSVPd `yes` or `maybe` (the same set behind `attendeeCount`, mirroring how `GET /events/:eventID/attendees` counts RSVPs). Profiles use the standard other-person shape (identical to `GET /events/:eventID/attendees` and `GET /profile-match`): public fields plus privacy-gated `annualRevenue` + `teamSize` where the member shares them. Hidden and guest profiles are filtered out.


        **Access:** any active DCer who can see the Live Call. DC BLACK-only calls stay tier-gated — DC-tier callers get `tier_restricted` (403).


        **Pagination:** page with `?limit=` (1-100, default 100) plus the opaque `?cursor=` from the previous response''s `nextCursor` (`null` when there are no more).


        See `GET /virtual-events/:sessionID` for the call itself, and `GET /events/:eventID/attendees` for the in-person equivalent.'
      operationId: get_virtual-events__sessionID_attendees
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  attendees:
                    items:
                      type: object
                    type: array
                    description: Array of attendee base profiles (RSVP yes or maybe)
                    properties:
                      userID:
                        type: string
                        description: Member ID
                      userName:
                        type: string
                        description: Username (handle)
                      displayName:
                        type: string
                        description: Display name
                      photo:
                        type: string
                        description: Profile photo URL
                      profileURL:
                        type: string
                        description: Profile URL on DC
                      headline:
                        type: string
                        description: Profile headline
                      businessIndustry:
                        type: string
                        description: Business industry
                      joinedDate:
                        type: string
                        description: Join date (YYYY-MM-DD)
                  total:
                    type: number
                    description: Total attendees (RSVP yes or maybe) — matches `attendeeCount`; the visible roster may be slightly smaller when hidden/guest profiles are filtered out.
                  nextCursor:
                    type: string
                    description: Cursor for the next page, or `null` if no more attendees.
                type: object
          description: Success
        '401':
          description: Unauthorized — missing or invalid API key
        '403':
          description: Forbidden — inactive membership or not eligible
        '429':
          description: Rate limit exceeded
      summary: List Live Call attendees
      tags:
      - Live Calls
      parameters:
      - description: The Live Call session ID. Find IDs via `GET /virtual-events`.
        example: abc123
        in: path
        name: sessionID
        required: true
        schema:
          type: string
      - description: Max results (1-100).
        in: query
        name: limit
        required: false
        schema:
          default: '100'
          type: number
      - description: Cursor from a previous response's `nextCursor`. Pass to fetch the next page.
        in: query
        name: cursor
        required: false
        schema:
          default: ''
          type: string
  /virtual-events/{sessionID}/rsvp:
    post:
      description: 'RSVP to a Live Call. The user is added to the matching attendance list on the session doc (`participantIDs` for `yes`, `maybeIDs` for `maybe`, `notIDs` for `no`) and removed from the others.


        Three statuses:

        - `yes` — you intend to attend; you''ll show up in `attendeeCount`.

        - `maybe` — soft attendance signal.

        - `no` — you''re declining. Use this to back out after a prior `yes` or `maybe`.


        **Note:** the `meetUrl` (join link) on `GET /virtual-events/:sessionID` is **not** gated on your RSVP — it''s returned whenever the host has set one, regardless of attendance state. RSVPing is purely an attendance signal.


        **Idempotent** — re-RSVPing with the same status is a no-op.'
      operationId: post_virtual-events__sessionID_rsvp
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  rsvp:
                    type: object
                    description: Echo of the accepted RSVP. Re-fetch `GET /virtual-events/:sessionID` if you need the post-RSVP attendee count or other derived state.
                    properties:
                      sessionID:
                        type: string
                        description: The session you RSVPd to.
                      status:
                        type: string
                        description: Your applied status — `yes`, `maybe`, or `no`.
                        enum:
                        - 'yes'
                        - maybe
                        - 'no'
                      userID:
                        type: string
                        description: Your userID (echoed).
                type: object
          description: Success
        '401':
          description: Unauthorized — missing or invalid API key
        '403':
          description: Forbidden — inactive membership or not eligible
        '429':
          description: Rate limit exceeded
      summary: RSVP to Live Call
      tags:
      - Live Calls
      parameters:
      - description: The Live Call session ID. Find IDs via `GET /virtual-events`.
        example: abc123
        in: path
        name: sessionID
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                status:
                  type: string
                  description: Your RSVP status for this session.
                  enum:
                  - 'yes'
                  - maybe
                  - 'no'
              type: object
              required:
              - status
        required: true
components:
  securitySchemes:
    ApiKeyAuth:
      bearerFormat: dk_<userID>_<random>
      description: 'Your DC Member API key. Generate one from the user menu inside the DC member area (admin/tester access required). Send it as `Authorization: Bearer dk_your_api_key`.'
      scheme: bearer
      type: http