> ## 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.

# quorum

> Create an authored Quorum node for collecting multiple annotations.

```ts theme={null}
import type { AuthoredQuorumNode, AuthoringIdOptions, QuorumAuthoringSettings } from "@toloka-platform/sdk";

declare function quorum(
  name: string,
  settings: QuorumAuthoringSettings,
  options?: AuthoringIdOptions,
): AuthoredQuorumNode;
```

## Parameters

**name** `string` *required*

Name used to derive the node ID. Also supply `settings.about.name`.

**settings** `QuorumAuthoringSettings` *required*

Configure overlap, audience, labeling interface, onboarding, and quality using the [Quorum node reference](https://docs.platform.toloka.ai/docs/data/reference/nodes/quorum.md).

**Authoring settings**

**about** `QuorumNodeSettings['about']` *required*

Node name and optional description.

**publicName** `string` *required*

Display name for the work.

**entities** `object` *required*

Required `input` and `output` arrays. Each entity uses the [shared entity-binding shape](https://docs.platform.toloka.ai/docs/sdk/reference/generation.md#entity-bindings), including supported `entityType` values, `allowedLabels`, `dynamic`, `maxEntities`, and defaults. Relations also use field objects. Quorum output field schemas must account for [multiple annotations](#entity-fields).

**qualityCriteria** `array` *required*

Each criterion's `targetEntity` is a `Field` object.

**instruction** `string` *required*

Expert instructions.

**ui** `QuorumNodeSettings['ui']` *required*

Labeling-interface source.

**overlap** `number` *required*

Annotation overlap; see [Quorum behavior](https://docs.platform.toloka.ai/docs/data/reference/nodes/quorum.md).

**onboarding** `QuorumNodeSettings['onboarding']` *required*

Expert onboarding settings.

**exam** `object`

Uses field objects for graded entities' `targetEntity` properties.

**options** `AuthoringIdOptions` (default: \{})

Optional identity override.

**Options**

**id** `string`

Explicit graph node ID. Otherwise derived from the node type and name.

Unlike `generation`, this constructor requires explicit instructions, UI, quality criteria, and onboarding. Optional audience, quality assurance, offboarding, and check settings keep their [node reference](https://docs.platform.toloka.ai/docs/data/reference/nodes/quorum.md) meanings.

## Entity fields

Quorum output fields have an outer array for the collected annotations. A static string output uses `{ type: "array", items: { type: "string" } }`. A dynamic string output needs nested arrays:

```json theme={null}
{
  "type": "array",
  "items": {
    "type": "array",
    "items": { "type": "string" }
  }
}
```

For dynamic bindings, set `dynamic: true`, an integer `maxEntities` from 1 to 50, and a `jsonPath` with exactly one `[*]` wildcard. For `SINGLE_LABEL` and `MULTI_LABEL` outputs, supply at least two `allowedLabels` entries with `label` and `value` strings. The [binding example](https://docs.platform.toloka.ai/docs/sdk/reference/generation.md#entity-bindings) shows both forms; change the output field schemas to include Quorum's outer array when using them here.

## Returns

**node** `AuthoredQuorumNode`

A Quorum node with compiled field references.

**Node properties**

**id** `string`

Graph node ID.

**type** `'quorum'`

Node type.

**settings** `QuorumNodeSettings`

Compiled node settings.

**input** `InputPort`

Port for incoming connections.

**output** `OutputPort`

Port for outgoing connections.

Use the [check and apply workflow](https://docs.platform.toloka.ai/docs/sdk/pipelines.md#check-plan-and-apply) to validate the complete node before running it.

This local fixture shows the required constructor fields. Configure audience, pricing, quality, and onboarding for your labeling work before applying it.

```ts theme={null}
import { field, quorum } from "@toloka-platform/sdk";

const answers = field("answers", {
  type: "array",
  items: { type: "string" },
});

export const review = quorum("review", {
  about: { name: "review" },
  publicName: "Review an answer",
  entities: {
    input: [],
    output: [{ field: answers, entityType: "EXPLANATION" }],
  },
  qualityCriteria: [],
  instruction: "Write a brief assessment.",
  ui: {
    code: '<Field.Textarea path="answers" />',
    data: "{}",
    preprocess: "return {};",
    postprocess: "return {};",
    constants: "{}",
  },
  overlap: 3,
  onboarding: {
    enabled: false,
    steps: [],
    info: {
      estimatedTime: "",
      role: "",
      goal: "",
      successCriteria: "",
    },
  },
});
```


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