disburse / docs

Connect ChatGPT

You can use disburse inside ChatGPT as a Custom GPT Action: ChatGPT calls the disburse REST API directly from an OpenAPI spec we publish, authenticated with your API key. Natural-language queries work out of the box: ChatGPT sends the text and disburse parses it into filters server-side.

Custom GPTs require a ChatGPT Plus, Team, or Enterprise plan.

What you need

  • A disburse API key (sk_live_…) from your dashboard.
  • The published OpenAPI spec URL: /openapi.json on your web app (e.g. https://app.disburse.dev/openapi.json).

Set it up

  1. In ChatGPT, open Explore GPTs → Create, then the Configure tab.
  2. Under Capabilities, tick Code Interpreter & Data Analysis. This is what lets your GPT turn export data into a real, clickable CSV download — without it, ChatGPT has nowhere to write files and lists can only appear as text in the chat.
  3. Scroll to Actions and click Create new action.
  4. Under Schema, click Import from URL and paste your /openapi.json URL. ChatGPT loads the operations (search_people, search_companies, enrich_*, verify_*).
  5. Under Authentication, choose API Key, set Auth Type to Bearer, and paste your sk_live_… key.
  6. Optional but recommended: paste this line into the GPT's Instructions so CSV asks come out as downloads automatically:

    When the user wants a CSV file, fetch every chunk from /v1/exports/{id}/chunk/{n} in order, assemble the rows with code, and write a single .csv file for download.

  7. Save. Test it with a prompt like "Find fintech CFOs in Sydney", "Get me 100 founders in Australia" (one call — the API fulfils whole lists server-side via count), or "Export 500 founders to a CSV".

How it works

ChatGPT never sees the filter schema; it just sends your words to the API:

text
You: "heads of growth at Series B fintechs in Australia"

      ▼  ChatGPT calls POST /v1/search/people { "query": "..." }
   disburse parses the text into filters, runs the search, returns results

That's the same natural-language path the API and the MCP connector use; disburse does the parsing, so any client that can send JSON works.

ChatGPT vs. the MCP connector

Both let an assistant use disburse; they differ in transport and auth:

Custom GPT Action (this page)MCP connector
TransportREST API (/v1/*) via OpenAPIMCP tools (/mcp)
AuthAPI key (Bearer)OAuth or API key
Best forChatGPTClaude and other MCP clients

Troubleshooting

  • Import fails / schema errors: ChatGPT's importer is strict — it rejects OpenAPI 3.1 type unions and is unreliable with allOf/oneOf. Our published spec avoids all three, so a failure usually means a stale copy: re-import from the URL rather than pasting an older download.
  • 401 Unauthorized: the key is missing or wrong; re-check the Bearer key in the action's Authentication settings.
  • Calls hit the wrong environment: the servers URL baked into /openapi.json decides which API is called. Confirm it points at the environment your key belongs to.
  • "File download failed" / exports with no download link: enable Code Interpreter & Data Analysis under Capabilities (step 2 above); only that sandbox can create downloadable files. The API already right-sizes export chunks for ChatGPT's response limits automatically — no settings on our side.
  • ChatGPT asks permission on every call: our spec marks every operation read-only, so ChatGPT offers Always allow — click it once. If it keeps asking, re-import the schema from the URL to pick up the flags.