# FinDash API and MCP server

FinDash's profit and loss arithmetic, for developers and AI agents: send a small business's monthly revenue and costs, get back costs in four groups, gross and net profit, net margin and budget used. Free, with no account or key, and nothing you send is stored.

## The FinDash API

Base address `https://findash.tech/api/v1`. Requests and responses are JSON. No authentication: every endpoint is open, and browsers may call it from any site (CORS). The [OpenAPI description](https://findash.tech/openapi.json) lists every field.

| Method | Address | What it does |
|---|---|---|
| POST | `/api/v1/analyze` | Monthly figures in, a profit and loss summary out |
| GET | `/api/v1/template` | The spreadsheet template's columns |
| GET | `/api/v1/glossary` | What each figure means, in plain words |
| GET | `/api/v1` | What the API offers, and where it is described |

## Analyse monthly figures

Send each month's revenue, its spending budget (the most planned to be spent, not a sales target) and its costs, by line. The fourteen cost lines are `costOfGoodsSold`, `labor`, `employeeMeals` and `payrollTax` (direct costs); `packaging`, `creditCardFees`, `marketing` and `hardware` (operating costs); `utilities` and `maintenance` (variable overhead); `rent`, `insurance`, `businessLicense` and `telephone` (fixed overhead). Leave out a line with nothing in it, and put a cost with no line of its own in the closest one.

```
curl -sS https://findash.tech/api/v1/analyze \
  -H 'Content-Type: application/json' \
  -d '{"currency": "USD", "months": [{"month": "July", "year": 2026, "revenue": 72000, "budget": 66000,
       "costs": {"costOfGoodsSold": 26000, "labor": 12000, "rent": 6000, "utilities": 2800, "marketing": 2200}}]}'
```

The answer has every month with its fourteen cost lines (zero where none were sent), and a total across the months:

```
{
  "currency": "USD",
  "months": [{
    "label": "July 2026", "month": 7, "year": 2026,
    "revenue": 72000, "budget": 66000,
    "costs": { "costOfGoodsSold": 26000, "labor": 12000, "rent": 6000, ... },
    "costGroups": { "directCosts": 38000, "operatingCosts": 2200, "variableOverhead": 2800, "fixedOverhead": 6000 },
    "totalCosts": 49000, "grossProfit": 34000, "netProfit": 23000,
    "netMarginPercent": 31.94, "budgetUsedPercent": 74.24, "overBudgetBy": 0
  }],
  "total": { "label": "July 2026", "months": 1, "revenue": 72000, "netProfit": 23000, ... },
  "needsAttention": []
}
```

`needsAttention` lists the months that made a loss or went over budget, the two things the dashboard puts first. The arithmetic is the dashboard's own, so the figures match what an owner sees on the [dashboard](https://findash.tech/dashboard).

## Errors

Every error is JSON, with an HTTP status to match: `{"error": {"code", "message", "hint", "docs"}}`, and for figures that can't be read, a `problems` list naming each field to fix, such as `months[0].costs.wages`.

| Status | Code | When |
|---|---|---|
| 400 | `invalid_json` | The body isn't a JSON object |
| 400 | `invalid_figures` | A month or amount can't be read; see problems |
| 404 | `not_found` | No endpoint at that address |
| 405 | `method_not_allowed` | Wrong method; the Allow header says which |
| 413 | `too_large` | More than 120 months, or a body over 200 KB |
| 500 | `internal_error` | Something went wrong on FinDash's side |

## Limits and fair use

- Up to 120 months per request.
- Figures are worked out and sent back, never stored or logged.
- The API doesn't read invoice photos, write advice or save figures to an account: those stay on the site, for logged-in owners. The [terms](https://findash.tech/terms) apply.
- There is no OAuth: nothing in the API belongs to an account, so there is nothing to authorise.

## MCP servers

Two Model Context Protocol servers, over Streamable HTTP, with no authentication:

- **`https://findash.tech/api/mcp`**: The product. Tools: `analyze_monthly_figures` (the same job as the API), `get_spreadsheet_template` and `explain_term`.
- **`https://findash.tech/api/mcp/docs`**: The documentation. Tools: `list_pages`, `read_page` and `search_docs`, over every page on this site.

To add the product server to Claude Code, for example:

```
claude mcp add --transport http findash https://findash.tech/api/mcp
```

Each server has an MCP Server Card at its address plus `/server-card`, and both are listed in the [AI Catalog](https://findash.tech/.well-known/ai-catalog.json).

## Tools on the dashboard page (WebMCP)

In a browser that supports WebMCP, the [dashboard](https://findash.tech/dashboard) offers agents four tools of its own: `load_monthly_figures` shows an owner's figures on the page (kept in their browser, as a spreadsheet would be), `read_dashboard` reads back what the page shows, `show_month` picks the month and period on screen, and `download_template` saves the spreadsheet template.

## Reading the site

- [llms.txt](https://findash.tech/llms.txt): what FinDash is, when to use it and every page, with smaller indexes for the [help](https://findash.tech/help/llms.txt), the [dashboard](https://findash.tech/dashboard/llms.txt) and [this page](https://findash.tech/developers/llms.txt).
- Every page as Markdown: ask with `Accept: text/markdown`, or add `.md` to its address ([/developers.md](https://findash.tech/developers.md); the home page is [/index.md](https://findash.tech/index.md)). `?mode=agent` on any page answers with llms.txt.
- The [agent skill](https://findash.tech/.well-known/agent-skills/index.json) for working with FinDash, the [API catalog](https://findash.tech/.well-known/api-catalog) (RFC 9727), the [sitemap](https://findash.tech/sitemap.xml) and the site's structured data as a [schema feed](https://findash.tech/schemamap.xml).

## Source code

FinDash's code is public on [GitHub](https://github.com/spinfern-o/FinDash), with an [AGENTS.md](https://github.com/spinfern-o/FinDash/blob/main/AGENTS.md) for coding agents and the agent skill in [docs/skills/findash](https://github.com/spinfern-o/FinDash/tree/main/docs/skills/findash). Questions: [support.findash@findash.tech](mailto:support.findash@findash.tech?subject=FinDash%20API).

---

This is the Markdown version of https://findash.tech/developers.

FinDash: [Home](https://findash.tech/) · [Dashboard](https://findash.tech/dashboard) · [Help](https://findash.tech/help) · [Waitlist](https://findash.tech/waitlist) · [Developers](https://findash.tech/developers) · [About](https://findash.tech/about) · [Contact](https://findash.tech/contact) · [Privacy](https://findash.tech/privacy) · [Terms](https://findash.tech/terms) · [llms.txt](https://findash.tech/llms.txt) · [Sitemap](https://findash.tech/sitemap.xml)
