> This page is for Unified.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.merge.dev/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.merge.dev/_mcp/server.

# Schema Properties

> Reference for JSON Schema properties returned by the /meta endpoint, including field types, constraints, and validation rules.

---

## Overview

Merge uses **JSON Schema** conventions in schemas returned from Merge (e.g., the `request_schema` returned from a `/meta` endpoint) for scalable schemas and programmatic convenience.

In these schemas:

* **Shared Properties** specify type definitions with fields like "type" and "description"
* **Object**, **Array** and **Enum Fields** will have additional schema properties as described further below

For example, when you receive a `request_schema` from a `/meta` endpoint, the schema fields specify valid inputs in a POST request to Merge. Learn more in our guide to Programmatic Writes with `/meta`.

> **Note**
>
> For programmatic validation of these schema properties, we encourage you to refer to the [JSON Schema specification](https://json-schema.org/specification.html).

---

## Shared Properties

All fields in JSON Schemas returned from Merge have basic properties like "type" and "description" that specify field types.

| Property      | Type   | Description                                       |
| ------------- | ------ | ------------------------------------------------- |
| `type`        | string | Denotes the type of data stored in this field.    |
| `description` | string | If available, will explain what data is expected. |

---

## Object Fields

In addition to shared properties, object fields in JSON Schemas returned from Merge will have these additional properties:

| Property     | Type   | Description                                                                                                        |
| ------------ | ------ | ------------------------------------------------------------------------------------------------------------------ |
| `properties` | object | Denotes the object's key-value pairs where the key is the field name and the value is the sub-schema of the field. |
| `required`   | array  | Denotes which object fields are required or optional when making a POST request.                                   |

---

## Array Fields

In addition to shared properties, array fields in JSON Schemas returned from Merge will have these additional properties:

| Property | Type   | Description                                                                            |
| -------- | ------ | -------------------------------------------------------------------------------------- |
| `items`  | object | `items` is an object describing the `type` and `properties` of the items of the array. |

---

## Enum Fields

In addition to shared properties, enum fields that have a limited array of string choices will have these additional properties:

| Property           | Type  | Description                                                                                                                                                                                                                                                              |
| ------------------ | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `enum_information` | array | Denotes the available choices for enum fields.                                                                                                                                                                                                                           |
| `enum`             | array | Denotes the available choices for enum fields and adheres to **JSON Schema** convention by only communicating the enum value (excluding properties like `description`). This compliant `enum` field may be useful for off-the-shelf JSON Schema validators, for example. |

---

## Example JSON Schema

**`Example JSON Schema`**

```json title="Example JSON Schema"
{
    "request_schema": {
        "type": "object",
        "properties": {
            "model": {
                "type": "object",
                "properties": {
                    "first_name": {
                        "type": "string",
                        "description": "The candidate's first name."
                    },
                    "last_name": {
                        "type": "string",
                        "description": "The candidate's last name."
                    },
                    "email_addresses": {
                        "type": "array",
                        "description": "Array of email_addresses objects on ats.Candidate",
                        "items": {
                            "type": "object",
                            "properties": {
                                "value": {
                                    "type": "string",
                                },
                                "email_address_type": {
                                    "type": "string",
                                }
                            },
                            "required": ["value"], 
                        }
                    },
                    "integration_params": {
                        "type": "object",
                        "properties": {
                            "stage": {
                                "type": "string",
                                "enum": ["ARCHIVED", "ACTIVE"],
                                "enum_information": [
                                    {
                                        "value": "ARCHIVED",
                                        "description": "Archived"
                                    },
                                    {
                                        "value": "ACTIVE",
                                        "description": "Active"
                                    }
                                ]
                            }
                        },
                        "required": ["stage"]
                    }
                },
                "required": ["first_name", "last_name", "email_addresses"]
            }
        },
        "required": ["model"]
    }
}
```