---
title: "check_manifest"
description: "Generated reference for the management action check_manifest: its description, access metadata, payload contract, and registration status."
slug: /reference/actions/check-manifest
order: 10
visibility: public
redirects_from: []
---

# check\_manifest

Generated automatically from the [published contract sources](/cloud/reference/about/#contract-sources).

A script calls this action over HTTPS at `POST https://turnzero.ai/api/v1/actions/check_manifest`, with a bearer credential and the action's payload as the JSON body. It also accepts `GET`.

**Build metadata:** Registered in this build. Registration describes the default dispatcher in this build. It does not guarantee that a caller has the required credential or grant, that a tool is listed for that connection, or that the required service is configured.

## Contract description

Check a whole manifest for your application without recording it or setting anything up\. Runs `submit_manifest`'s checks before any change and returns `checked`, `changed`, and `difference`, listing paths added, removed or changed\. A refusal gives the same failing path, status and error as submission\. This does not predict sign\-outs, or refusals from setup steps or custom\-domain writes\. Call `submit_manifest` with the manifest to apply it\.

## Access and action metadata

```json
{
  "name": "check_manifest",
  "resource": "application",
  "tier": "observe",
  "product": "cloud",
  "summary": "Check a whole manifest for your application without recording it or setting anything up. Runs `submit_manifest`'s checks before any change and returns `checked`, `changed`, and `difference`, listing paths added, removed or changed. A refusal gives the same failing path, status and error as submission. This does not predict sign-outs, or refusals from setup steps or custom-domain writes. Call `submit_manifest` with the manifest to apply it.",
  "annotations": {
    "readOnlyHint": true,
    "destructiveHint": false,
    "openWorldHint": true
  }
}
```

## MCP catalog entry

```json
{
  "name": "check_manifest",
  "title": "Check app manifest",
  "tier": "observe",
  "scenario": "CHI-L0-07",
  "summary": "Check a whole manifest for your application without recording it or setting anything up. Runs `submit_manifest`'s checks before any change and returns `checked`, `changed`, and `difference`, listing paths added, removed or changed. A refusal gives the same failing path, status and error as submission. This does not predict sign-outs, or refusals from setup steps or custom-domain writes. Call `submit_manifest` with the manifest to apply it.",
  "owners": [
    "MAPI-34",
    "MAN-12",
    "API-L0-24"
  ]
}
```

## request

| JSON pointer | Description and constraints |
|---|---|
| "" \(root\) | Type: object<br>Required fields: \["application","manifest"\]<br>Additional properties: false |
| /<wbr>properties/<wbr>application | The application id, from `list_applications`\.<br><br>Type: string |
| /<wbr>properties/<wbr>manifest | The whole manifest as a JSON object, as `submit_manifest` takes it\. Its schema is the `manifest_schema` resource; a refusal gives the failing path\.<br><br>Type: object |

## response

| JSON pointer | Description and constraints |
|---|---|
| "" \(root\) | Type: object<br>Required fields: \["contract\_version","application","outcome","changed","difference","detail"\] |
| /<wbr>properties/<wbr>contract\_version | Required value: 1 |
| /<wbr>properties/<wbr>reference | The short reference the platform recorded your call under: ten lowercase hexadecimal characters, the value in the call’s record row\. Quote it when you report the call\.<br><br>Type: string<br>Pattern: ^\[0\-9a\-f\]\{10\}$ |
| /<wbr>properties/<wbr>application | The application the manifest was checked for\.<br><br>Type: string |
| /<wbr>properties/<wbr>outcome | `checked`: every check passed, and nothing was recorded or set up\.<br><br>Type: string<br>Pattern: ^checked$ |
| /<wbr>properties/<wbr>changed | True if the checked manifest differs from the recorded one, or none is recorded; false if they are equal\.<br><br>Type: boolean |
| /<wbr>properties/<wbr>difference | The paths added, removed, and changed compared with the recorded manifest\. All three lists are empty if `changed` is false\.<br><br>Type: object<br>Required fields: \["added","removed","changed"\]<br>Additional properties: false |
| /<wbr>properties/<wbr>difference/<wbr>properties/<wbr>added | Paths added compared with the recorded manifest, in the form a refusal uses to name a path\.<br><br>Type: array |
| /<wbr>properties/<wbr>difference/<wbr>properties/<wbr>added/<wbr>items | Type: string |
| /<wbr>properties/<wbr>difference/<wbr>properties/<wbr>removed | Paths removed compared with the recorded manifest, in the form a refusal uses to name a path\.<br><br>Type: array |
| /<wbr>properties/<wbr>difference/<wbr>properties/<wbr>removed/<wbr>items | Type: string |
| /<wbr>properties/<wbr>difference/<wbr>properties/<wbr>changed | Paths changed compared with the recorded manifest, in the form a refusal uses to name a path\.<br><br>Type: array |
| /<wbr>properties/<wbr>difference/<wbr>properties/<wbr>changed/<wbr>items | Type: string |
| /<wbr>properties/<wbr>detail | Nothing was recorded; call `submit_manifest` with this manifest to apply it\.<br><br>Type: string |

## Complete payload contract

```json
{
  "request": {
    "type": "object",
    "required": [
      "application",
      "manifest"
    ],
    "properties": {
      "application": {
        "type": "string",
        "description": "The application id, from `list_applications`."
      },
      "manifest": {
        "type": "object",
        "description": "The whole manifest as a JSON object, as `submit_manifest` takes it. Its schema is the `manifest_schema` resource; a refusal gives the failing path."
      }
    },
    "additionalProperties": false
  },
  "response": {
    "type": "object",
    "required": [
      "contract_version",
      "application",
      "outcome",
      "changed",
      "difference",
      "detail"
    ],
    "properties": {
      "contract_version": {
        "const": 1
      },
      "reference": {
        "type": "string",
        "pattern": "^[0-9a-f]{10}$",
        "description": "The short reference the platform recorded your call under: ten lowercase hexadecimal characters, the value in the call’s record row. Quote it when you report the call."
      },
      "application": {
        "type": "string",
        "description": "The application the manifest was checked for."
      },
      "outcome": {
        "type": "string",
        "pattern": "^checked$",
        "description": "`checked`: every check passed, and nothing was recorded or set up."
      },
      "changed": {
        "type": "boolean",
        "description": "True if the checked manifest differs from the recorded one, or none is recorded; false if they are equal."
      },
      "difference": {
        "type": "object",
        "required": [
          "added",
          "removed",
          "changed"
        ],
        "properties": {
          "added": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Paths added compared with the recorded manifest, in the form a refusal uses to name a path."
          },
          "removed": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Paths removed compared with the recorded manifest, in the form a refusal uses to name a path."
          },
          "changed": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Paths changed compared with the recorded manifest, in the form a refusal uses to name a path."
          }
        },
        "additionalProperties": false,
        "description": "The paths added, removed, and changed compared with the recorded manifest. All three lists are empty if `changed` is false."
      },
      "detail": {
        "type": "string",
        "description": "Nothing was recorded; call `submit_manifest` with this manifest to apply it."
      }
    }
  }
}
```

## Shared contracts

- [Refusals](/cloud/reference/refusals/): every refusal, by surface, with its cause and its remedy
- [schemas/wire\_error\.schema\.json](/cloud/reference/sources/schemas/wire-error-schema/)
- [schemas/wire\_errors\.json](/cloud/reference/sources/schemas/wire-errors/)
- [schemas/action\_payloads\.json](/cloud/reference/sources/schemas/action-payloads/) (includes shared shapes)
- [management\_api\_contract\.md](/cloud/reference/sources/management-api-contract/)
