> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stateset.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Root owner grants viewer or operator access to the task family

> Root-family grant saved

> [!WARNING]
>
> **Confirm your deployment before running this request.** This page describes an API contract;
> a published reference does not establish hosted availability. Check the dated
> [host report](/api-reference/hosts) and obtain your deployment URL and credentials.
> Replace the example host if your provisioned service uses a different URL.

### Path parameters

**taskId** `string (uuid)` *required*

### Request body

`AgentTaskGrantRequest`

**principal** `string` *required*

**role** `string` *required*

Allowed values: `'viewer'`, `'operator'`.

### Response

No response body. Root-family grant saved.

### Status codes

| Code | Meaning |
| - | - |
| `200` | Root-family grant saved |
| `400` | Invalid task request or query |
| `401` | Authentication required |
| `403` | Insufficient scope, task role or sandbox permission |
| `404` | Task unavailable to this principal |

### Using this contract

Read the [source OpenAPI document](/spec/sandbox.json) for declared schemas and alternatives.
This page also includes documented corrections from the [spec overlays](https://github.com/stateset/docs/tree/main/spec/overlays).
Example IDs and values are illustrative; replace them with records from your workspace.

```bash cURL theme={null}
curl --silent --show-error --fail-with-body --request PUT \
  --url 'https://api.sandbox.stateset.app/api/v1/agent-tasks/{taskId}/grants' \
  --header 'Authorization: ApiKey YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
  "principal": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "role": "viewer"
}'
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.