---
title: "Request revalidation of draft roster rows (dispatch or pre-processing queue)"
method: POST
path: "/roster-records/{rosterId}/revalidate"
tags: ["RosterRecord"]
---

# Request revalidation of draft roster rows (dispatch or pre-processing queue)

`POST /roster-records/{rosterId}/revalidate`

If the user is an internal provider data admin, sets roster status to REVALIDATE and dispatches validation asynchronously (Pub/Sub or Cloud Run Job) so FAILED rows are re-run. Otherwise sets status to PRE_PROCESSING without validation dispatch. Disabled when roster.rows.draft-revalidation.enabled=false.

## Path parameters

- `rosterId` string, required

## Headers

- `tenant-id` string, required

## Response `202`

Request accepted; response `status` is REVALIDATE (admin) or PRE_PROCESSING (non-admin)

- RosterRowsRevalidateResponse — Summary after confirm revalidation of VALIDATION_FAILED rows
  - `processed` integer — Total VALIDATION_FAILED rows examined
  - `validated` integer — Rows that passed validation
  - `validationFailed` integer — Rows that failed validation
  - `status` string — Roster revalidation status (e.g. REVALIDATE when async dispatch accepted)

## Other responses

- `400` — Invalid request
- `401` — Unauthorized - Authentication required
- `403` — Forbidden - Insufficient permissions
- `404` — Roster job not found
- `409` — Roster is already being revalidated or processed
- `503` — Feature disabled via roster.rows.draft-revalidation.enabled

---

[API](https://skmtc.net/certifyos/apis/certify-api-layer.md) · [All operations](https://skmtc.net/certifyos/apis/certify-api-layer/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/certifyos/certify-api-layer/revisions/3d27e9019c7b/schema)
