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

# List inferred dataset fields

> Returns nested field names, paths, and JSON Schemas inferred from the first file upload that passes validation. Later uploads are checked against that schema and do not refresh it. The `fields` array is empty until this inference completes.



## OpenAPI

````yaml /api-reference/openapi.json get /datasets/{datasetId}/inferred-fields
openapi: 3.1.0
info:
  description: >-
    Manage projects, datasets, labeling pipelines, and model training. **Beta:**
    endpoints, request and response shapes, and error contracts can change
    without notice or a backward-compatibility promise.
  title: Toloka Platform API
  version: 2.0.0
servers:
  - url: https://platform.toloka.ai/api/v2-beta
security:
  - apiKeyAuth: []
  - scopedTokenAuth: []
tags:
  - description: The authenticated API key owner.
    name: Account
  - description: A project is the container for pipelines, datasets, and files.
    name: Projects
  - description: Rows and typed fields. Field schemas are immutable once created.
    name: Datasets
  - description: Append rows to a dataset from a file.
    name: Dataset uploads
  - description: Read a dataset out as a file.
    name: Dataset exports
  - description: A pipeline is a graph of nodes that processes each dataset item.
    name: Pipelines
  - description: The nodes, connections, fields, and version of a pipeline graph.
    name: Pipeline graph
  - description: Execute a pipeline over a dataset and inspect each item.
    name: Runs
  - description: Per-node checks that a pipeline must pass before deployment.
    name: Checks
  - description: Named credentials available to pipeline code.
    name: Secrets
  - description: Project files available to pipeline code and labeling interfaces.
    name: Files
  - description: >-
      Global, read-only catalog of the models a synthetic generation node can
      use, with their budget bounds.
    name: Generation models
  - description: >-
      Global, read-only catalog of the expert audience: the values a node
      `audience` filter can use.
    name: Audience
  - description: >-
      Project lists of experts a node can take its workforce from with
      `audienceMode: service`. Available only to teams with the audience service
      enabled.
    name: Expert lists
  - description: >-
      Experts banned in a project: they cannot be invited and are removed from
      the work they are in. Available only to teams with expert bans enabled.
    name: Expert ban list
  - description: Global, read-only base model catalog.
    name: Base models
  - description: Project-owned mutable model-training drafts.
    name: Trainings
  - description: Project-owned Models and immutable Model Versions.
    name: Models
  - name: Batch inference
paths:
  /datasets/{datasetId}/inferred-fields:
    get:
      tags:
        - Datasets
      summary: List inferred dataset fields
      description: >-
        Returns nested field names, paths, and JSON Schemas inferred from the
        first file upload that passes validation. Later uploads are checked
        against that schema and do not refresh it. The `fields` array is empty
        until this inference completes.
      operationId: getDatasetInferredFields
      parameters:
        - in: path
          name: datasetId
          required: true
          schema:
            $ref: '#/components/schemas/DatasetId'
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  fields:
                    description: >-
                      Nested fields inferred from the first validated dataset
                      upload.
                    items:
                      $ref: '#/components/schemas/InferredField'
                    type: array
                required:
                  - fields
                type: object
          description: Get inferred dataset fields
          headers:
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
        '404':
          description: Dataset not found
          headers:
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
        '429':
          description: Rate limit exceeded
          headers:
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
      x-codeSamples:
        - label: TypeScript SDK
          lang: typescript
          source: |
            import { createClient } from "@toloka-platform/sdk";

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

            const inferredFields = await client.datasets.getInferredFields({
              datasetId: "ds.019a0000-0000-7000-8000-000000000001"
            });
            console.log(inferredFields);
components:
  schemas:
    DatasetId:
      description: Dataset ID with prefix `ds.`.
      pattern: >-
        ^ds\.[0-9a-f]{8}-[0-9a-f]{4}-[7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
      type: string
    InferredField:
      description: A nested field inferred from a dataset upload.
      properties:
        depth:
          description: The nesting depth of this field.
          maximum: 9007199254740991
          minimum: 0
          type: integer
        jsonPath:
          description: The JSONPath locating this field in a dataset item.
          type: string
        jsonSchema:
          $ref: '#/components/schemas/JsonSchema'
          description: The JSON Schema inferred for values at this path.
        name:
          description: The field name at this path.
          type: string
      required:
        - name
        - jsonPath
        - depth
        - jsonSchema
      type: object
    JsonSchema:
      additionalProperties: false
      description: JSON Schema defining the accepted values for a field.
      properties:
        additionalProperties:
          anyOf:
            - description: >-
                Whether extra object properties are allowed, or the schema they
                must satisfy; omitted means allowed.
              type: boolean
            - $ref: '#/components/schemas/JsonSchema'
              description: >-
                Whether extra object properties are allowed, or the schema they
                must satisfy; omitted means allowed.
          description: >-
            Whether extra object properties are allowed, or the schema they must
            satisfy; omitted means allowed.
        allOf:
          description: Combined schemas; a value must satisfy every schema when supplied.
          items:
            $ref: '#/components/schemas/JsonSchema'
            description: JSON Schema defining the accepted values for a field.
          minItems: 1
          type: array
        anyOf:
          description: >-
            Alternative schemas; a value must satisfy at least one when
            supplied.
          items:
            $ref: '#/components/schemas/JsonSchema'
            description: JSON Schema defining the accepted values for a field.
          minItems: 1
          type: array
        const:
          $ref: '#/components/schemas/JsonValue'
          description: Single required JSON value; omit when no exact value is required.
        default:
          $ref: '#/components/schemas/JsonValue'
          description: Suggested default JSON value; omit when none is specified.
        description:
          description: Optional explanation of the values accepted by this schema.
          type: string
        enum:
          description: >-
            Allowed JSON values; omit to allow any value satisfying the other
            constraints.
          items:
            $ref: '#/components/schemas/JsonValue'
          minItems: 1
          type: array
        examples:
          description: Example JSON values for this schema; omit when none are supplied.
          items:
            $ref: '#/components/schemas/JsonValue'
          type: array
        exclusiveMaximum:
          description: Exclusive upper bound for a number; omit when none is required.
          type: number
        exclusiveMinimum:
          description: Exclusive lower bound for a number; omit when none is required.
          type: number
        format:
          description: >-
            String format, such as `date-time`, `email`, or `uri`; omit when no
            format is required.
          type: string
        items:
          $ref: '#/components/schemas/JsonSchema'
          description: >-
            Schema that every array item must satisfy; omit to leave items
            unrestricted.
        maxItems:
          description: Maximum number of array items; omit for no upper bound.
          maximum: 9007199254740991
          minimum: 0
          type: integer
        maxLength:
          description: >-
            Maximum string length in Unicode characters; omit for no upper
            bound.
          maximum: 9007199254740991
          minimum: 0
          type: integer
        maximum:
          description: Inclusive upper bound for a number; omit for no upper bound.
          type: number
        minItems:
          description: Minimum number of array items; omit for no lower bound.
          maximum: 9007199254740991
          minimum: 0
          type: integer
        minLength:
          description: >-
            Minimum string length in Unicode characters; omit for no lower
            bound.
          maximum: 9007199254740991
          minimum: 0
          type: integer
        minimum:
          description: Inclusive lower bound for a number; omit for no lower bound.
          type: number
        oneOf:
          description: Alternative schemas; a value must satisfy exactly one when supplied.
          items:
            $ref: '#/components/schemas/JsonSchema'
            description: JSON Schema defining the accepted values for a field.
          minItems: 1
          type: array
        pattern:
          description: >-
            Regular expression a string must match; omit for no pattern
            constraint.
          type: string
        properties:
          $ref: '#/components/schemas/JsonSchemaProperties'
          description: Schemas for named object properties; omit when none are specified.
        required:
          description: >-
            Object property names that must be present; omit when none are
            required.
          items:
            type: string
          type: array
        title:
          description: Optional display title for this schema.
          type: string
        type:
          anyOf:
            - description: Accepted JSON type or types; omit to allow any type.
              enum:
                - string
                - number
                - integer
                - boolean
                - object
                - array
                - 'null'
              type: string
            - description: Accepted JSON type or types; omit to allow any type.
              items:
                enum:
                  - string
                  - number
                  - integer
                  - boolean
                  - object
                  - array
                  - 'null'
                type: string
              minItems: 1
              type: array
          description: Accepted JSON type or types; omit to allow any type.
        uniqueItems:
          description: >-
            Whether array items must be unique; omitted means duplicates are
            allowed.
          type: boolean
      type: object
    JsonValue:
      anyOf:
        - type: string
        - type: number
        - type: boolean
        - type: 'null'
        - items:
            $ref: '#/components/schemas/JsonValue'
          type: array
        - additionalProperties:
            $ref: '#/components/schemas/JsonValue'
          propertyNames:
            type: string
          type: object
    JsonSchemaProperties:
      additionalProperties:
        $ref: '#/components/schemas/JsonSchema'
      propertyNames:
        type: string
      type: object
  headers:
    RateLimit-Limit:
      description: The maximum number of requests allowed in the current window.
      schema:
        type: integer
    RateLimit-Policy:
      description: The rate limit policy (e.g., "60;w=60").
      schema:
        type: string
    RateLimit-Remaining:
      description: The number of requests remaining in the current window.
      schema:
        type: integer
    RateLimit-Reset:
      description: The number of seconds until the current window resets.
      schema:
        type: integer
    X-Request-Id:
      description: >-
        The request id: the X-Request-Id you sent when it is 1-128 characters of
        letters, digits, ".", "_" or "-", otherwise a generated UUID. Present on
        every response, including errors; quote it when reporting a problem.
      schema:
        type: string
  securitySchemes:
    apiKeyAuth:
      description: >-
        Enter `ApiKey <your-api-key>` in Authorization, including the `ApiKey `
        prefix. In cURL and Python samples, `<api-key>` means this full value.
        The TypeScript SDK adds the prefix for you.
      in: header
      name: Authorization
      type: apiKey
    scopedTokenAuth:
      description: >-
        Enter the project-scoped token as `pst_...` in X-Scoped-Token, without
        an `ApiKey ` prefix. Create a token with POST
        /projects/{projectId}/tokens.
      in: header
      name: X-Scoped-Token
      type: apiKey

````

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