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

# client.audience.specializations.listAll()

> List expert specializations.

Return a page of expert specializations and eligible expert counts, sorted by name and ID. The default and maximum page size is 1000. Use each result's `id` as `qualificationId` and `name` as `value` in `audience.specializations.values[]`.

The `listAll*` variant yields items across every page. The other variant returns one page with pagination metadata. See [Pagination](https://docs.platform.toloka.ai/docs/sdk/pagination.md).

## Signature

Method signatures on `client.audience.specializations`:

```ts theme={null}
listAll(args?: {
  limit?: number;
  offset?: number;
}): AsyncGenerator<Specialization>;

listPage(args?: {
  limit?: number;
  offset?: number;
}): Promise<{ specializations: Specialization[]; pagination: Pagination }>;
```

## Parameters

### listAll()

The argument object can be omitted.

**limit** `number` (default: 1000)

Maximum number of results to return, from 1 to 1000; defaults to 1000.

**offset** `number` (default: 0)

Number of results to skip before this page; defaults to 0.

### listPage()

The argument object can be omitted.

**limit** `number` (default: 1000)

Maximum number of results to return, from 1 to 1000; defaults to 1000.

**offset** `number` (default: 0)

Number of results to skip before this page; defaults to 0.

## Returns

### listAll() result

`AsyncGenerator<Specialization>`

Yields one item at a time. The fields below describe each yielded item.

An expert specialization (platform qualification) that a node audience can require.

**id** `string` *required*

The platform qualification id. Use it as `qualificationId` in a node audience filter (`audience.specializations.values[]`).

**name** `string` *required*

The human-readable specialization name. Use it as `value` next to the `qualificationId`.

**expertsCount** `number` *required*

How many ID-verified experts currently eligible for tasks hold this specialization.

### listPage() result

`Promise<{ specializations: Specialization[]; pagination: Pagination }>`

**specializations** `Specialization[]` *required*

Expert specializations and eligible expert counts in this page.

**Fields**

**id** `string` *required*

The platform qualification id. Use it as `qualificationId` in a node audience filter (`audience.specializations.values[]`).

**name** `string` *required*

The human-readable specialization name. Use it as `value` next to the `qualificationId`.

**expertsCount** `number` *required*

How many ID-verified experts currently eligible for tasks hold this specialization.

**pagination** `Pagination` *required*

Pagination information for this page.

**Fields**

**total** `number` *required*

Total number of matching results.

**limit** `number` *required*

Maximum number of results requested for this page.

**offset** `number` *required*

Number of results skipped before this page.

**hasMore** `boolean` *required*

Whether more matching results follow this page.

## Errors

HTTP errors throw [`PotatoApiError`](https://docs.platform.toloka.ai/docs/sdk/errors). The endpoint documents these error responses:

| Status | Description |
| - | - |
| 400 | `limit` is not an integer between 1 and 1000, or `offset` is not a non-negative integer |
| 429 | Rate limit exceeded |

HTTP endpoint: [`GET /audience/specializations`](https://docs.platform.toloka.ai/docs/api-reference/audience/list-audience-specializations).

```ts listAll() theme={null}
import { createClient } from "@toloka-platform/sdk";

const client = createClient({
  baseUrl: "https://platform.toloka.ai",
  apiKey: process.env.TOLOKA_API_KEY!,
});

for await (const item of client.audience.specializations.listAll({})) {
  console.log(item);
}
```

```ts listPage() theme={null}
import { createClient } from "@toloka-platform/sdk";

const client = createClient({
  baseUrl: "https://platform.toloka.ai",
  apiKey: process.env.TOLOKA_API_KEY!,
});

const page = await client.audience.specializations.listPage({});
console.log(page);
```

```json listAll() yielded item theme={null}
{
  "id": "<string>",
  "name": "<string>",
  "expertsCount": 0
}
```

```json listPage() theme={null}
{
  "specializations": [
    {
      "id": "<string>",
      "name": "<string>",
      "expertsCount": 0
    }
  ],
  "pagination": {
    "total": 42,
    "limit": 20,
    "offset": 0,
    "hasMore": true
  }
}
```


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