Shop analytics
Shop-wide analytics across all forms.
apiKeyAuthorizationBearer <token>A Formtoro API key minted in Settings → Connections. A key carries one
or more scopes; an endpoint refuses a key that lacks its required scope
with 403 insufficient_scope. Scopes:
analytics:read— all aggregate read endpoints.customers:read— customer-level lifetime value.forms:write— create and edit forms (drafts). Grantable only by a member who holds the Form-editing permission.forms:publish— save versions and turn forms on or off on the live storefront. Grantable only by a member who holds the Form-publishing permission.discounts:read— read discount definitions. Grantable only by a member who holds the Discounts-view permission.
range?stringTime window. Shorthand (7d/30d/90d), an ISO pair
(2026-01-01..2026-01-31), or a single ISO day. Omitted → last 30 days.
An array of analytics rows plus meta (with the resolved range).
application/json- response
data*array<>Endpoint-specific payload.
meta*curl -X GET 'https://public-api.formtoro.com/v1/engagement?range=30d'{ "meta": { "requestId": "string", "shopId": "string", "credentialId": "string", "range": { "from": "2019-08-24T14:15:22Z", "to": "2019-08-24T14:15:22Z" } }, "data": [ {} ]}apiKeyAuthorizationBearer <token>A Formtoro API key minted in Settings → Connections. A key carries one
or more scopes; an endpoint refuses a key that lacks its required scope
with 403 insufficient_scope. Scopes:
analytics:read— all aggregate read endpoints.customers:read— customer-level lifetime value.forms:write— create and edit forms (drafts). Grantable only by a member who holds the Form-editing permission.forms:publish— save versions and turn forms on or off on the live storefront. Grantable only by a member who holds the Form-publishing permission.discounts:read— read discount definitions. Grantable only by a member who holds the Discounts-view permission.
range?stringTime window. Shorthand (7d/30d/90d), an ISO pair
(2026-01-01..2026-01-31), or a single ISO day. Omitted → last 30 days.
An array of analytics rows plus meta (with the resolved range).
application/json- response
data*array<>Endpoint-specific payload.
meta*curl -X GET 'https://public-api.formtoro.com/v1/subscriptions?range=30d'{ "meta": { "requestId": "string", "shopId": "string", "credentialId": "string", "range": { "from": "2019-08-24T14:15:22Z", "to": "2019-08-24T14:15:22Z" } }, "data": [ {} ]}apiKeyAuthorizationBearer <token>A Formtoro API key minted in Settings → Connections. A key carries one
or more scopes; an endpoint refuses a key that lacks its required scope
with 403 insufficient_scope. Scopes:
analytics:read— all aggregate read endpoints.customers:read— customer-level lifetime value.forms:write— create and edit forms (drafts). Grantable only by a member who holds the Form-editing permission.forms:publish— save versions and turn forms on or off on the live storefront. Grantable only by a member who holds the Form-publishing permission.discounts:read— read discount definitions. Grantable only by a member who holds the Discounts-view permission.
range?stringTime window. Shorthand (7d/30d/90d), an ISO pair
(2026-01-01..2026-01-31), or a single ISO day. Omitted → last 30 days.
An analytics object plus meta (with the resolved range).
application/json- response
data*An endpoint-specific analytics object. Shapes mirror the in-app analytics surface and the MCP analytics tools 1:1; see the per-tool docs for exact fields. Monetary fields are integer cents.
meta*curl -X GET 'https://public-api.formtoro.com/v1/project/stats?range=30d'{ "meta": { "requestId": "string", "shopId": "string", "credentialId": "string", "range": { "from": "2019-08-24T14:15:22Z", "to": "2019-08-24T14:15:22Z" } }, "data": {}}apiKeyAuthorizationBearer <token>A Formtoro API key minted in Settings → Connections. A key carries one
or more scopes; an endpoint refuses a key that lacks its required scope
with 403 insufficient_scope. Scopes:
analytics:read— all aggregate read endpoints.customers:read— customer-level lifetime value.forms:write— create and edit forms (drafts). Grantable only by a member who holds the Form-editing permission.forms:publish— save versions and turn forms on or off on the live storefront. Grantable only by a member who holds the Form-publishing permission.discounts:read— read discount definitions. Grantable only by a member who holds the Discounts-view permission.
range?stringTime window. Shorthand (7d/30d/90d), an ISO pair
(2026-01-01..2026-01-31), or a single ISO day. Omitted → last 30 days.
An array of analytics rows plus meta (with the resolved range).
application/json- response
data*array<>Endpoint-specific payload.
meta*curl -X GET 'https://public-api.formtoro.com/v1/responses/distribution?range=30d'{ "meta": { "requestId": "string", "shopId": "string", "credentialId": "string", "range": { "from": "2019-08-24T14:15:22Z", "to": "2019-08-24T14:15:22Z" } }, "data": [ {} ]}