---
title: "POST /model-hub/scores/bulk/"
method: POST
path: "/model-hub/scores/bulk/"
tags: ["model-hub"]
---

# POST /model-hub/scores/bulk/

`POST /model-hub/scores/bulk/`

## Request

- Base URL: `http://localhost:8000`
- URL: `http://localhost:8000/model-hub/scores/bulk/`
- Auth: one of:
  - API key in header `X-Api-Key`
  - API key in header `X-Secret-Key`

Create multiple scores on a single source (e.g. from inline annotator).

## Request body

- BulkCreateScores
  - `source_type` 'dataset_row' | 'trace' | 'observation_span' | 'prototype_run' | 'call_execution' | 'trace_session', required
  - `source_id` string, required
  - `scores` BulkCreateScoreItem[], required
    - `label_id` string, uuid, required
    - `value` object, required
    - `notes` string
    - `score_source` 'human' | 'api' | 'auto' | 'imported'
  - `notes` string
  - `span_notes` string, nullable
  - `span_notes_source_id` string, nullable
  - `queue_item_id` string, uuid, nullable
  - `project_id` string, uuid, nullable: Tracer project the trace / span was opened from. The same id can exist in several projects; when supplied, the score is written to that project's copy.

## Response `200`

OK

- BulkCreateScoresResponse
  - `status` boolean
  - `result` BulkCreateScoresResult, required
    - `scores` Score[], required
      - `id` string, uuid
      - `source_type` 'dataset_row' | 'trace' | 'observation_span' | 'prototype_run' | 'call_execution' | 'trace_session', required
      - `source_id` string
      - `label_id` string, uuid
      - `label_name` string
      - `label_type` string
      - `label_settings` object
      - `label_allow_notes` boolean
      - `value` object, required
      - `value_history` object
      - `score_source` 'human' | 'api' | 'auto' | 'imported'
      - `notes` string, nullable
      - `annotator` string, uuid, nullable
      - `annotator_name` string
      - `annotator_email` string
      - `queue_item` string, uuid, nullable
      - `queue_id` string
      - `created_at` string, date-time
      - `updated_at` string, date-time
    - `errors` string[], required

## Other responses

- `400`: Bad Request
- `403`: Forbidden
- `404`: Not Found
- `409`: Conflict
- `500`: Internal Server Error
- `default`: Default error response

---

[API](https://skmtc.dev/futureagi/apis/future-agi-management-api.md) · [All operations](https://skmtc.dev/futureagi/apis/future-agi-management-api/llms.txt) · [OpenAPI document](https://skmtc.dev/futureagi/apis/future-agi-management-api/revisions/c8684118e142?raw)
