---
title: "Call a plugin tool"
method: POST
path: "/plugins/{slug}/{tool}"
tags: ["Plugins"]
---

# Call a plugin tool

`POST /plugins/{slug}/{tool}`

## Request

- Base URL: `https://api.vidmoat.com/v1`
- URL: `https://api.vidmoat.com/v1/plugins/{slug}/{tool}`
- Auth: HTTP bearer

Invoke an available plugin tool with its arguments. Test keys return a fixture without contacting the plugin.

Replace SLUG and TOOL with an installed tool and supply arguments matching its schema. Live calls can have external effects or provider costs. Marketplace plugins need a paid plan; your own plugins work on any plan.

## Path parameters

- `slug` string, required
- `tool` string, required

## Request body

- object
  - `arguments` object: Arguments matching the tool's input schema.
  - `projectId` string: Passed to the plugin as context only. It grants the plugin no access to the project.

## Response `200`

Call a plugin tool

- object
  - `ok` boolean: `true`.
  - `content` unknown
  - `media` object, nullable: When the tool produces media: `{ url, type }`, copied into your library.

## Other responses

- `400`: `invalid_request`: The plugin returned an error, needs a paid plan, or needs you to connect (or reconnect) your account to it.
- `404`: `not_found`: The plugin or tool does not exist, is not installed, or is not available to you.
- `502`: `provider_error`: The plugin timed out (20 seconds), was unreachable, redirected, returned more than 1 MB or bad JSON, or its media could not be copied.

---

[API](https://skmtc.dev/vidmoat/apis/vidmoat-api.md) · [All operations](https://skmtc.dev/vidmoat/apis/vidmoat-api/llms.txt) · [OpenAPI document](https://skmtc.dev/vidmoat/apis/vidmoat-api/revisions/23e24e25c756?raw)
