API reference
FormResponsesSurface
Responses for one form in a window: the list, counts by placement and the funnel. Read access, forms toolset, MCP tool get_form_responses_surface.
Access: Read
Variables
| Variable | Type | Required | Accepts | Description |
|---|---|---|---|---|
first | Int | no | 32-bit integer. Default 25 | |
from | Datetime | no | ISO 8601 with a zone, e.g. 2026-01-01T00:00:00Z | Window start. Defaults to 30 days ago. |
listFilter | FormResponseFilter | no | FormResponseFilter | |
placementId | UUID | no | Scope to one placement. Omit for every placement of the form. | |
slug | String! | yes | Checks for equality with the object’s formSlug field. | |
to | Datetime | no | ISO 8601 with a zone, e.g. 2026-01-01T00:00:00Z | Window end. Defaults to now. |
windowFilter | FormResponseFilter | no | FormResponseFilter |
Call it
bash
curl https://api.missin.co.uk/graphql/v1 \
-H "Authorization: Bearer $MISSIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"operationName":"FormResponsesSurface","variables":{"slug":"…"},"extensions":{"persistedQuery":{"version":1,"sha256Hash":"a763ab50c672355fe7e850c4d7db61564871cbc29ea5646807f91017064b7388"}}}'Document
graphql
query FormResponsesSurface($first: Int = 25, $from: Datetime, $listFilter: FormResponseFilter, $placementId: UUID, $slug: String!, $to: Datetime, $windowFilter: FormResponseFilter) { __typename responses: allFormResponses( first: $first filter: $listFilter orderBy: [CREATED_AT_DESC] ) { __typename nodes { __typename completedAt createdAt formPlacementId answers: formResponseAnswersByFormResponseId { __typename totalCount } id partnerByPartnerId { __typename profileImage: avatarUrl id name rowId username } rowId shortLinkByShortLinkId { __typename code id label } status trustFlags trustScore updatedAt utmCampaign utmContent utmMedium utmSource utmTerm variant { __typename id rowId variantType } } totalCount } everything: allFormResponses(filter: $windowFilter) { __typename totalCount } complete: allFormResponses(condition: {status: COMPLETE}, filter: $windowFilter) { __typename totalCount } incomplete: allFormResponses( condition: {status: INCOMPLETE} filter: $windowFilter ) { __typename totalCount } skipped: allFormResponses(condition: {status: SKIPPED}, filter: $windowFilter) { __typename totalCount } believability: allFormResponses(filter: $windowFilter) { __typename aggregates { __typename average { __typename trustScore } } } allForms(condition: {formSlug: $slug}, first: 1) { __typename nodes { __typename formPlacementsByFormId(first: 50) { __typename nodes { __typename id integrationChannelByIntegrationChannelId { __typename displayName id slug surface } published rowId surface } } formSlug id rowId status title } } formFunnel(slug: $slug, placementId: $placementId, from: $from, to: $to) { __typename abandonedSessions from pages { __typename abandoned completed pageIndex viewed } placementIds steps { __typename key sessions } to variants { __typename answerableQuestions variantId } } }