---
layout: api
page_title: Validate - HTTP API
description: |-
  The /validate endpoints are used to validate object structs, fields, and
  types.
---

# Validate HTTP API

The `/validate` endpoints are used to validate object structs, fields, and
types.

## Validate Job

This endpoint validates a Nomad job file. The local Nomad agent forwards the
request to the leader. In the event the leader cannot be reached the agent verifies
the job file locally but skips validating driver configurations.

~> This endpoint accepts a **JSON job file**, not an HCL job file.

| Method | Path               | Produces           |
| ------ | ------------------ | ------------------ |
| `POST` | `/v1/validate/job` | `application/json` |

The table below shows this endpoint's support for
[blocking queries](/api-docs#blocking-queries) and
[required ACLs](/api-docs#acls).

| Blocking Queries | ACL Required         |
| ---------------- | -------------------- |
| `NO`             | `namespace:read-job` |

### Parameters

There are no parameters, but the request _body_ contains the entire job file.

### Sample Payload

```text
(any valid nomad job IN JSON FORMAT)
```

### Sample Request

```shell-session
$ curl \
    --request POST \
    --data @my-job.nomad \
    https://localhost:4646/v1/validate/job
```

### Sample Response

```json
{
  "DriverConfigValidated": true,
  "ValidationErrors": [
    "Task group cache validation failed: 1 error(s) occurred:\n\n* Task redis validation failed: 1 error(s) occurred:\n\n* 1 error(s) occurred:\n\n* minimum CPU value is 20; got 1"
  ],
  "Warnings": "1 warning(s):\n\n* Group \"cache\" has warnings: 1 error(s) occurred:\n\n* Update max parallel count is greater than task group count (13 > 1). A destructive change would result in the simultaneous replacement of all allocations.",
  "Error": "1 error(s) occurred:\n\n* Task group cache validation failed: 1 error(s) occurred:\n\n* Task redis validation failed: 1 error(s) occurred:\n\n* 1 error(s) occurred:\n\n* minimum CPU value is 20; got 1"
}
```
