# FormInstall

> Install state for one form: its placements and verified storefront domains. Read access, forms toolset, MCP tool get_form_install.

**Access:** [Read](https://developer.missin.co.uk/get-started/authentication.md#access-levels)

## Variables

| Variable | Type | Required | Accepts | Description |
|---|---|---|---|---|
| `slug` | `String!` | yes |  | Checks for equality with the object’s `formSlug` field. |

## Call it

```bash curl
curl https://api.missin.co.uk/graphql/v1 \
  -H "Authorization: Bearer $MISSIN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"operationName":"FormInstall","variables":{"slug":"…"},"extensions":{"persistedQuery":{"version":1,"sha256Hash":"6020326c83294e1885060ac5f06298995e189d19c31082987efc0a8ed218c5fb"}}}'
```

## Document

```graphql
query FormInstall($slug: String!) { __typename allConnectionDomains(first: 1) { __typename nodes { __typename domain id } } allForms(condition: {formSlug: $slug}, first: 1) { __typename nodes { __typename formPlacementsByFormId { __typename nodes { __typename config connectionId id integrationChannelId lastError lastSyncedAt metafieldPushError published rowId status surface } } formSlug formSnapshotsByFormId(filter: {version: {greaterThan: 1}}, first: 50) { __typename nodes { __typename createdAt id isCurrent payloadHash version } } id rowId status surfaces title workspaceByWorkspaceId { __typename embedKeySeenAt id } } } }
```

Source: https://developer.missin.co.uk/reference/forms/form-install
