Formo Query API

Execute SQL queries and call pre-built analytics endpoints (KPIs, top pages, lifecycle, retention, revenue). Requires the query:read scope.

GitHub OpenAPI

Operations 18

POST /v0/query Execute SQL query #
GET /v0/kpis Get KPIs (sessions, pageviews, bounce rate, session duration) #
GET /v0/top_pages Get top pages by sessions or visitors, optionally restricted to entry or exit… #
GET /v0/top_sources Get top traffic sources (referrers / utm) #
GET /v0/top_locations Get top countries #
GET /v0/top_wallets Get top wallet types #
GET /v0/top_chains Get top blockchain chains #
GET /v0/top_events Get top events by frequency #
GET /v0/revenue_by_metric Get revenue grouped by a chosen column #
GET /v0/volume_by_metric Get transaction volume grouped by a chosen column #
GET /v0/revenue_overview Get revenue and transaction volume time-series #
GET /v0/revenue_timeseries Get per-event revenue and volume trend for a single wallet #
GET /v0/event_timeseries Get event count time-series #
GET /v0/lifecycle Get user lifecycle stages (New / Returning / Power user / At Risk / Churned /… #
GET /v0/frequency Get visit-frequency distribution #
GET /v0/retention Get user retention cohorts #
GET /v0/funnel Get multi-step conversion funnel #
GET /v0/flow Get session-scoped user-flow transitions (Sankey) #

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-query-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-query-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Formo Public Query 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 (82 KB total) ---
# Full source: https://artifacts.apis.io/formo-so/openapi/formo-so-query-api-openapi.yml