Skip to content

Finblade API

Everything the Finblade web app does is done through this HTTPS API — the app is just another client. Sign in, hold the access token, and you can chat with the assistant, upload and search documents, build and run workflows, publish apps and dashboards, extract tables and manage your account from any language or tool that speaks HTTP.

Base URL

All paths in this reference are relative to your deployment's API host, written here as https://api.example.com. Your administrator will give you the real host — it is the address the web app talks to, typically https://api.<your-domain> alongside https://app.<your-domain>.

Five-minute start

1. Sign in with your username (or email) and password. The access token comes back in the body; the refresh token is set as a cookie.

bash
curl -s -X POST "https://api.example.com/api/v1/token/login/" \
  -H "Content-Type: application/json" \
  -c cookies.txt \
  -d '{"username": "jane@acme.com", "password": "•••••••••"}'
json
{ "auth_token": "3f9c1b0e…", "expires_in": 86400, "absolute_expires_in": 7776000 }

2. Call anything with the token in the Authorization header.

bash
export FINBLADE_TOKEN=3f9c1b0e…

curl -s "https://api.example.com/users/me/" \
  -H "Authorization: Token $FINBLADE_TOKEN"

3. Ask the assistant a question.

bash
curl -s -X POST "https://api.example.com/microservices/agent/chat/?timeout=300" \
  -H "Authorization: Token $FINBLADE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"conversation_id": "0f3c9a1e-5d2b-4c7e-8a9f-6b1d2e3f4a5b",
       "message": "What can you help me with?"}'

4. Refresh before the token expires (24 hours) — or just sign in again.

bash
curl -s -X POST "https://api.example.com/api/v1/auth/refresh/" -b cookies.txt -c cookies.txt

Read Authentication for the full session lifecycle and Conventions & errors before building anything serious.

What's in the reference

SectionWhat it coversWeb app module
Auth & sign-inPassword, passkey and SSO sign-in; registration; verification; passwordsLogin, Register, Profile → Security
Users & profileYour profile, preferences, metadata, linked accounts, organisation directoryProfile
Files & media URLsSigned URLs for downloading and embedding filesEverywhere files appear
Chat AIThe assistant, conversation threads, message storage, document chatChat AI
My Data — documentsUpload, organise, share and search documents; summaries; trashMy Data
My Data — data sourcesSharePoint/OneDrive, SQL databases, data-source connections, live feeds, prompt templatesMy Data, Connections
Workflow AICreate, run, schedule, version, tag and share workflows; the tool catalogueWorkflow AI
Workflow assistantThe canvas copilot, skills and long-term memoryWorkflow AI, Chat AI
Apps & dashboardsBoards, chart tiles, chart data, dashboard chat, generated filesApps → Apps, Dashboard
Databases (tables)Tables extracted from documents, rows, evidence highlights, table databasesApps → Databases
StudioAgent-built HTML dashboards, versions, permanent linksApps → Studio
ConnectionsExternal MCP tool servers with OAuth or API keysConnections
Dedicated AgentYour own always-on agent: chat, jobs, autonomous runsDedicated Agent
Billing & usagePlans, checkout, invoices, LLM spendPlans, Profile → Billing/Usage
WebhooksTrigger workflows from other systems; poll results without a sessionWorkflow AI → Webhook node
Streaming & WebSocketsStreamed replies, SSE, and the three live channels

The same specification is available as an interactive, try-it-out page at OpenAPI, and as a file at /openapi.yaml for import into Postman, Insomnia or code generators.

Versioning and stability

There is one API surface — the one the web app uses — and it evolves with the product. Paths under /api/v1/ (sessions, sign-in, media signing) are the most stable; module paths (/microservices/…, /semantic-search/…) gain fields and endpoints over time but existing fields are not removed without a deprecation note in this reference. Treat unknown fields in responses as ignorable, and unknown fields in requests as rejected or ignored.

Endpoints marked legacy in the reference are kept for older screens and integrations; prefer the alternative named in their description.

Getting help

Response bodies always carry a human-readable detail or error. When you report a problem, include the request path, the status code and that message.

Finblade documentation