Formo Charts API

Manage charts within boards

GitHub OpenAPI

Operations 9

GET /v0/boards/{boardId}/charts List charts for a board #
POST /v0/boards/{boardId}/charts Create chart #
PUT /v0/boards/{boardId}/charts/reorder Reorder charts #
GET /v0/boards/{boardId}/charts/{chartId} Get chart #
PUT /v0/boards/{boardId}/charts/{chartId} Edit chart #
DELETE /v0/boards/{boardId}/charts/{chartId} Delete chart #
PUT /v0/boards/{boardId}/charts/{chartId}/move Move chart to another board #
POST /v0/boards/{boardId}/charts/{chartId}/duplicate Duplicate chart #
GET /v0/boards/{boardId}/charts/{chartId}/query Execute saved chart query #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/formo-so:formo-so-charts-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

formo-so-charts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Formo Public Charts API
  description: 'REST API for managing Formo projects, analytics, alerts, boards, charts, contracts, segments, and AI chat.


    **Auth.** Every endpoint on `api.formo.so` requires a workspace API key with the appropriate scopes (see `x-api-scopes`). The one exception is `POST /v0/raw_events`, which runs on `events.formo.so` and authenticates with the project SDK write key instead.


    **Response shape.** Successful responses return the resource directly (or `{ data: [...], total, page, size, has_more }` for paginated lists). HTTP status carries success/failure; there is no envelope wrapping success bodies.


    **Errors.** Non-2xx responses from `api.formo.so` use the `Error` envelope, with two exceptions: some rate-limit rejections reply in plain text, and `POST /v0/raw_events` returns a plain `{ "error": "..." }` object. Treat the HTTP status as authoritative and parse defensively: `{ error: { code, message, doc_url, param?, details? } }`. Branch on the machine-readable `code` (see `ErrorCode` enum) and follow `doc_url` to the matching section of the errors reference.


    **Idempotency.** Pass an `Idempotency-Key` header on write requests to alerts, boards, charts, contracts, segments, and import to make retries safe; the response is cached for 24 h and replayed on duplicate keys. Profile writes and `POST /v0/query` do not support it.'
  version: 0.1.0
  contact:
    name: Formo
    url: https://formo.so
servers:
- url: https://api.formo.so
  description: API Server (boards, alerts, contracts, segments, profiles, query, import)
- url: https://events.formo.so
  description: Events Server (event ingestion)
security:
- WorkspaceApiKey: []
tags:


# --- truncated at 32 KB (48 KB total) ---
# Full source: https://artifacts.apis.io/formo-so/openapi/formo-so-charts-api-openapi.yml