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

# Create Dataset

> Upload a CSV or Parquet file to create a new dataset or add a new version.

Maximum file size is 30 MB. For larger files, use the [signed-URL upload flow](/api-reference/datasets#large-file-uploads).


## OpenAPI

````yaml /openapi.json post /datasets
openapi: 3.1.0
info:
  title: Woodwide API
  description: API service for the Woodwide platform
  version: 0.1.0
servers:
  - url: https://api.woodwide.ai
    description: Production
security: []
paths:
  /datasets:
    post:
      tags:
        - Datasets
      summary: Create Dataset
      description: >-
        Upload a CSV or Parquet file to create a new dataset or add a new
        version.
      operationId: create_single_file_dataset_datasets_post
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: >-
                #/components/schemas/Body_create_single_file_dataset_datasets_post
            example:
              file: train.csv
              dataset_name: my_dataset
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DatasetIngestResponse'
              example:
                dataset:
                  id: a1b2c3d4-0000-0000-0000-000000000001
                  version_id: a1b2c3d4-0000-0000-0000-000000000002
                  version_number: 1
                job_id: a1b2c3d4-0000-0000-0000-000000000003
                status: queued
        '401':
          description: Unauthorized -- API key is missing or invalid.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    example: Not authenticated
        '403':
          description: >-
            Forbidden -- your API key does not have permission for this
            resource.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    example: Forbidden
        '404':
          description: Not Found -- the requested resource does not exist.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    example: Not found
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '429':
          description: >-
            Too Many Requests -- you have exceeded the rate limit. Heavy
            operations (training, inference, dataset uploads) are limited to 60
            requests per minute per API key. All other endpoints are limited to
            600 requests per minute per API key.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    example: Rate limit exceeded. Retry after a short delay.
      security:
        - HTTPBearer: []
components:
  schemas:
    Body_create_single_file_dataset_datasets_post:
      properties:
        file:
          type: string
          contentMediaType: application/octet-stream
          title: File
          description: 'The file to upload. Maximum file size: 30 MB.'
        dataset_name:
          type: string
          title: Dataset Name
        dataset_id:
          type: string
          format: uuid
          title: Dataset Id
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
        override:
          type: boolean
          title: Override
          description: >-
            When `true`, replaces the data in the current version instead of
            creating a new version. Defaults to `false`.
          default: false
      type: object
      required:
        - file
      title: Body_create_single_file_dataset_datasets_post
    DatasetIngestResponse:
      properties:
        dataset:
          $ref: '#/components/schemas/DatasetVersionRef'
        job_id:
          type: string
          format: uuid
        status:
          $ref: '#/components/schemas/JobStatus'
      type: object
      title: DatasetIngestResponse
      description: Response for dataset creation/ingestion.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
      description: Returned when request parameters or body fail validation.
    DatasetVersionRef:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        version_id:
          type: string
          format: uuid
          title: Version Id
        version_number:
          type: integer
          title: Version Number
      type: object
      required:
        - id
        - version_id
        - version_number
      title: DatasetVersionRef
      description: Dataset version reference.
    JobStatus:
      type: string
      enum:
        - initializing
        - pending
        - queued
        - running
        - succeeded
        - failed
        - canceled
        - rejected
        - waiting_for_upload
      title: JobStatus
    ValidationError:
      type: object
      required:
        - loc
        - msg
        - type
      properties:
        loc:
          type: array
          items:
            type: string
          title: Location
          description: Path to the field that caused the error.
        msg:
          type: string
          title: Message
          description: Human-readable error message.
        type:
          type: string
          title: Error Type
          description: Machine-readable error type identifier.
      title: ValidationError
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer

````