API Reference

Experiments

A/B tests between two forms — inventory and per-arm results.

GET
/v1/experiments
AuthorizationBearer <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.
  • discounts:read — read discount definitions. Grantable only by a member who holds the Discounts-view permission.

In: header

Query Parameters

limit?integer

Page size. Defaults to 50; values above 200 are clamped to 200; a non-positive or non-numeric value is a 400 (invalid_limit).

Range1 <= value <= 200
Default50
cursor?string

Opaque pagination cursor from a previous response's meta.nextCursor. A stale/unknown cursor returns an empty page (never a silent page-one replay).

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/v1/experiments"
{  "meta": {    "requestId": "string",    "shopId": "string",    "credentialId": "string",    "range": {      "from": "2019-08-24T14:15:22Z",      "to": "2019-08-24T14:15:22Z"    }  },  "data": [    {}  ]}
GET
/v1/experiments/{id}/results
AuthorizationBearer <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.
  • discounts:read — read discount definitions. Grantable only by a member who holds the Discounts-view permission.

In: header

Path Parameters

id*string

The experiment's UUID. A non-existent / foreign id resolves to 404.

Formatuuid

Query Parameters

range?string

Time window. Shorthand (7d/30d/90d), an ISO pair (2026-01-01..2026-01-31), or a single ISO day. Omitted → last 30 days.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/v1/experiments/497f6eca-6276-4993-bfeb-53cbbbba6f08/results?range=30d"
{  "meta": {    "requestId": "string",    "shopId": "string",    "credentialId": "string",    "range": {      "from": "2019-08-24T14:15:22Z",      "to": "2019-08-24T14:15:22Z"    }  },  "data": {}}