> For the complete documentation index, see [llms.txt](https://developers.chathive.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.chathive.app/tools/parameters.md).

# Parameters

When you configure your tool, you can define the parameters your AI model should provide. These parameters follow a [**JSON schema**](https://json-schema.org/), ensuring structured and validated inputs.

### **Define Parameters in JSON Schema**

Each parameter should include:

* **name**: The parameter's key.
* **type**: The expected data type (`string`, `number`, `boolean`, etc.).
* **description**: A brief explanation of the parameter.
* **required**: Whether the parameter is mandatory.

Here’s an example schema for the **get\_weather** tool:

```json
{
  "type": "object",
  "properties": {
    "location": {
      "type": "string",
      "description": "The name of the city or geographic coordinates for weather lookup."
    },
    "unit": {
      "type": "string",
      "enum": ["metric", "imperial"],
      "description": "The temperature unit: 'metric' for Celsius, 'imperial' for Fahrenheit."
    }
  },
  "required": ["location"],
  "additionalProperties": false,
}
```

***

### **How the AI Uses These Parameters**

When the AI calls the **get\_weather** tool, it provides values based on the defined schema. For example, the AI might generate the following request:

```json
{
  "location": "New York",
  "unit": "metric"
}
```

* If a parameter is marked as **required**, the AI will always provide it.
* Optional parameters, like `unit`, will only be included if the AI model thinks it is necessary.

***

### **Returning the Response**

Once the tool processes the request, it should return a structured response, which can also be formatted before passing it back to the AI.

{% content-ref url="/pages/Uz2fvGxXKDE5A1Tl43SB" %}
[Format response](/tools/format-response.md)
{% endcontent-ref %}
