# Visibility & access

Controls who can view and submit the form. The `state` field sets the overall visibility, while `privateSettings` restricts access to specific users.

## Schema

| Field | Type | Description |
|  --- | --- | --- |
| `state` | string | Visibility: `"public"`, `"unlisted"`, or `"private"` |
| `isEnabled` | boolean | Whether the form accepts new submissions |
| `isUserInaccessible` | boolean | Whether the form owner has restricted access |
| `privateSettings.allowedUsers` | string[] | User IDs allowed to access a private form |
| `supportedLanguages` | string[] | Language codes the form supports |
| `url` | string | Custom URL slug for the form |


**State values:**

- `public`: Listed and accessible to anyone with the link
- `unlisted`: Accessible via direct link but not listed publicly
- `private`: Restricted to users in `privateSettings.allowedUsers`


```json
{
  "state": "unlisted",
  "isEnabled": true,
  "isUserInaccessible": true,
  "privateSettings": {
    "allowedUsers": []
  },
  "supportedLanguages": [],
  "url": "example-form"
}
```