Returns one entry per action with its description, the JSON schema of the arguments the LLM fills in, an example output, and a complete integration_app tool object you can add to an LLM or flow. Pass an app_id to get tools with that app filled in, or an app_type to browse before you create an app.
Request#
| Query parameter | Type | Required | Description |
|---|---|---|---|
app_id |
string | One of app_id or app_type |
An existing app. Its type is used and its ID is filled into each tool.app_id. Takes precedence over app_type. |
app_type |
string | One of app_id or app_type |
One of cal_com, hubspot, calendly, zendesk, salesforce, dynamics365, gohighlevel, zoho. Each tool.app_id is the placeholder <app_id>. |
action |
string | No | Return only this action, for example cal_com.book_appointment. |
Example request#
curl "https://api.tried.com.au/get-app-tool-schema?app_id=app_0b8e5d7c2f4a6913e5d0b7a2" \
-H "Authorization: Bearer $TRIED_API_KEY"const params = new URLSearchParams({ app_id: "app_0b8e5d7c2f4a6913e5d0b7a2" });
const res = await fetch(`https://api.tried.com.au/get-app-tool-schema?${params}`, {
headers: { Authorization: `Bearer ${process.env.TRIED_API_KEY}` },
});
const schema = await res.json();import os, requests
res = requests.get(
"https://api.tried.com.au/get-app-tool-schema",
headers={"Authorization": f"Bearer {os.environ['TRIED_API_KEY']}"},
params={"app_id": "app_0b8e5d7c2f4a6913e5d0b7a2"},
)
schema = res.json()Response#
200 OK
{
"app_type": "zendesk",
"app_id": "app_0b8e5d7c2f4a6913e5d0b7a2",
"tools": [
{
"action": "zendesk.create_ticket",
"description": "Open a Zendesk support ticket for the caller.",
"parameters": {
"type": "object",
"properties": {
"subject": { "type": "string", "description": "Ticket subject" },
"description": { "type": "string", "description": "What the caller needs" },
"name": { "type": "string", "description": "Requester name" },
"email": { "type": "string", "description": "Requester email" },
"priority": { "type": "string", "enum": ["low", "normal", "high", "urgent"] }
},
"required": ["subject", "description"]
},
"output_example": { "ticket": { "id": 101, "status": "new" } },
"tool": {
"type": "integration_app",
"name": "zendesk_create_ticket",
"description": "Open a Zendesk support ticket for the caller.",
"app_id": "app_0b8e5d7c2f4a6913e5d0b7a2",
"action": "zendesk.create_ticket",
"parameters": {
"type": "object",
"properties": {
"subject": { "type": "string", "description": "Ticket subject" },
"description": { "type": "string", "description": "What the caller needs" },
"name": { "type": "string", "description": "Requester name" },
"email": { "type": "string", "description": "Requester email" },
"priority": { "type": "string", "enum": ["low", "normal", "high", "urgent"] }
},
"required": ["subject", "description"]
}
}
}
]
}| Field | Type | Description |
|---|---|---|
app_id |
string or null | The app you passed, or null when you queried by app_type. |
tools[].parameters |
object | JSON schema of the arguments the LLM fills in. |
tools[].output_example |
object | Shape of a successful output. Use it to write response_variables and output_selection paths. |
tools[].tool |
object | An integration_app tool. The name is the action with the dot replaced by an underscore. You can add static_arguments, response_variables, output_selection and timeout_ms before saving it on an LLM or flow. |
Errors#
| Status | When |
|---|---|
400 |
Neither a valid app_id nor app_type: app_type is one of cal_com, hubspot, calendly, zendesk, salesforce, dynamics365, gohighlevel, zoho. Or action does not belong to the type: <action> is not an action of <app_type>. |
401 |
Missing or invalid API key. |
403 |
The key's IP allowlist or scopes reject the request. This route needs the admin scope. |
404 |
App <id> not found for an unknown app_id. |
429 |
Rate limit exceeded. See Rate limits. |
See Errors for the body format.