---
title: "Validate a test suite without deploying it."
method: POST
path: "/testsuite/validate"
tags: ["Test suites", "Development tools"]
---

# Validate a test suite without deploying it.

`POST /testsuite/validate`

Runs the full test suite validation used at deployment time, without deploying the test suite or otherwise affecting the Test Bed's state. As no target specification is provided, references to external actors and domain parameters are not checked against a specific domain; they are instead reported as information messages listing what the test suite expects to be available at runtime.

## Request body

- TestSuiteValidateViaBase64Request — Information on the test suite to validate when the call is made as JSON. Exactly one of 'testSuite' (base64-encoded archive) or 'testSuiteUri' (remote URI) must be provided.
  - `testSuite` string, base64 — The test suite archive to validate provided as a Base64-encoded string. Mutually exclusive with 'testSuiteUri'.
  - `testSuiteUri` string, uri — The URI from which to read the test suite archive. The server will fetch the archive from this address. Mutually exclusive with 'testSuite'.

## Response `200`

Test suite validated

- TestSuiteValidationResponse — Response for the test suite validate operation.
  - `valid` boolean, required — Whether or not the test suite is valid (i.e. no errors were found). Warnings do not affect this flag.
  - `errors` TestSuiteValidationReportItem[] — The list of errors resulting from the test suite's validation.
    - `description` string, required — The finding's description.
    - `location` string — The path of the resource within the test suite that resulted in this finding.
  - `warnings` TestSuiteValidationReportItem[] — The list of warnings resulting from the test suite's validation.
    - `description` string, required — The finding's description.
    - `location` string — The path of the resource within the test suite that resulted in this finding.
  - `messages` TestSuiteValidationReportItem[] — The list of information messages resulting from the test suite's validation. This includes references made by the test suite to external actors and domain parameters, which are not checked against a specific domain by this operation.
    - `description` string, required — The finding's description.
    - `location` string — The path of the resource within the test suite that resulted in this finding.

## Other responses

- `400` — The request was not valid and could not be processed. This may indicate a malformed or invalid JSON payload, a missing or invalid API key, missing required fields, or a business-level validation error.
- `403` — Access denied. The API key provided does not have the required permissions to perform this operation.
- `429` — Call rate limit threshold exceeded for this operation.
- `500` — An unexpected server error occurred. The error_id field in the response body (when present) can be used to correlate the error with server logs.

## Changes

- **2026-08-05** `26fb91f21fa6` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/ec-jrc/apis/interoperability-test-bed-rest-api/changes/testsuite/validate/post.md)

---

[API](https://skmtc.dev/ec-jrc/apis/interoperability-test-bed-rest-api.md) · [All operations](https://skmtc.dev/ec-jrc/apis/interoperability-test-bed-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ec-jrc/apis/interoperability-test-bed-rest-api/revisions/26fb91f21fa6?raw)
