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

# Tokens

> client.tokens — manage workspace authentication tokens

```typescript theme={null}
const { token } = await airstore.tokens.create('ws_abc123', { name: 'vm-mount' })
```

Tokens provide workspace-scoped authentication for the CLI and programmatic access. Use them to mount Airstore on headless VMs or CI runners without interactive login.

***

## create()

Create a workspace token.

```typescript theme={null}
const result = await airstore.tokens.create('ws_abc123', {
  name: 'production-vm',
  expiresIn: 86400, // 24 hours
})

console.log(result.token)            // "tok_xxxxxxxxxxxx"
console.log(result.info.external_id) // "tkn_abc123"
```

<Warning>
  The raw `token` value is only returned at creation time. Store it securely.
</Warning>

**Parameters**

| Parameter | Type | Required | Default | Description |
| - | - | - | - | - |
| `workspaceId` | `string` | Yes | -- | Workspace external ID |
| `name` | `string` | No | -- | Display name for the token |
| `memberId` | `string` | No | -- | Member ID to associate the token with |
| `email` | `string` | No | -- | Email to auto-create a member if `memberId` not provided |
| `expiresIn` | `number` | No | `0` | Expiration in seconds (`0` = no expiration) |

**Returns** `Promise<TokenCreated>`

| Field | Type | Description |
| - | - | - |
| `token` | `string` | Raw token value (shown once) |
| `info` | `Token` | Token metadata |
| `info.external_id` | `string` | Unique identifier |
| `info.name` | `string` | Display name |
| `info.token_type` | `string` | Token type |
| `info.created_at` | `string` | ISO 8601 timestamp |
| `member_id` | `string \| undefined` | Auto-created member ID |

***

## list()

List tokens in a workspace. Returns metadata only -- raw token values are never exposed after creation.

```typescript theme={null}
const tokens = await airstore.tokens.list('ws_abc123')

for (const t of tokens) {
  console.log(`${t.name} -- last used: ${t.last_used_at ?? 'never'}`)
}
```

**Parameters**

| Parameter | Type | Required | Description |
| - | - | - | - |
| `workspaceId` | `string` | Yes | Workspace external ID |

**Returns** `Promise<Token[]>`

| Field | Type | Description |
| - | - | - |
| `external_id` | `string` | Unique identifier |
| `name` | `string` | Display name |
| `token_type` | `string` | Token type |
| `created_at` | `string` | ISO 8601 timestamp |
| `last_used_at` | `string \| undefined` | Last usage timestamp |

***

## revoke()

Revoke a token. It stops working immediately.

```typescript theme={null}
await airstore.tokens.revoke('ws_abc123', 'tkn_abc123')
```

**Parameters**

| Parameter | Type | Required | Description |
| - | - | - | - |
| `workspaceId` | `string` | Yes | Workspace external ID |
| `tokenId` | `string` | Yes | Token external ID |

**Returns** `Promise<void>`


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