> ## Documentation Index
> Fetch the complete documentation index at: https://developers.dash.fi/llms.txt
> Use this file to discover all available pages before exploring further.

# Dash.fi for developers

> Build on Dash.fi. Connect an AI assistant over MCP, or read and act on your account data with the REST API.

<div className="mx-auto flex w-full max-w-5xl flex-col gap-14 px-4 py-12 lg:py-16">
  <div className="flex flex-col gap-3">
    <h1 className="text-4xl font-semibold tracking-tight text-gray-900 dark:text-gray-50">
      Build on Dash.fi
    </h1>

    <p className="max-w-2xl text-balance text-base text-gray-600 dark:text-gray-400">
      Two ways in. Connect an AI assistant to your account over MCP for
      read-only questions in plain language, or call the REST API from your own
      systems to read data and act on it.
    </p>
  </div>

  <Columns cols={2}>
    <Card title="MCP server" icon="cpu" href="/mcp-server" horizontal={false}>
      Connect Claude, ChatGPT, Cursor, or any MCP-compatible assistant to your
      Dash.fi account. Read-only, and it inherits your exact permissions.
    </Card>

    <Card title="API reference" icon="terminal" href="/api-reference/introduction" horizontal={false}>
      A REST API over JSON with API key authentication. Cards, transactions,
      balances, payments, and settlements — with a playground on every endpoint.
    </Card>
  </Columns>

  <div className="flex flex-col gap-4">
    <h2 className="text-2xl font-semibold tracking-tight text-gray-900 dark:text-gray-50">
      Your first request
    </h2>

    <p className="max-w-2xl text-base text-gray-600 dark:text-gray-400">
      Generate an API key in the dashboard under **Settings → Developer → API**,
      then check connectivity with `GET /health` before wiring up anything else.
    </p>

    <CodeGroup>
      ```bash cURL theme={null}
      curl https://api.dash.fi/v1/public/health \
        -H "Authorization: Bearer YOUR_API_KEY"
      ```

      ```javascript Node theme={null}
      const res = await fetch('https://api.dash.fi/v1/public/health', {
      	headers: { Authorization: `Bearer ${process.env.DASHFI_API_KEY}` }
      });
      console.log(await res.json());
      ```

      ```python Python theme={null}
      import os, requests

      res = requests.get(
          "https://api.dash.fi/v1/public/health",
          headers={"Authorization": f"Bearer {os.environ['DASHFI_API_KEY']}"},
      )
      print(res.json())
      ```
    </CodeGroup>
  </div>

  <div className="flex flex-col gap-4">
    <h2 className="text-2xl font-semibold tracking-tight text-gray-900 dark:text-gray-50">
      Good to know
    </h2>

    <Columns cols={3}>
      <Card title="Base URL" icon="link" horizontal={false}>
        Every endpoint is served under `https://api.dash.fi/v1/public`.
      </Card>

      <Card title="Authentication" icon="key-round" horizontal={false}>
        A Bearer token in the `Authorization` header. One key at a time —
        regenerating invalidates the old one immediately.
      </Card>

      <Card title="Webhooks" icon="webhook" horizontal={false}>
        Versioned topics like `card.financial_event.v1`, delivered to a URL you
        own with no payload envelope.
      </Card>
    </Columns>
  </div>

  <div className="flex flex-col gap-2 border-t border-gray-100 pt-8 dark:border-white/[0.08]">
    <p className="text-base text-gray-600 dark:text-gray-400">
      Card endpoints, MCP access, and webhooks each need enabling on your
      account. Email [support@dash.fi](mailto:support@dash.fi) to request access,
      or browse the [Help Center](https://support.dash.fi) for product questions.
    </p>
  </div>
</div>
