---
title: "POST /get-app-tool-schema/{app_id}"
method: POST
path: "/get-app-tool-schema/{app_id}"
---

# POST /get-app-tool-schema/{app_id}

`POST /get-app-tool-schema/{app_id}`

## Request

- Base URL: `https://api.retellai.com`
- URL: `https://api.retellai.com/get-app-tool-schema/{app_id}`
- Auth: HTTP bearer

One round of multi-step schema resolution for an app tool template against a connected App. parameters is the input parameters resolved so far, with properties configured by const or description, and is empty on the first call. Returns the next input_schema to fill; complete marks the last round (it may accompany the final input_schema) and may include an optional response_schema. Input-schema property descriptions provide the default text for LLM inference, and each property's default_input_mode ("const" or "description") is the input mode to preselect for it. A property may also carry extra_info ({ text?, link? }), guidance to render under its editor, e.g. a docs link on how to find an id. Used by the tool config UI. enum_labels maps enum values to display labels; forbid_literal_const allows only description or a {{variable}}.

## Path parameters

- `app_id` string, required

## Request body

- object
  - `app_tool_template_name` string, required: The app tool template name (the provider's catalog tool name).
  - `parameters` ToolParameter[]: The input parameters resolved so far; empty on the first call.
    - `type` 'object', required: Type must be "object" for a JSON Schema object.
    - `properties` object, required: The value of properties is an object, where each key is the name of a property and each value is a schema used to validate that property.
    - `required` string[]: List of names of required property when generating this parameter. LLM will do its best to generate the required properties in its function arguments. Property must exist in properties.
    - `additionalProperties` boolean: On an integration function's response schema, false means the output fields are fixed to properties and no others can be added.

## Response `200`

The next input_schema to fill; complete marks the last round.

- object
  - `complete` boolean, required
  - `input_schema` ToolParameter: The parameters the functions accepts, described as a JSON Schema object. See [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format. Omitting parameters defines a function with an empty parameter list.
    - `type` 'object', required: Type must be "object" for a JSON Schema object.
    - `properties` object, required: The value of properties is an object, where each key is the name of a property and each value is a schema used to validate that property.
    - `required` string[]: List of names of required property when generating this parameter. LLM will do its best to generate the required properties in its function arguments. Property must exist in properties.
    - `additionalProperties` boolean: On an integration function's response schema, false means the output fields are fixed to properties and no others can be added.
  - `response_schema` ToolParameter: The parameters the functions accepts, described as a JSON Schema object. See [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format. Omitting parameters defines a function with an empty parameter list.
    - `type` 'object', required: Type must be "object" for a JSON Schema object.
    - `properties` object, required: The value of properties is an object, where each key is the name of a property and each value is a schema used to validate that property.
    - `required` string[]: List of names of required property when generating this parameter. LLM will do its best to generate the required properties in its function arguments. Property must exist in properties.
    - `additionalProperties` boolean: On an integration function's response schema, false means the output fields are fixed to properties and no others can be added.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `404`: Not Found
- `500`: Internal Server Error

## Changes

- **2026-10-21** `72b7c6dff614`: 3 info
  - added the new optional request property `parameters/items/additionalProperties`
  - added the optional property `input_schema/additionalProperties` to the response with the `200` status
  - added the optional property `response_schema/additionalProperties` to the response with the `200` status
- **2026-10-16** `ca41f0dbb297`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/retellai/apis/retell-sdk/changes/get-app-tool-schema/:app_id/post.md)

---

[API](https://skmtc.dev/retellai/apis/retell-sdk.md) - [All operations](https://skmtc.dev/retellai/apis/retell-sdk/llms.txt) - [OpenAPI document](https://skmtc.dev/retellai/apis/retell-sdk/revisions/e482acaa292c?raw)
