---
title: "Repair project JSON"
canonical_url: https://docs.zvid.io/docs/endpoints/repair-render-project/
source: docs/endpoints/repair-render-project.api.mdx
content_revision: 6338386a1dd87e4a
---

# Repair project JSON

`POST /api/render/repair/api-key`

Free conservative mechanical repairs. Inspect changes and remainingErrors, then run remote validation. No render or credit reservation.

## Authentication

`x-api-key: YOUR_API_KEY` (header). API key for authentication. Create one in your dashboard.

Create API keys at [app.zvid.io/api-keys](https://app.zvid.io/api-keys). Keep credentials on your server.

## Parameters

This operation has no path, query, or additional header parameters.

## Request

The shell examples read credentials from `ZVID_API_KEY` (or `ZVID_ACCESS_TOKEN` for Bearer authentication). Set that variable in your environment. Replace sample project, template, job, and asset identifiers with values from your own account.

A request body is required.


### application/json

Unknown properties are rejected. Required properties: `payload`.

| Field | Type | Required | Description and constraints |
| --- | --- | --- | --- |
| `body.payload` | object | Yes |  |


### Request example: repair


```bash
curl --request POST 'https://api.zvid.io/api/render/repair/api-key' \
  --header "x-api-key: $ZVID_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
  "payload": {
    "name": "Hello Zvid",
    "width": "1280",
    "height": 720,
    "duration": 5,
    "visuals": [
      {
        "type": "TEXT",
        "text": "Hello, Zvid!",
        "position": "center-center",
        "style": {
          "fontSize": 64,
          "color": "#ffffff"
        }
      }
    ],
    "backgroundColor": "#14213d"
  }
}'
```

## Responses


### HTTP 200

Successful response

Content type: `application/json`.

Required properties: `repaired`, `changes`, `valid`, `remainingErrors`, `warnings`.

| Field | Type | Required | Description and constraints |
| --- | --- | --- | --- |
| `response.schemaVersion` | string | No |  |
| `response.sourceOfTruth` | string | No |  |
| `response.planLimits` | object | No |  |
| `response.repaired` | object | Yes |  |
| `response.changes` | array of object | Yes |  |
| `response.valid` | boolean | Yes |  |
| `response.remainingErrors` | array of object | Yes |  |
| `response.warnings` | array of object | Yes |  |

**Nested field: `response.changes`**

**Array item: `response.changes[]`**

Type: object.

**Nested field: `response.remainingErrors`**

**Array item: `response.remainingErrors[]`**

Type: object.

**Nested field: `response.warnings`**

**Array item: `response.warnings[]`**

Type: object.


### HTTP 400

Invalid input or semantic validation error

Content type: `application/json`.

Required properties: `error`.

| Field | Type | Required | Description and constraints |
| --- | --- | --- | --- |
| `response.error` | string | Yes |  |
| `response.message` | string | No |  |
| `response.details` | array of object | No |  |
| `response.planLimits` | object | No | Present on render validation errors; contains the authenticated user's current render limits. |

**Nested field: `response.details`**

**Array item: `response.details[]`**

Unknown properties are rejected. Required properties: `field`, `message`.

| Field | Type | Required | Description and constraints |
| --- | --- | --- | --- |
| `response.details[].field` | string | Yes |  |
| `response.details[].message` | string | Yes |  |


### HTTP 401

Missing or invalid credentials

Content type: `application/json`.

Unknown properties are rejected. Required properties: `error`.

| Field | Type | Required | Description and constraints |
| --- | --- | --- | --- |
| `response.error` | string | Yes | Error type |
| `response.message` | string | No | Human-readable error message |


### HTTP 404

Not found for this account

Content type: `application/json`.

Required properties: `error`.

| Field | Type | Required | Description and constraints |
| --- | --- | --- | --- |
| `response.error` | string | Yes | Error type |
| `response.message` | string | No | Human-readable error message |


### HTTP 500

Server error

Content type: `application/json`.

Required properties: `error`.

| Field | Type | Required | Description and constraints |
| --- | --- | --- | --- |
| `response.error` | string | Yes | Error type |
| `response.message` | string | No | Human-readable error message |


## Schema definitions

The following definitions describe the fields referenced above. Expand a definition to inspect its complete contract.


### schema repair response

**RepairResponse**


Required properties: `repaired`, `changes`, `valid`, `remainingErrors`, `warnings`.

| Field | Type | Required | Description and constraints |
| --- | --- | --- | --- |
| `RepairResponse.schemaVersion` | string | No |  |
| `RepairResponse.sourceOfTruth` | string | No |  |
| `RepairResponse.planLimits` | object | No |  |
| `RepairResponse.repaired` | object | Yes |  |
| `RepairResponse.changes` | array of object | Yes |  |
| `RepairResponse.valid` | boolean | Yes |  |
| `RepairResponse.remainingErrors` | array of object | Yes |  |
| `RepairResponse.warnings` | array of object | Yes |  |

**Nested field: `RepairResponse.changes`**

**Array item: `RepairResponse.changes[]`**

Type: object.

**Nested field: `RepairResponse.remainingErrors`**

**Array item: `RepairResponse.remainingErrors[]`**

Type: object.

**Nested field: `RepairResponse.warnings`**

**Array item: `RepairResponse.warnings[]`**

Type: object.


### schema validation error

**ValidationError**


Required properties: `error`.

| Field | Type | Required | Description and constraints |
| --- | --- | --- | --- |
| `ValidationError.error` | string | Yes |  |
| `ValidationError.message` | string | No |  |
| `ValidationError.details` | array of object | No |  |
| `ValidationError.planLimits` | object | No | Present on render validation errors; contains the authenticated user's current render limits. |

**Nested field: `ValidationError.details`**

**Array item: `ValidationError.details[]`**

Unknown properties are rejected. Required properties: `field`, `message`.

| Field | Type | Required | Description and constraints |
| --- | --- | --- | --- |
| `ValidationError.details[].field` | string | Yes |  |
| `ValidationError.details[].message` | string | Yes |  |


### schema authentication error

**AuthenticationError**


Unknown properties are rejected. Required properties: `error`.

| Field | Type | Required | Description and constraints |
| --- | --- | --- | --- |
| `AuthenticationError.error` | string | Yes | Error type |
| `AuthenticationError.message` | string | No | Human-readable error message |


### schema error

**Error**


Required properties: `error`.

| Field | Type | Required | Description and constraints |
| --- | --- | --- | --- |
| `Error.error` | string | Yes | Error type |
| `Error.message` | string | No | Human-readable error message |


## Related resources

- [OpenAPI specification](https://docs.zvid.io/openapi.yaml)
- [Project payload schema](https://docs.zvid.io/schemas/render-payload.schema.json)
- [Quick Start](https://docs.zvid.io/docs/quick-start/)
- [Authentication guide](https://docs.zvid.io/docs/authentication/)
