Insights

Get a form's insights

The numbers the dashboard's Insights page shows, from the same core: totals, median completion time, seven-day change, the daily timeline, source and surface breakdowns, the drop-off funnel, open drafts, and every question's distribution. Filters use the same grammar as the responses list, so the numbers and the rows always describe the same set. Accepted responses only. Every question's distribution quotes respondent answers verbatim as labels, so this is a response read wearing an analytics shape: it needs forms:read AND responses:read, the second asserted after authentication and named in its own 403.

get/api/v1/manage/forms/{form}/insights

Request

  • Base URL: https://fillo.so
  • URL: https://fillo.so/api/v1/manage/forms/{form}/insights
  • Auth: HTTP bearer

Path parameters

formstring required

A form id or slug.

Query parameters

range'7d' | '30d' | '90d' | 'all'

Date window: 7d, 30d, 90d, or all (default).

qstring

Free-text search across answers and source.

sourcestring

Match the submission source (host + path).

respondentstring

Exact identify() external id.

wherestring[]

Field filter as fieldId:op:value, repeatable, max 20. op is one of eq, neq, contains, gt, lt, answered, not_answered.

bystring

Compare the cohort that answered this field against the baseline.

op'eq' | 'answered' | 'not_answered'

How by matches. Default eq.

eqstring

The value by must equal when op is eq.

Response

The form's insights for the requested window and filters.

range'7d' | '30d' | '90d' | 'all' required
totalinteger required
firstAtinteger nullable
lastAtinteger nullable
medianDurationMsinteger nullable
durationCountinteger
lastSevenDaysinteger
previousSevenDaysinteger
sevenDayChangenumber nullable
sampledboolean
versionCountinteger
legacyHistoryIncompleteboolean
funnelobject nullable

started, completed, excluded, completionRate, multiPage, and a per-page reached/pct list.

draftsobject nullable

open, identified, and byPage — the same counts the drafts endpoint returns.

fieldsobject[] required

One entry per field ever answered: id, label, kind, inCurrentSchema, answered, skipped, fillRate, and a summary discriminated on type (choice, multi, ranking, scale, number, boolean, matrix, text, date, file, generic).

segmentobject nullable

Present when by is supplied: the cohort's size, share, its own fields, and the differences that separate it from the baseline.

segmentIgnoredboolean

True when by named a field the current data cannot segment on.

Changes

No recorded changes to this operation across all 1 revision of this API.