---
title: "Create signup field values"
method: POST
path: "/v2/signup-field-values/"
tags: ["Signup Field Values"]
---

# Create signup field values

`POST /v2/signup-field-values/`

Bulk-create or update signup field values for a student.

Each item in ``data`` identifies a signup field by ``id`` (obfuscated
``SignupField`` pk) and sets its value for the given student. Existing
values are overwritten (upsert). Response is 200 if all items succeed,
207 if any fail, 400 if the batch is empty, 404 if the student is unknown
or has no memberships in the organization.

**Required OAuth scope:** `signup-fields:write`

## Request body

- SignupFieldValueCreateRequestEnvelope — Request envelope for bulk-creating signup field values.
  - `student_id` string, required — Obfuscated student ID.
  - `data` SignupFieldValueCreateData[], required
    - `type` 'signup-field-values', required
    - `id` string, required — Obfuscated signup-field ID.
    - `attributes` SignupFieldValueCreateAttributes, required
      - `value` string, required — The student's answer for this field.

## Response `200`

OK

- BatchResultEnvelopeSignupFieldValueResource
  - `data` union[], required — Per-item results in request order.
    - union
      - BatchSucceededItemSignupFieldValueResource
        - `status` 'succeeded'
        - `id` string, nullable — Resource ID of the created or updated resource.
        - `result` SignupFieldValueResource, required — JSON:API resource object for a signup field value.
          - `type` string — Always "signup-field-values".
          - `id` string, required — Opaque signup-field-value ID.
          - `attributes` SignupFieldValueAttributes, required — Attributes of a signup-field-value resource.
            - `label` string, required — The signup field's display label.
            - `value` string, required — The student's answer for this field.
          - `relationships` SignupFieldValueRelationships, required — Relationships of a signup-field-value resource.
            - `student` StudentRelationship, required — To-one linkage to a student; ``data`` is null when there is no student.
              - …
            - `signup-field` SignupFieldRelationship, required — To-one linkage to a signup field.
              - …
      - BatchFailedItem — Wrapper for a failed item in a 207 batch response.
        - `status` 'failed'
        - `id` string, nullable — Echoed resource ID if the input identified a row.
        - `error` BatchItemError, required — Per-item error inside a 207 batch response. Aligned with JSON:API ``ErrorObject`` field naming (``code`` rather than ``reason``) so consumers can reuse error-handling logic across document-level errors (``ErrorObject`` in ``ErrorEnvelope``) and per-item errors (here). Differences from ``ErrorObject``: ``status``/``title`` are omitted because they're redundant for the 207-batch context (HTTP status is on the envelope, and the title is derivable from ``code``).
          - `code` 'duplicate_email' | 'duplicate_in_batch' | 'duplicate_name' | 'validation_error' | 'not_found' | 'internal_error' | 'not_in_domain' | 'already_enrolled' | 'already_published', required — Machine-readable error code.
          - `source` object, nullable — Pointer to the offending input slot, e.g. {"pointer": "/data/0/attributes/email"}.
          - `detail` string, nullable — Human-readable explanation of the error.
  - `summary` BatchSummary, required — Aggregate counts for a 207 batch response. Invariant: ``succeeded + failed == total``. Enforced by ``@model_validator``.
    - `total` integer, required — Total number of items submitted.
    - `succeeded` integer, required — Number of items that succeeded.
    - `failed` integer, required — Number of items that failed.

## Other responses

- `207` — Multi-Status
- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `422` — Unprocessable Entity

---

[API](https://skmtc.net/skilljar/apis/skilljar-api-v2.md) · [All operations](https://skmtc.net/skilljar/apis/skilljar-api-v2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/skilljar/skilljar-api-v2/revisions/f8025de20169/schema)
