# Contract

## Download the OpenAPI definition

**get** `/v1/openapi.yaml`

Downloads this API's OpenAPI 3.1 definition, served as
`application/yaml`. It is the authority for request and response shapes
and the error envelope.

### Example

```http
curl https://whatsapp.messages.api.linqapp.com/v1/openapi.yaml
```

## Get a part type's JSON Schema

**get** `/v1/parts/{type}`

Reads one part type's JSON Schema (2020-12) byte-verbatim, served as
`application/schema+json` — ready to hand to a structured-output model
as a tool schema. Codified length and item bounds are machine-readable in
the schemas; cross-field rules they cannot express are declared in
`x-rule`. A specific template's generated parameter schema comes from
`GET /v1/templates`. A violation returns HTTP 422 naming the exact field.
Unknown part types answer HTTP 404
`part_type_not_found`.

### Path Parameters

- `type: string`

### Example

```http
curl https://whatsapp.messages.api.linqapp.com/v1/parts/$TYPE
```

## Domain Types

### Contract OpenAPI Response

- `ContractOpenAPIResponse = string`

### Contract Part Schema Response

- `ContractPartSchemaResponse = unknown`
