---
title: "Tool History"
method: GET
path: "/api/v1/tools/{tool_id}/history"
tags: ["tools"]
---

# Tool History

`GET /api/v1/tools/{tool_id}/history`

Get version history for a tool.

## Path parameters

- `tool_id` integer, required

## Query parameters

- `page` integer — Page number (0-based)
- `limit` integer — Items per page
- `order_by_direction` 'asc' | 'desc' — The direction in which to order list results, either ascending or descending.

## Response `200`

Successful Response

- ListResponseToolHistoryResponse
  - `items` ToolHistoryResponse[], required — List of items returned from the query
    - `tool_id` integer, required — ID of the tool
    - `version_number` integer, required — Monotonic version for this tool (1 = oldest)
    - `created_at` string, date-time, required — When this version took effect.
    - `updated_by` string, required — User who made the change that produced this row
    - `comments` string, nullable — Optional comment stored on the tool for this version
    - `operation` string, required — What produced this row: create, update, or delete
    - `deleted_reason` string, nullable — When operation is delete, reason copied from the tool at delete time
    - `service_id` integer, required — Internal ID of the service this tool belonged to at this version
    - `service_name` string, nullable — Service display name.
    - `name` string, required — Tool name at this version
    - `description` string, required — Human-readable description of the tool at this version
    - `type` string, required — Tool type at this version: 'action', 'endpoint', 'context', or 'log'
    - `definition` ToolDefinition, required — A tool that can be called from an LLM during the conversation. See https://docs.syllable.ai/Resources/Tools.
      - `type` 'action' | 'endpoint' | 'context' | 'log', nullable — The action to take when the LLM calls the tool.
      - `tool` InternalTool, required — A tool definition to be used by the OpenAI API.
        - `type` 'function' — Always `function`.
        - `function` ToolFunction, required — A function available to an agent. See: - https://learn.microsoft.com/en-us/azure/ai-services/openai/how-to/function-calling
          - `name` string, required — The name of the function/tool call.
          - `description` string, required — The description of the tool.
          - `parameters` unknown, required
      - `endpoint` ToolHttpEndpoint — The configuration for an HTTP API call by a tool.
        - `url` string, required — The endpoint URL of the external service to call.
        - `method` 'get' | 'post' | 'put' | 'delete', required — The HTTP method to use for a tool HTTP request.
        - `argument_location` 'body' | 'form' | 'path' | 'query', required — The location of the argument in a tool HTTP request. 'body' is used for JSON data in the POST request body. 'form' is used for form data in the POST request body. 'path' is used for URL path parameters. 'query' is used for query parameters in the URL.
        - `timeout` number, nullable — Timeout in seconds for the HTTP request. Default 20 seconds when not set.
      - `context` Context
        - `task` union — Task implementation details
          - union
            - ExpressionTask
              - …
            - LoadToolFromFileTask — Bootstraps a tool from a file (for internal developer use only if ENV.local=True).
              - …
            - EventTask
              - …
            - StepsTask
              - …
          - union[]
            - union
              - …
      - `defaults` union — The default values for the parameters of the function/tool call.
        - unknown
        - object
      - `static_parameters` StaticToolParameter[], nullable — Parameters for the tool whose values should be set at config time (i.e., not provided by the LLM).
        - `name` string, required — The name of the parameter - must be unique within the tool.
        - `description` string, nullable — The description of the parameter.
        - `required` boolean, required — Whether the parameter is required to have a value assigned.
        - `type` 'string' | 'int' | 'boolean' | 'data_source_list', required — The expected type for a static tool parameter.
        - `default` string, nullable — The default value for the parameter. If `type` is string, must be a string. If `type` is int, must be an int. If `type` is boolean, must be a boolean. If `type` is data_source_list, must be a list of strings (data source names).
      - `result` unknown
      - `options` ToolOptions — The options for a tool call.
        - `propagate_tool_result` boolean — Whether the tool call result should be propagated to the caller.
  - `page` integer, required — The page number of the results (0-based)
  - `page_size` integer, required — The number of items returned per page
  - `total_pages` integer, nullable — The total number of pages of results given the indicated page size
  - `total_count` integer, nullable — The total number of items returned from the query

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/asksyllable/apis/syllablesdk.md) · [All operations](https://skmtc.net/asksyllable/apis/syllablesdk/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/asksyllable/syllablesdk/versions/ac3228f980bb/schema)
