Dynamite Circle Follows API

The Follows API from Dynamite Circle — 4 operation(s) for follows.

Operations 6

GET /follows/profiles List followed DCers #
POST /follows/profiles/{userID} Follow a DCer #
DELETE /follows/profiles/{userID} Unfollow a DCer #
GET /follows/chapters List followed chapters #
POST /follows/chapters/{cityID} Follow a chapter #
DELETE /follows/chapters/{cityID} Unfollow a chapter #

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-follows-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-follows-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 Follows API
  version: 2.6.11
servers:
- description: Production
  url: https://api.dynamitecircle.com
security:
- ApiKeyAuth: []
tags:
- name: Follows
paths:
  /follows/profiles:
    get:
      description: '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.'
      operationId: get_follows_profiles
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  profiles:
                    items:
                      type: object
                    type: array
                    description: Mini profiles of every DCer you currently follow.
                    properties:
                      userID:
                        type: string
                        description: DCer userID.
                      displayName:
                        type: string
                        description: Display name (the in-app rendered name).
                      userName:
                        type: string
                        description: URL-safe username / handle.
                      photo:
                        type: string
                        description: Profile photo URL.
                  count:
                    type: number
                    description: How many DCers you currently follow.
                  cap:
                    type: number
                    description: Maximum number of followed DCers.
                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 followed DCers
      tags:
      - Follows
  /follows/profiles/{userID}:
    post:
      description: '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.'
      operationId: post_follows_profiles__userID
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  profile:
                    type: object
                    description: Mini profile of the just-followed DCer.
                    properties:
                      userID:
                        type: string
                        description: DCer userID.
                      displayName:
                        type: string
                        description: Display name.
                      userName:
                        type: string
                        description: Username / handle.
                      photo:
                        type: string
                        description: Profile photo URL.
                  count:
                    type: number
                    description: How many DCers you follow after this call.
                  cap:
                    type: number
                    description: Maximum number of followed DCers.
                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: Follow a DCer
      tags:
      - Follows
      parameters:
      - description: userID of the DCer to follow. Discover via `GET /profile-match` or `GET /chapters/:cityID` members lists.
        example: '940'
        in: path
        name: userID
        required: true
        schema:
          type: string
    delete:
      description: 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.
      operationId: delete_follows_profiles__userID
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  count:
                    type: number
                    description: How many DCers you follow after this call.
                  cap:
                    type: number
                    description: Maximum number of followed DCers.
                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: Unfollow a DCer
      tags:
      - Follows
      parameters:
      - description: userID of the DCer to unfollow.
        example: '940'
        in: path
        name: userID
        required: true
        schema:
          type: string
  /follows/chapters:
    get:
      description: '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.'
      operationId: get_follows_chapters
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  chapters:
                    items:
                      type: object
                    type: array
                    description: Mini chapters of every chapter you currently follow.
                    properties:
                      cityID:
                        type: string
                        description: Chapter ID (same as the Google Place ID).
                      city:
                        type: string
                        description: City name (e.g. `Tokyo`).
                      country:
                        type: string
                        description: Country.
                      countryCode:
                        type: string
                        description: ISO 3166-1 alpha-2 country code.
                  count:
                    type: number
                    description: How many chapters you currently follow.
                  cap:
                    type: number
                    description: Maximum number of followed chapters.
                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 followed chapters
      tags:
      - Follows
  /follows/chapters/{cityID}:
    post:
      description: '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.'
      operationId: post_follows_chapters__cityID
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  chapter:
                    type: object
                    description: Mini chapter of the just-followed chapter.
                    properties:
                      cityID:
                        type: string
                        description: Chapter ID.
                      city:
                        type: string
                        description: City name.
                      country:
                        type: string
                        description: Country.
                      countryCode:
                        type: string
                        description: ISO country code.
                  count:
                    type: number
                    description: How many chapters you follow after this call.
                  cap:
                    type: number
                    description: Maximum.
                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: Follow a chapter
      tags:
      - Follows
      parameters:
      - description: Chapter ID (Google Place ID). Get from `GET /chapters` (each entry has `cityID`) or `GET /places/search` (`type === "city"`).
        example: ChIJXSModoWLGGARILWiCfeu2M0
        in: path
        name: cityID
        required: true
        schema:
          type: string
    delete:
      description: Unfollow a DC chapter. Idempotent — unfollowing a chapter you weren't following is a no-op.
      operationId: delete_follows_chapters__cityID
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  count:
                    type: number
                    description: How many chapters you follow after this call.
                  cap:
                    type: number
                    description: Maximum.
                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: Unfollow a chapter
      tags:
      - Follows
      parameters:
      - description: Chapter ID to unfollow.
        example: ChIJXSModoWLGGARILWiCfeu2M0
        in: path
        name: cityID
        required: true
        schema:
          type: string
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