---
title: "Creates a new tool"
method: POST
path: "/tool/{packageName}"
tags: ["Tool", "ToolVersion"]
---

# Creates a new tool

`POST /tool/{packageName}`

## Path parameters

- `packageName` string, required

## Request body

- ToolCreate
  - `activeVersion` string, required — Active version of the tool
  - `title` string, required — Tool title - displayed to users in the dashboard/Vincent Explorer UI
  - `description` string, required — Tool description - displayed to users in the dashboard/Vincent Explorer UI
  - `deploymentStatus` 'dev' | 'test' | 'prod' — Identifies if a tool is in development, test, or production.

## Response `200`

Successful operation

- Tool
  - `_id` string, required — Document ID
  - `updatedAt` string, date-time, required — Timestamp when this was last modified
  - `createdAt` string, date-time, required — Timestamp when this was created
  - `packageName` string, required — Tool NPM package name
  - `title` string, required — Tool title - displayed to users in the dashboard/Vincent Explorer UI
  - `authorWalletAddress` string, required — Author wallet address. Derived from the authorization signature provided by the creator.
  - `description` string, required — Tool description - displayed to users in the dashboard/Vincent Explorer UI
  - `activeVersion` string, required — Active version of the tool
  - `deploymentStatus` 'dev' | 'test' | 'prod' — Identifies if a tool is in development, test, or production.
  - `isDeleted` boolean — Whether or not this Tool is deleted

## Other responses

- `400` — Invalid input
- `422` — Validation exception
- `default` — Unexpected error

## Changes

- **2025-07-02** `cfdc102dddd1` — 1 info
  - added the optional property `isDeleted` to the response with the `200` status
- **2025-07-02** `433f98e35cde` — 3 breaking, 1 info
  - the request property `title` became required
  - the `description` request property's minLength was increased from `0` to `10`
  - the `title` request property's minLength was increased from `0` to `2`
  - the response property `title` became required for the status `200`
- **2025-06-29** `dc8cacfac551` — 2 info
  - added the new optional request property `deploymentStatus`
  - added the optional property `deploymentStatus` to the response with the `200` status
- **2025-06-28** `f36ee26d6286` — 1 warning, 1 info
  - removed the request property `authorWalletAddress`
  - the response required property `authorWalletAddress` became read-only for the status `200`
- **2025-06-28** `f7b25b5b140b` — 4 info
  - the endpoint scheme security `siweAuth` was added to the API
  - api tag `Tool` added
  - api tag `ToolVersion` added
  - api tag `tool` removed

[Full history](https://skmtc.dev/lit-protocol/apis/vincent-registry-api/changes/tool/:packageName/post.md)

---

[API](https://skmtc.dev/lit-protocol/apis/vincent-registry-api.md) · [All operations](https://skmtc.dev/lit-protocol/apis/vincent-registry-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/lit-protocol/vincent-registry-api/revisions/cfdc102dddd1/schema)
