# Share a template

> Source: https://elaichi.ai/docs/api-reference/templates/template/sharetemplate/

`POST /template/{id}/share`

Resource: **Template** · API: **Templates**

## Path parameters

- **`id`** _(string, required)_
  Template id (`tpl_…`).

## Request body

- **`grantee_type`** _(string)_
  `user` and `team` grants target one `grantee_id`; `org` applies to every member of the organization and takes no id.
  Allowed: `user`, `team`, `org`
- **`grantee_id`** _(string,null)_
  User id (`usr_…`) or team id (`team_…`). Omit or send null for `grantee_type: "org"`.
- **`level`** _(string)_
  Same ladder for every shareable resource, low to high. `view` — see it exists, read its metadata/config; cannot exercise it. `use` — `view` + exercise it, resource-specific: run tools through a connection; execute a toolbox's tools through its bound connections (this DELEGATES — the caller runs through each entry's pinning editor's own authority, not necessarily their own); stamp a new toolbox by copying a template's entries; create connections from a connector. `edit` — `use` + change its settings, entries and its own grants.
  Allowed: `view`, `use`, `edit`

## Response body

- **`id`** _(string)_
  ACL entry id — the `:aclId` a `DELETE .../share/{aclId}` call takes.
- **`resource_type`** _(string)_
  Allowed: `connection`, `toolbox`, `template`, `connector`
- **`resource_id`** _(string)_
  The shared resource's id (a connector's slug, for that type).
- **`grantee_type`** _(string)_
  `user` and `team` grants target one `grantee_id`; `org` applies to every member of the organization and takes no id.
  Allowed: `user`, `team`, `org`
- **`grantee_id`** _(string,null)_
  User id (`usr_…`) or team id (`team_…`). Null for a `grantee_type: "org"` grant.
- **`level`** _(string)_
  Same ladder for every shareable resource, low to high. `view` — see it exists, read its metadata/config; cannot exercise it. `use` — `view` + exercise it, resource-specific: run tools through a connection; execute a toolbox's tools through its bound connections (this DELEGATES — the caller runs through each entry's pinning editor's own authority, not necessarily their own); stamp a new toolbox by copying a template's entries; create connections from a connector. `edit` — `use` + change its settings, entries and its own grants.
  Allowed: `view`, `use`, `edit`
- **`created_at`** _(string)_
- **`updated_at`** _(string)_

## Code examples

### curl

```bash
curl -X POST 'https://api.elaichi.ai/template/<id>/share' \
  -H 'Authorization: Bearer $ELAICHI_API_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{"grantee_type":"user","level":"view"}'
```

### JavaScript

```javascript
const body = {
  "grantee_type": "user",
  "level": "view"
};

const response = await fetch('https://api.elaichi.ai/template/<id>/share', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer ' + process.env.ELAICHI_API_TOKEN,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify(body),
});

const data = await response.json();
console.log(data);
```

### Python

```python
import os
import requests

url = "https://api.elaichi.ai/template/<id>/share"
headers = {
    "Authorization": f"Bearer {os.environ['ELAICHI_API_TOKEN']}",
    "Content-Type": "application/json",
}
payload = {
    "grantee_type": "user",
    "level": "view"
}

response = requests.post(url, headers=headers, json=payload)
print(response.json())
```
