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

# Create a dataset

> Create a private-by-default dataset whose immutable version pins exact task versions.



## OpenAPI

````yaml /api-reference/openapi.json post /api/v1/users/{user_id}/registry/datasets
openapi: 3.1.0
info:
  title: Synth API Reference
  version: 2026-08-23.alpha
  description: HTTP API for your account, tasks, datasets, agent runs and usage.
servers:
  - url: https://sprites-gateway.api.synthlabs.ai
    description: Synth API
security: []
tags:
  - name: Identity
    description: Manage customer tokens without exposing internal service credentials.
  - name: Registry
    description: >-
      Create, discover, set visibility, version, execute, and inspect results
      for Harbor-compatible tasks and datasets.
  - name: Managed execution
    description: Validate, run, observe, and retrieve Harbor-compatible managed work.
  - name: Usage
    description: Inspect authoritative current rolling quota.
paths:
  /api/v1/users/{user_id}/registry/datasets:
    post:
      tags:
        - Registry
      summary: Create a dataset
      description: >-
        Create a private-by-default dataset whose immutable version pins exact
        task versions.
      operationId: createRegistryDataset
      parameters:
        - in: path
          name: user_id
          required: true
          schema:
            format: uuid
            title: User Id
            type: string
        - in: header
          name: Idempotency-Key
          required: true
          schema:
            maxLength: 100
            minLength: 1
            title: Idempotency-Key
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RegistryDatasetCreateRequest'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegistryCatalogDetail'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      security:
        - UserBearer: []
components:
  schemas:
    RegistryDatasetCreateRequest:
      additionalProperties: false
      description: Publish one immutable dataset version from exact visible task versions.
      properties:
        description:
          anyOf:
            - maxLength: 2000
              type: string
            - type: 'null'
          title: Description
        expected_current_version_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Expected Current Version Id
        name:
          maxLength: 255
          minLength: 1
          pattern: ^[A-Za-z0-9][A-Za-z0-9._-]*$
          title: Name
          type: string
        package_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Package Id
        tags:
          items:
            type: string
          maxItems: 32
          title: Tags
          type: array
        task_refs:
          items:
            type: string
          maxItems: 1000
          minItems: 1
          title: Task Refs
          type: array
        visibility:
          $ref: '#/components/schemas/PackageVisibility'
          default: private
      required:
        - name
        - task_refs
      title: RegistryDatasetCreateRequest
      type: object
    RegistryCatalogDetail:
      additionalProperties: false
      description: One package and its immutable published version history.
      properties:
        contract_version:
          const: synth.registry.v1
          default: synth.registry.v1
          enum:
            - synth.registry.v1
          title: Contract Version
          type: string
        package:
          $ref: '#/components/schemas/RegistryCatalogItem'
        version_limit:
          default: 1000
          maximum: 1000
          minimum: 1
          title: Version Limit
          type: integer
        version_offset:
          default: 0
          minimum: 0
          title: Version Offset
          type: integer
        version_total:
          minimum: 0
          title: Version Total
          type: integer
        versions:
          items:
            $ref: '#/components/schemas/RegistryPackageVersion'
          title: Versions
          type: array
      required:
        - package
        - versions
        - version_total
      title: RegistryCatalogDetail
      type: object
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          title: Detail
          type: array
      title: HTTPValidationError
      type: object
    PackageVisibility:
      enum:
        - private
        - org
        - public
      title: PackageVisibility
      type: string
    RegistryCatalogItem:
      additionalProperties: false
      description: Safe package summary without storage, actor, or tenant identifiers.
      properties:
        access:
          $ref: '#/components/schemas/RegistryCatalogAccess'
        canonical_ref:
          maxLength: 511
          minLength: 3
          title: Canonical Ref
          type: string
        created_at:
          format: date-time
          title: Created At
          type: string
        current_version_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Current Version Id
        description:
          anyOf:
            - maxLength: 2000
              type: string
            - type: 'null'
          title: Description
        display_name:
          anyOf:
            - maxLength: 255
              type: string
            - type: 'null'
          title: Display Name
        id:
          format: uuid
          title: Id
          type: string
        kind:
          $ref: '#/components/schemas/PackageKind'
        mutable:
          title: Mutable
          type: boolean
        name:
          maxLength: 255
          minLength: 1
          title: Name
          type: string
        namespace:
          maxLength: 255
          minLength: 1
          title: Namespace
          type: string
        updated_at:
          format: date-time
          title: Updated At
          type: string
        visibility:
          $ref: '#/components/schemas/PackageVisibility'
      required:
        - id
        - kind
        - namespace
        - name
        - canonical_ref
        - visibility
        - access
        - mutable
        - created_at
        - updated_at
      title: RegistryCatalogItem
      type: object
    RegistryPackageVersion:
      additionalProperties: false
      description: >-
        Customer-safe immutable version identity without storage implementation
        fields.
      properties:
        content_digest:
          pattern: ^sha256:[0-9a-f]{64}$
          title: Content Digest
          type: string
        id:
          format: uuid
          title: Id
          type: string
        immutable_ref:
          maxLength: 640
          minLength: 3
          title: Immutable Ref
          type: string
        media_type:
          maxLength: 255
          minLength: 1
          title: Media Type
          type: string
        member_limit:
          default: 0
          maximum: 1000
          minimum: 0
          title: Member Limit
          type: integer
        member_offset:
          default: 0
          minimum: 0
          title: Member Offset
          type: integer
        member_total:
          anyOf:
            - minimum: 0
              type: integer
            - type: 'null'
          title: Member Total
        members:
          items:
            $ref: '#/components/schemas/RegistryDatasetMember'
          title: Members
          type: array
        published_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Published At
        revision:
          minimum: 1
          title: Revision
          type: integer
        size_bytes:
          minimum: 0
          title: Size Bytes
          type: integer
        tags:
          items:
            type: string
          title: Tags
          type: array
        yank_reason:
          anyOf:
            - maxLength: 1000
              type: string
            - type: 'null'
          title: Yank Reason
        yanked_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Yanked At
      required:
        - id
        - revision
        - content_digest
        - immutable_ref
        - media_type
        - size_bytes
      title: RegistryPackageVersion
      type: object
    ValidationError:
      properties:
        ctx:
          title: Context
          type: object
        input:
          title: Input
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          title: Location
          type: array
        msg:
          title: Message
          type: string
        type:
          title: Error Type
          type: string
      required:
        - loc
        - msg
        - type
      title: ValidationError
      type: object
    RegistryCatalogAccess:
      description: Why the authenticated customer can read one package.
      enum:
        - owned
        - organization
        - public
      title: RegistryCatalogAccess
      type: string
    PackageKind:
      enum:
        - task
        - dataset
      title: PackageKind
      type: string
    RegistryDatasetMember:
      additionalProperties: false
      description: One exact task version contained by an immutable dataset version.
      properties:
        position:
          minimum: 0
          title: Position
          type: integer
        task_content_digest:
          pattern: ^sha256:[0-9a-f]{64}$
          title: Task Content Digest
          type: string
        task_ref:
          maxLength: 640
          minLength: 3
          title: Task Ref
          type: string
        task_version_id:
          format: uuid
          title: Task Version Id
          type: string
      required:
        - position
        - task_version_id
        - task_content_digest
        - task_ref
      title: RegistryDatasetMember
      type: object
  securitySchemes:
    UserBearer:
      description: Synth customer access token for the current user and organization.
      scheme: bearer
      type: http

````

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