canonical: https://jentic.com/apis/formo.so/formo

# Formo So Formo Public API

The Formo Public API ingests product events and reports on how wallets use a web3 application, so a team can measure activation, retention, and revenue without building its own analytics stack. You send raw events, then read KPIs, funnels, retention cohorts, lifecycle stages, and user-flow transitions, or run a SQL query directly against the data. Wallet profiles, segments, alerts, and dashboards of saved charts let you organise the analysis, and smart-contract records tie on-chain activity to the metrics.

## For AI agents

Ingest product events and read KPIs, funnels, retention, revenue, and wallet profiles in Formo, or run a SQL query against the data. Authenticates with a workspace API key as a bearer token, with a separate write key for event ingestion.

## Scope

Does not send marketing campaigns, process payments, or host a data warehouse. Use for product-event ingestion and analytics reporting only.

## Capabilities

- Ingest product events for a project and attach them to wallet profiles
- Read KPIs such as sessions, pageviews, bounce rate, and session duration
- Build conversion funnels and retention cohorts over tracked events
- Report revenue and transaction volume as time-series or grouped by a metric
- Run a SQL query directly against the analytics data
- Organise analysis with boards, saved charts, segments, and alerts

## Use cases

### Agent-Driven Product Analytics

An AI agent connected through Jentic answers a product question by reading KPIs, building a funnel, and checking retention, so a founder gets an activation read without opening a dashboard. Because Formo exposes a direct SQL query operation, the agent can drop to a custom query when the prebuilt reports do not cover the question.

Example prompt: Report the last 30 days of KPIs, build a signup-to-purchase funnel, and return the week-four retention for new wallets

### Event Ingestion Pipeline

A web3 application streams product events into Formo using the project write key, so every wallet action lands in one place for analysis. The analytics endpoints then read those events as KPIs, flows, and revenue, so the same ingested data powers both dashboards and ad-hoc queries.

Example prompt: Ingest this batch of wallet events, then confirm they appear in the event time-series

### Revenue and Lifecycle Reporting

A reporting workflow reads revenue overviews and lifecycle stages, groups revenue by a chosen metric, and watches alerts for sudden changes, so a team tracks monetisation and churn without manual spreadsheets. Lifecycle stages such as New, Returning, Power user, At Risk, and Churned let the workflow segment wallets by where they are in their journey.

Example prompt: Pull the revenue overview for this quarter and list how many wallets are in each lifecycle stage

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/v0/raw_events` | Ingest product events |
| GET | `/v0/kpis` | Get KPIs such as sessions and pageviews |
| GET | `/v0/funnel` | Get a multi-step conversion funnel |
| GET | `/v0/retention` | Get user retention cohorts |
| POST | `/v0/query` | Execute a SQL query |
| GET | `/v0/profiles` | Search wallet profiles |
| GET | `/v0/boards/{boardId}/charts/{chartId}/query` | Execute a saved chart query |

## Key resources

- **Events** — Ingested product events and their time-series
- **Analytics** — KPIs, funnels, retention, lifecycle, flow, and revenue reports
- **Profiles** — Wallet profiles with properties, labels, and segments
- **Boards** — Dashboards of saved charts with executable queries, plus alerts

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 62 / 100
- **Maturity:** AI-Aware
- **Dimensions:**
  - Foundational Compliance: 43 / 100
  - Developer Experience & Jentic Compatibility: 64 / 100
  - AI-Readiness & Agent Experience: 57 / 100
  - Agent Usability: 93 / 100
  - Security: 59 / 100
  - AI Discoverability: 78 / 100
- **View full report:** https://jentic.com/apis/formo.so/formo/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring the Formo API by hand means juggling a workspace API key for analytics and a separate write key for event ingestion, splitting calls between the api and events hosts, and handling the 402 payment flow on metered endpoints. Through Jentic you install once, import Formo from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** You choose which operations your agent may call, so you can allow reading KPIs and running queries while leaving destructive ones like deleting an alert or a segment out. Rules bound which operations run, so the agent reports on the data you grant and nothing else.
- **Credential handling:** Your Formo key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'build a conversion funnel' or 'ingest product events', and Jentic returns the matching Formo operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Mixpanel API** — Product analytics platform for events, funnels, and retention
- **Amplitude API** — Digital analytics platform for behavioural cohorts and funnels
- **Segment API** — Customer data platform that collects and routes events to downstream tools

## FAQ

### Is there a Formo MCP server?

You don't need an MCP server to give your agent the Formo API. Jentic connects it directly from the API Directory: import it, store your key once, and your agent can ingest events and read KPIs, funnels, and retention straight away, with no extra server to run and no tool definitions sitting in the agent's context.

### Can I limit what my agent is allowed to do with the Formo API?

Yes. Write a rule that allows only the operations the agent needs, such as reading KPIs and running queries, and leave alert deletion and segment changes out. Every call the agent makes is logged, so you can see exactly which reports it ran.

### What authentication does the Formo API use?

The Formo API authenticates with a workspace API key presented as a bearer token on api.formo.so per its OpenAPI spec. Event ingestion uses a separate project SDK write key, also a bearer token, and metered endpoints answer a 402 challenge with a payment payload in the X-PAYMENT or Authorization header. Through Jentic the key is stored encrypted by your own instance and added at call time, so it never appears in the agent's prompt or logs.

### Can I run a custom query with the Formo API?

Yes. Beyond the prebuilt KPI, funnel, and retention reports, one operation runs a SQL query directly against the analytics data, and saved charts on a board expose their own query endpoint. An agent can read a prebuilt metric or drop to SQL when a question needs it.

### What are the rate limits for the Formo API?

The OpenAPI spec does not state request rate limits for the Formo API. For current limits and fair-use guidance, check the provider documentation at https://api.formo.so.

### How do I report product metrics through Jentic?

Import the Formo Public API from the Jentic API Directory, then have your agent issue a request such as 'show me the conversion funnel for signups'. Jentic matches the intent to the funnel operation and returns its input schema so the agent builds the correct request, with your stored key injected at call time. To run it on your own infrastructure, install Jentic One from its GitHub repo.
