---
canonical_url: "https://docs.composio.dev/toolkits/tailscale"
markdown_url: "https://docs.composio.dev/toolkits/tailscale.md"
product: "platform"
version: null
last_updated: null
---

# Tailscale

Tailscale is a secure networking platform for managing tailnets, devices, users, DNS, access policies, services, and other network administration resources.

- **Category:** it operations
- **Auth:** API_KEY
- **Composio-managed OAuth available?** N/A
- **Tools:** 13
- **Triggers:** 0
- **Slug:** `TAILSCALE`
- **Version:** 20261014_00

## Tools

### Get Device

**Slug:** `TAILSCALE_GET_DEVICE`

Get the full current record for one manageable Tailscale device by ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fields` | string ("all" | "default") | No | Response detail level. 'all' includes routes, connectivity, posture, and SSH fields; 'default' returns Tailscale's smaller standard field set. |
| `device_id` | string | Yes | Device ID returned by List Tailnet Devices. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get DNS Configuration

**Slug:** `TAILSCALE_GET_DNS_CONFIGURATION`

Return the selected tailnet's combined MagicDNS, nameserver, search-path, and split-DNS configuration.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tailnet` | string | No | Tailnet name or ID; keep '-' to use the API key's owning tailnet. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Policy File

**Slug:** `TAILSCALE_GET_POLICY_FILE`

Return the active Tailscale policy file for a tailnet as complete provider-native JSON.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tailnet` | string | No | Tailnet name or ID; keep '-' to use the API key's owning tailnet. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Tailnet Settings

**Slug:** `TAILSCALE_GET_TAILNET_SETTINGS`

Return current tailnet-wide approval, update, key-duration, HTTPS, routing, logging, and posture settings.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tailnet` | string | No | Tailnet name or ID; keep '-' to use the API key's owning tailnet. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Configuration Audit Logs

**Slug:** `TAILSCALE_LIST_CONFIGURATION_AUDIT_LOGS`

Return configuration audit events for an explicit RFC3339 time window in the selected tailnet, optionally filtered by actor, target, or event name.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `end` | string | Yes | End of the audit window as an RFC3339 timestamp later than start. |
| `actor` | array | No | Optional actor filters. Use exact actor IDs or prefix a login/display-name search with '~', for example '~alice'. |
| `event` | array | No | Optional exact Tailscale audit event names to include. |
| `start` | string | Yes | Inclusive start of the audit window as an RFC3339 timestamp. |
| `target` | array | No | Optional strings matched against any part of an audit event target. |
| `tailnet` | string | No | Tailnet name or ID; keep '-' to use the API key's owning tailnet. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Device Routes

**Slug:** `TAILSCALE_LIST_DEVICE_ROUTES`

Return the subnet routes advertised and currently enabled for a Tailscale device.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `device_id` | string | Yes | Device ID returned by List Tailnet Devices. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Tailnet Devices

**Slug:** `TAILSCALE_LIST_TAILNET_DEVICES`

Return all devices in the selected tailnet, including identifiers, names, addresses, tags, authorization state, and connectivity metadata. Supports exact server-side filtering by hostname, tags, and ephemeral state.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tags` | array | No | Return only devices containing every specified ACL tag. Tailscale applies repeated tag filters with logical AND. |
| `fields` | string ("all" | "default") | No | Response detail level. 'all' includes routes, connectivity, posture, and SSH fields; 'default' returns Tailscale's smaller standard field set. |
| `tailnet` | string | No | Tailnet name or ID; keep '-' to use the API key's owning tailnet. |
| `hostname` | string | No | Return only devices whose top-level hostname exactly matches this value. |
| `is_ephemeral` | boolean | No | Return only ephemeral devices when true, or non-ephemeral devices when false. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Tailnet Keys

**Slug:** `TAILSCALE_LIST_TAILNET_KEYS`

Return active auth keys, API access tokens, OAuth clients, and federated identities visible in the selected tailnet, without secret key material.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `all` | boolean | No | Set true to return all auth keys, API access tokens, and trust credentials for the tailnet; omit to return keys visible to the caller. |
| `tailnet` | string | No | Tailnet name or ID; keep '-' to use the API key's owning tailnet. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Users

**Slug:** `TAILSCALE_LIST_USERS`

Return users in the selected tailnet, optionally filtered by membership type or role.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `role` | string ("owner" | "member" | "admin" | "it-admin" | "network-admin" | "billing-admin" | "auditor" | "all") | No | Optional exact role filter. Advanced roles may require a paid Tailscale plan. |
| `tailnet` | string | No | Tailnet name or ID; keep '-' to use the API key's owning tailnet. |
| `user_type` | string ("member" | "shared" | "all") | No | Optional exact user-type filter. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Set Device Authorization

**Slug:** `TAILSCALE_SET_DEVICE_AUTHORIZATION`

Approve or revoke approval for one device when device approval is enabled on the tailnet.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `device_id` | string | Yes | Device ID returned by List Tailnet Devices. |
| `authorized` | boolean | Yes | True to approve the device or false to revoke its approval. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Set Device Routes

**Slug:** `TAILSCALE_SET_DEVICE_ROUTES`

Replace the enabled subnet routes for one device with an explicit list of routes. Routes may be enabled before the device advertises them.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `routes` | array | Yes | Complete replacement list of subnet routes to enable. Routes may be enabled before a device advertises them, but do not carry traffic until advertised; pass [] deliberately to disable every enabled route. |
| `device_id` | string | Yes | Device ID returned by List Tailnet Devices. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Set Device Tags

**Slug:** `TAILSCALE_SET_DEVICE_TAGS`

Replace all ACL tags assigned to one Tailscale device.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tags` | array | Yes | Complete replacement tag list using values such as 'tag:server'. Passing [] removes all tags only from a node that is not already tag-owned; a tagged node must be re-authenticated to be untagged. |
| `device_id` | string | Yes | Device ID returned by List Tailnet Devices. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Validate Policy File

**Slug:** `TAILSCALE_VALIDATE_POLICY_FILE`

Validate a hypothetical JSON policy file and run its tests without changing the active Tailscale policy.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `policy` | object | Yes | Complete hypothetical Tailscale policy file as a JSON object. |
| `tailnet` | string | No | Tailnet name or ID; '-' selects the API key's owning tailnet. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
