Dynamite Circle Profile API

The Profile API from Dynamite Circle — 3 operation(s) for profile.

Operations 4

GET /profile Get your own profile #
PATCH /profile Update profile fields #
GET /profiles/{userID} Get another DCer's public profile #
GET /profiles/{userID}/events Events a DCer attends #

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-profile-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-profile-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 Profile API
  version: 2.6.11
servers:
- description: Production
  url: https://api.dynamitecircle.com
security:
- ApiKeyAuth: []
tags:
- name: Profile
paths:
  /profile:
    get:
      description: 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.
      operationId: get_profile
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  userID:
                    type: string
                    description: Your unique member ID.
                    example: '1234'
                  userName:
                    type: string
                    description: Your DC username — appears in your profile URL.
                    example: JaneDoe
                  displayName:
                    type: string
                    description: Your display name shown across the DC app.
                    example: Jane Doe
                  photo:
                    type: string
                    description: Profile photo URL.
                  profileURL:
                    type: string
                    description: Link to your public profile on DC (canonical host).
                    example: https://dc.dynamitecircle.com/profile/JaneDoe
                  shortURL:
                    type: string
                    description: Branded short link (dc.mba) to your public profile.
                    example: https://dc.mba/profile/JaneDoe
                  headline:
                    type: string
                    description: One-sentence elevator pitch shown at the top of your profile.
                    example: Founder at Acme Inc
                  businessIndustry:
                    type: string
                    description: Primary business industry (predefined bracket).
                    enum:
                    - AI
                    - SaaS & Tech
                    - Marketing Agency
                    - Productized Services
                    - Ecommerce & Amazon
                    - Courses and Info Products
                    - Affiliate, Content Creation, or Ad Revenue
                    - Professional Services & Industry Specific Consulting
                    - Real Estate and Investing
                    - Coaching
                    - Other
                  joinedDate:
                    type: string
                    description: Date you joined DC (YYYY-MM-DD).
                    example: '2020-01-15'
                  tier:
                    type: string
                    description: 'Your membership tier, derived from your role: dcb (DC BLACK members) or dcc (everyone else, including DC Team). Note: DC Team members are dcc here even though they get DC-BLACK-level API access.'
                    enum:
                    - dcc
                    - dcb
                  role:
                    type: string
                    description: Your human-readable membership role label.
                    example: DC Team Member
                  businessName:
                    type: string
                    description: Name of your primary business.
                  businessDescription:
                    type: string
                    description: Description of your primary business (plain text or HTML).
                  annualRevenue:
                    type: string
                    description: Annual revenue bracket of your primary business.
                    enum:
                    - No real income yet, it's still getting off the ground.
                    - I recently exited a business.
                    - $10K+
                    - $50K+
                    - $100K+
                    - $250K+
                    - $300K+
                    - $600K+
                    - $1M+
                    - $2M+
                    - $3M+
                    - $4M+
                    - $7M+
                    - $10M+
                    - $20M+
                    - $35M+
                    - $60M+
                    - $100M+
                    - Prefer not to say
                  annualRevenueIsPrivate:
                    type: boolean
                    description: Visibility of your revenue. `true` = hidden from other DCers (only DC staff can see it); `false` = visible to all DCers.
                  teamSize:
                    type: string
                    description: Team size bracket of your primary business.
                    enum:
                    - None
                    - 1-2
                    - 3-5
                    - 6-9
                    - 10-14
                    - 15-19
                    - 20-34
                    - 35-49
                    - 50-74
                    - 75-99
                    - 100+
                    - Prefer not to say
                  teamSizeIsPrivate:
                    type: boolean
                    description: Visibility of your team size. `true` = hidden from other DCers (only DC staff can see it); `false` = visible to all DCers.
                  businessWebsite:
                    type: string
                    description: Public website for your primary business.
                  yearsInBusiness:
                    type: string
                    description: How long you have been on the entrepreneurial path.
                    enum:
                    - Less than one year
                    - 1-2 years
                    - 3-6 years
                    - 7-9 years
                    - 10-15 years
                    - 15-20 years
                    - More than 20 years
                  peopleOfInterestIsPrivate:
                    type: boolean
                    description: Visibility of your "who I want to meet" answer. `true` = hidden from other DCers (only DC staff can see it); `false` = visible to all DCers.
                  linkedin:
                    type: string
                    description: LinkedIn handle.
                  twitter:
                    type: string
                    description: Twitter/X handle.
                  github:
                    type: string
                    description: GitHub handle. Required for access to the public DC client repo.
                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 your own profile
      tags:
      - Profile
    patch:
      description: Update allowed profile fields. Only the fields you include will be changed. Location, photo, and gender cannot be updated via API.
      operationId: patch_profile
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  updated:
                    items:
                      type: string
                    type: array
                    description: List of field names that were updated
                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: Update profile fields
      tags:
      - Profile
      requestBody:
        content:
          application/json:
            schema:
              properties:
                headline:
                  type: string
                  description: One-sentence elevator pitch shown at the top of your DC profile (max 64 chars).
                  example: Building tools for remote teams
                businessName:
                  type: string
                  description: Name of the main business you run or are primarily focused on right now (max 256 chars). You can list other businesses in `otherBusinesses`.
                  example: Remote First Recruiting
                businessDescription:
                  type: string
                  description: Description of your primary business. Plain text or HTML, up to 1600 chars.
                businessWebsite:
                  type: string
                  description: Public website for your primary business — single URL only (max 256 chars).
                  example: https://example.com
                businessIndustry:
                  type: string
                  description: Category your primary business fits into. Must be one of the predefined industries.
                  enum:
                  - AI
                  - SaaS & Tech
                  - Marketing Agency
                  - Productized Services
                  - Ecommerce & Amazon
                  - Courses and Info Products
                  - Affiliate, Content Creation, or Ad Revenue
                  - Professional Services & Industry Specific Consulting
                  - Real Estate and Investing
                  - Coaching
                  - Other
                annualRevenue:
                  type: string
                  description: Approximate annual revenue (in U.S. dollars) of your primary business over the last 12 months. Predefined bracket.
                  enum:
                  - No real income yet, it's still getting off the ground.
                  - I recently exited a business.
                  - $10K+
                  - $50K+
                  - $100K+
                  - $250K+
                  - $300K+
                  - $600K+
                  - $1M+
                  - $2M+
                  - $3M+
                  - $4M+
                  - $7M+
                  - $10M+
                  - $20M+
                  - $35M+
                  - $60M+
                  - $100M+
                  - Prefer not to say
                annualRevenueIsPrivate:
                  type: boolean
                  description: Visibility of your revenue. `true` = hidden from other DCers (only DC staff can see it); `false` = visible to all DCers.
                teamSize:
                  type: string
                  description: Number of full-time and part-time team members in your primary business. Predefined bracket.
                  enum:
                  - None
                  - 1-2
                  - 3-5
                  - 6-9
                  - 10-14
                  - 15-19
                  - 20-34
                  - 35-49
                  - 50-74
                  - 75-99
                  - 100+
                  - Prefer not to say
                teamSizeIsPrivate:
                  type: boolean
                  description: Visibility of your team size. `true` = hidden from other DCers (only DC staff can see it); `false` = visible to all DCers.
                yearsInBusiness:
                  type: string
                  description: How long you have been on the entrepreneurial path. Used for matching with other members. Predefined bracket.
                  enum:
                  - Less than one year
                  - 1-2 years
                  - 3-6 years
                  - 7-9 years
                  - 10-15 years
                  - 15-20 years
                  - More than 20 years
                otherBusinesses:
                  type: string
                  description: Other businesses you currently operate. Feel free to share URL, short description, and year started for each (up to 1600 chars).
                previousBusinesses:
                  type: string
                  description: Previous business exits and entrepreneurial experience worth listing (up to 1600 chars).
                linkedin:
                  type: string
                  description: 'LinkedIn username only (no URL prefix). 1-50 chars: letters, digits, `.`, `_`, `-`.'
                twitter:
                  type: string
                  description: 'Twitter/X username only (no URL prefix). 1-15 chars: letters, digits, `_`.'
                instagram:
                  type: string
                  description: 'Instagram username only (no URL prefix). 1-30 chars: letters, digits, `.`, `_`.'
                facebook:
                  type: string
                  description: 'Facebook username only (no URL prefix). 5-50 chars: letters, digits, `.`.'
                focusmate:
                  type: string
                  description: 'Focusmate username only (no URL prefix). 3-50 chars: letters, digits, `_`, `-`.'
                github:
                  type: string
                  description: 'GitHub 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.'
                whatsApp:
                  type: string
                  description: WhatsApp 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 staff.
                  example: '+12025551234'
                expertise:
                  type: string
                  description: Areas you might consider yourself an expert in — skills you can use to help other members (up to 1600 chars).
                askMeAnythingTopics:
                  type: string
                  description: Topics other members can ask you about, in your field of expertise (up to 1600 chars).
                hobbies:
                  type: string
                  description: Your non-business hobbies — games, camping, art, sports, anything (up to 1600 chars).
                currentChallenge:
                  type: string
                  description: Your current business challenge or goal. Used internally to match you with other members who can help (up to 1600 chars).
                  example: Looking to hire a senior backend engineer
                peopleOfInterest:
                  type: string
                  description: 'What 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 DC staff.'
                  example: I'm interested in connecting with other SaaS founders, parents of young kids, and tennis players.
                peopleOfInterestIsPrivate:
                  type: boolean
                  description: Visibility of your "who I want to meet" answer. `true` = hidden from other DCers (only DC staff can see it); `false` = visible to all DCers.
                relevantLocations:
                  type: string
                  description: Cities or regions you frequently visit. Helps surface trip overlaps with other members (up to 1600 chars).
                nickname:
                  type: string
                  description: Display name override — what other DCers see in addition to your real name (max 256 chars).
                  example: Angelina Doe
                spouseName:
                  type: string
                  description: Name of your spouse or partner — used only for the DCBKK partner pass. Always private (DC staff only).
                shirtSize:
                  type: string
                  description: T-shirt size — used when DC sends event swag.
                  enum:
                  - XS
                  - S
                  - M
                  - L
                  - XL
                  - XXL
                  - XXXL
                diet:
                  type: string
                  description: Dietary restrictions — used when DC plans event meals.
                  enum:
                  - No Restrictions
                  - Vegan
                  - Vegetarian
                  - Gluten-Free
                  - Dairy/Lactose-Free
                  - No Seafood
              type: object
        required: true
  /profiles/{userID}:
    get:
      description: 'Get another DCer''s public profile by `userID`.


        Returns the **same profile object** every list endpoint already uses — `GET /events/:eventID/attendees`, `GET /chapters/:cityID` members, `POST /profile-match` results, `GET /search/profiles` hits — so a client that renders those lists can render this without a second shape. Sensitive fields (`annualRevenue`, `teamSize`, `peopleOfInterest`) only populate when the owner shared them with all DCers; the owner''s current city is omitted when they opted out of location sharing. Social handles are never included — they stay on the owner''s own `GET /profile`.


        **Discovery:** this endpoint is a lookup, not a browse — you need a `userID` first. Find DCers via `POST /profile-match` (AI matchmaking, "DCers in Lisbon who run SaaS"), `GET /search/profiles?q=` (free-text), `GET /chapters/:cityID` (locals), or `GET /events/:eventID/attendees` (who is coming).


        **Access:** any active DCer. Hidden, guest, and inactive profiles return 404 — the same visibility gate the list endpoints apply. Looking up your own `userID` is allowed and returns this public shape; use `GET /profile` for your full editable profile.'
      operationId: get_profiles__userID
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  userID:
                    type: string
                    description: Member ID.
                    example: '1234'
                  userName:
                    type: string
                    description: DC username — appears in the profile URL.
                    example: JaneDoe
                  displayName:
                    type: string
                    description: Display name shown across the DC app.
                    example: Jane Doe
                  nickname:
                    type: string
                    description: Preferred nickname, or `null`.
                  photo:
                    type: string
                    description: Profile photo URL, or `null`.
                  profileURL:
                    type: string
                    description: Link to the public profile on DC (canonical host).
                    example: https://dc.dynamitecircle.com/profile/JaneDoe
                  shortURL:
                    type: string
                    description: Branded short link (dc.mba) to the public profile.
                    example: https://dc.mba/profile/JaneDoe
                  headline:
                    type: string
                    description: One-sentence elevator pitch shown at the top of the profile.
                    example: Founder at Acme Inc
                  joinedDate:
                    type: string
                    description: Date they joined DC (YYYY-MM-DD), or `null`.
                    example: '2020-01-15'
                  chapter:
                    type: object
                    description: Home chapter (`{ cityID, cityName, country, countryCode, placeID, chapterURL }`), or `null` when no base location is set.
                  currentLocation:
                    type: object
                    description: Where they are right now, only when it differs from the home chapter — `null` means "at base" or location sharing is off.
                  businessName:
                    type: string
                    description: Name of their primary business.
                  businessDescription:
                    type: string
                    description: Description of their primary business (plain text or HTML).
                  businessIndustry:
                    type: string
                    description: Primary business industry (predefined bracket).
                  businessWebsite:
                    type: string
                    description: Public website for their primary business.
                  businessPartnerName:
                    type: string
                    description: Business partner's name, or `null`.
                  otherBusinesses:
                    type: string
                    description: Other businesses they run, or `null`.
                  previousBusinesses:
                    type: string
                    description: Previous businesses, or `null`.
                  yearsInBusiness:
                    type: string
                    description: How long they have been on the entrepreneurial path (predefined bracket).
                  annualRevenue:
                    type: string
                    description: Annual revenue bracket — `null` unless the owner shared it with all DCers.
                  teamSize:
                    type: string
                    description: Team size bracket — `null` unless the owner shared it with all DCers.
                  expertise:
                    type: string
                    description: Fields of expertise (comma-separated), or `null`.
                  askMeAnythingTopics:
                    type: string
                    description: Topics other members can ask them about, or `null`.
                  currentChallenge:
                    type: string
                    description: What they are currently working through, or `null`.
                  peopleOfInterest:
                    type: string
                    description: Who they want to meet — `null` unless the owner shared it with all DCers.
                  hobbies:
                    type: string
                    description: Non-business hobbies, or `null`.
                  relevantLocations:
                    type: string
                    description: Other places they spend time (comma-separated), or `null`.
                  referredBy:
                    type: string
                    description: Who referred them to DC, or `null`.
                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 another DCer's public profile
      tags:
      - Profile
      parameters:
      - description: The DCer's member ID. Discover via `POST /profile-match`, `GET /search/profiles`, `GET /chapters/:cityID`, or `GET /events/:eventID/attendees` (each entry carries `userID`).
        example: '1234'
        in: path
        name: userID
        required: true
        schema:
          type: string
  /profiles/{userID}/events:
    get:
      description: 'Events a DCer is attending or has attended — the **Events** tab of their profile in the app. Built from their tickets (valid + maybe RSVPs), so it lists events they hold a ticket for, not events they organised.


        Returns three event lists, each in date order: `upcoming` (not yet ended), `pastEvents` (past global events) and `pastMeetups` (past local meetups), plus `alsoAttended` — labels of older DC events recorded on the profile before tickets existed (e.g. "DCBKK 2014").


        **Access:** any active DCer; the same visibility gate as `GET /profiles/:userID` (hidden, guest and inactive profiles return 404).'
      operationId: get_profiles__userID_events
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  upcoming:
                    type: object
                    description: Events they are going to (end date in the future), soonest first. Same event shape as `GET /events`.
                  pastEvents:
                    type: object
                    description: Past global events they attended, oldest first.
                  pastMeetups:
                    type: object
                    description: Past local meetups they attended, oldest first.
                  alsoAttended:
                    type: object
                    description: Labels of older events recorded on the profile.
                    example: '["DCBKK 2014"]'
                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: Events a DCer attends
      tags:
      - Profile
      parameters:
      - description: The DCer's member ID.
        example: '1234'
        in: path
        name: userID
        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