---
title: "Upsert Dataset Records Bulk"
method: PUT
path: "/datasets/{dataset_id}/records/bulk"
tags: ["datasets"]
---

# Upsert Dataset Records Bulk

`PUT /datasets/{dataset_id}/records/bulk`

## Path parameters

- `dataset_id` string, uuid, required

## Request body

- RecordsBulkUpsert
  - `items` RecordUpsert[], required
    - `fields` object, nullable
    - `metadata` object, nullable
    - `external_id` string, nullable
    - `reference` string, nullable — An external reference (e.g. a DOI) for the record's source document
    - `responses` union[], nullable
      - union
        - UserSubmittedResponseCreate
          - `user_id` string, uuid, required
          - `values` object, required
          - `status` 'submitted', required
        - UserDraftResponseCreate
          - `user_id` string, uuid, required
          - `values` object, required
          - `status` 'draft', required
        - UserDiscardedResponseCreate
          - `user_id` string, uuid, required
          - `values` object, nullable
          - `status` 'discarded', required
    - `suggestions` SuggestionCreate[], nullable
      - `question_id` string, uuid, required
      - `type` 'model' | 'human' | 'selection'
      - `value` union, required
        - SpanQuestionResponseValueItem[]
          - `label` string, required
          - `start` integer, required
          - `end` integer, required
        - RankingQuestionResponseValueItem[]
          - `value` string, required
          - `rank` integer, nullable
        - string[]
        - integer
        - string
        - object
        - object[]
      - `agent` string, nullable — Agent used to generate the suggestion
      - `score` union — The score assigned to the suggestion
        - number
        - number[]
    - `vectors` object, nullable
    - `id` string, uuid, nullable

## Response `200`

Successful Response

- RecordsBulk
  - `items` Record[], required
    - `id` string, uuid, required
    - `status` 'pending' | 'completed', required
    - `fields` object, required
    - `metadata` object, nullable
    - `external_id` string, nullable
    - `reference` string, nullable
    - `responses` Response[], nullable
      - `id` string, uuid, required
      - `values` object, nullable
      - `status` 'draft' | 'submitted' | 'discarded', required
      - `record_id` string, uuid, required
      - `user_id` string, uuid, required
      - `inserted_at` string, date-time, required
      - `updated_at` string, date-time, required
    - `suggestions` Suggestion[], nullable
      - `question_id` string, uuid, required
      - `type` 'model' | 'human' | 'selection'
      - `value` unknown, required
      - `agent` string, nullable
      - `score` union
        - number
        - number[]
      - `id` string, uuid, required
      - `inserted_at` string, date-time, required
      - `updated_at` string, date-time, required
    - `vectors` object, nullable
    - `dataset_id` string, uuid, required
    - `inserted_at` string, date-time, required
    - `updated_at` string, date-time, required

## Other responses

- `400` — Bad Request
- `403` — Forbidden
- `404` — Not Found
- `409` — Conflict
- `422` — Unprocessable Content
- `500` — Internal Server Error

## Changes

- **2026-08-24** `ca32894f988c` — 10 breaking, 4 info
  - removed `subschema #6, subschema #7` from the `items/items/responses/anyOf[subschema #1]/items/oneOf[subschema #1: UserSubmittedResponseCreate]/values/additionalProperties/value` request property `anyOf` list
  - removed `subschema #6, subschema #7` from the `items/items/responses/anyOf[subschema #1]/items/oneOf[subschema #2: UserDraftResponseCreate]/values/additionalProperties/value` request property `anyOf` list
  - removed `subschema #6, subschema #7` from the `items/items/responses/anyOf[subschema #1]/items/oneOf[subschema #3: UserDiscardedResponseCreate]/values/anyOf[subschema #1]/additionalProperties/value` request property `anyOf` list
  - removed `subschema #6, subschema #7` from the `items/items/suggestions/anyOf[subschema #1]/items/value` request property `anyOf` list
  - …10 more
- …earlier changes not shown

[Full history](https://skmtc.dev/hf/apis/extralit-v1/changes/datasets/:dataset_id/records/bulk/put.md)

---

[API](https://skmtc.dev/hf/apis/extralit-v1.md) · [All operations](https://skmtc.dev/hf/apis/extralit-v1/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/hf/extralit-v1/revisions/ca32894f988c/schema)
