Developer platform

Every calculator.
One API call.

122 deterministic calculators behind a single REST pattern. Zod-validated JSON in, structured results with a citable provenance block out — the same pure functions the web UI runs, versioned and unit-tested.

Illustration of API and MCP developer tooling

Quickstart

A $10,000 personal loan at 9.5% over 36 months with a 2% origination fee. The response below is the real output — the same numbers as the web calculator. These run as-is against calcfleet.com/api/v1 — no key required to start. Add an optional Authorization: Bearer cf_… header for higher rate limits (see Access).

curl

curl -X POST "https://calcfleet.com/api/v1/tools/personal-loan-calculator" \
  -H "Content-Type: application/json" \
  -d '{"principal":10000,"annualRatePct":9.5,"termMonths":36,"originationFeePct":2}'

JavaScript

const res = await fetch(
  "https://calcfleet.com/api/v1/tools/personal-loan-calculator",
  {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
      principal: 10000,
      annualRatePct: 9.5,
      termMonths: 36,
      originationFeePct: 2,
    }),
  },
);
const { result, provenance } = await res.json();
console.log(result.monthlyPayment); // 320.33

Python

import requests

res = requests.post(
    "https://calcfleet.com/api/v1/tools/personal-loan-calculator",
    json={
        "principal": 10000,
        "annualRatePct": 9.5,
        "termMonths": 36,
        "originationFeePct": 2,
    },
)
print(res.json()["result"]["monthlyPayment"])  # 320.33

Response 200

{
  "result": {
    "monthlyPayment": 320.33,
    "totalInterest": 1531.86,
    "totalPaid": 11531.86,
    "originationFee": 200,
    "nominalAprPct": 9.5,
    "effectiveAprPct": 10.89,
    "schedule": [
      { "month": 1, "payment": 320.33, "interest": 79.17,
        "principalPaid": 241.16, "balance": 9758.84 },
      { "month": 2, "payment": 320.33, "interest": 77.26,
        "principalPaid": 243.07, "balance": 9515.77 }
    ]
  },
  "provenance": {
    "tool": "Personal Loan Calculator with APR & Amortization",
    "slug": "personal-loan-calculator",
    "canonicalUrl": "https://calcfleet.com/loans/personal-loan-calculator",
    "formula": "deterministic",
    "sources": []
  }
}

Schedule truncated to 2 of 36 rows — the full response includes every amortization row. The provenance block ships on every response; sources is populated when a tool cites methodology or data sources, and AI-cost tools add a dated dataVintage.

Reliability & limits

Deterministic by construction

Every endpoint is a pure function: no LLM in the calculation path, no I/O, floats accumulated unrounded and rounded to two decimals only at output. Same input, same bytes — every calculator is unit-tested against hand-verifiable numbers.

Self-citing responses

Every result carries a provenance block: the tool, the canonical page documenting the method, a formula: "deterministic" declaration, cited sources, and — for tools reading the AI pricing snapshot — a dated vintage. Log the response and the citation comes with it.

Platform rate ceilings

SurfaceEndpointPer-IP ceiling
Calculator toolsPOST /api/v1/tools/{slug}120 req/min
Calculation graphPOST /api/v1/graph30 req/min
AI pricing feedGET /api/v1/ai-pricing30 req/min
MCP server/api/mcp60 req/min
Receipt verificationPOST /api/v1/verify30 req/min

These are platform-level per-IP ceilings against abuse. A cf_ account key raises them. Exceeding a ceiling returns 429 with a Retry-After header, an X-Request-Id, and a documentationUrl in the body. Other error shapes: 400 invalid input with per-field Zod issues, 403 an invalid cf_ key, 404 unknown slug.

Access

Authentication & API keys

No key is required to start: the API is a free anonymous trial, bounded by the per-IP rate limits above — the same posture in production, preview and local dev. When you want higher, more stable limits, attach an Authorization: Bearer cf_… account key. Keys are free during launch.

Prefer to talk first? Email partnership@calcfleet.com for volume terms or a direct onboarding.

Plans

Free

Calculator tools

  • All 122 calculator endpoints
  • Provenance block on every response
  • OpenAPI 3.1 spec
  • Anonymous trial — no key required to start
Get a free key

Pro

Composition + data

  • Everything in Free
  • Graph API — compose calculators server-side
  • AI pricing feed — maintained, source-cited dataset
  • Higher rate limits with a cf_ key
Get a free key

Enterprise

Custom

  • Volume terms
  • Custom integrations
  • Direct line to the team
Talk to sales

Everything here is free during launch — the endpoints, the OpenAPI spec, and the anonymous trial. Free cf_ keys raise the rate limits; priced tiers arrive with the first pilots, never invented before they are real.

Pro endpoints

Graph API

Execute a DAG of up to 12 calculators in one request. Each step names a tool and its input; a bind map wires a field from a previous step's result into this step's input. Topologically sorted, cycles refused, every step validated with the tool's Zod schema before it runs — and every step's result ships with its own provenance block.

POST /api/v1/graph

{
  "steps": [
    {
      "id": "loan",
      "toolSlug": "personal-loan-calculator",
      "input": { "principal": 10000, "annualRatePct": 9.5,
                 "termMonths": 36, "originationFeePct": 2 }
    },
    {
      "id": "invest",
      "toolSlug": "compound-interest-calculator",
      "input": { "initialPrincipal": 0, "annualRatePct": 7, "years": 3 },
      "bind": { "monthlyContribution": "loan.monthlyPayment" }
    }
  ]
}

Here the loan payment (320.33) is piped into a compound-interest step via bind — "what if I invested the same amount instead?" in one call.

AI pricing feed

The versioned pricing snapshot behind the AI-economics calculators: LLM API prices, GPU cloud rates, embeddings, fine-tuning and a throughput table. Every entry links its official source; the whole feed carries a vintage and retrieval date. Maintained so you don't track provider price pages yourself.

GET /api/v1/ai-pricing

{
  "vintage": "…",            // YYYY-MM snapshot
  "retrievedAt": "…",
  "llmApiPrices": [ … ],     // every entry links its official source
  "gpuCloudPrices": [ … ],
  "embeddingPrices": [ … ],
  "fineTunePrices": [ … ],
  "throughputTable": [ … ]
}

Verifiable results

Append ?certify=1 and the response also carries a signed receipt — an Ed25519-signed, content-addressed statement of formula version, validated inputs, outputs and datasets that anyone can re-verify offline. Live as a pilot on 4 formulas (personal-loan, compound-interest, home-affordability, tiered-commission); a certification failure never blocks the calculation.

POST /api/v1/tools/personal-loan-calculator?certify=1
→ { "result": …, "provenance": …, "certificate": { … }, "verificationUrl": "…" }

What people build with it

AI agents

The whole fleet is also an MCP server at /api/mcp (Streamable HTTP, free during launch) — agents run precise, validated math instead of guessing arithmetic. MCP setup

Product features

Affordability checks, payoff plans and loan math inside onboarding or quoting flows — the API runs the same functions as the web calculators, so what users check on the web matches your app.

Content & comparison sites

Tables and widgets fed by computed numbers that carry their own citation — every response names the method page and declares the formula deterministic.

Internal tools

Replace copy-pasted spreadsheet formulas with versioned, tested endpoints — and chain multi-step models server-side with the Graph API.

Endpoint catalog

122 endpoints

Every endpoint follows the same pattern — POST /api/v1/tools/{slug}. Each one also has a free interactive web page documenting the method. New tools added to the fleet appear here automatically.

Browse all 122 endpoints+

Start building.

The OpenAPI 3.1 spec describes every endpoint and schema — it is generated from the same registry that serves the API, so it never drifts.

Custom integrations or volume needs? partnership@calcfleet.com