# Vimeo

```json
{
  "name": "Vimeo",
  "slug": "vimeo",
  "url": "https://composio.dev/toolkits/vimeo",
  "markdown_url": "https://composio.dev/toolkits/vimeo.md",
  "logo_url": "https://logos.composio.dev/api/vimeo",
  "categories": [
    "entertainment & media"
  ],
  "is_composio_managed": false,
  "updated_at": "2026-09-24T15:46:26.918Z"
}
```

![Vimeo logo](https://logos.composio.dev/api/vimeo)

## Description

Securely connect your AI agents and chatbots (Claude, ChatGPT, Cursor, etc) with Vimeo MCP or direct API to upload videos, update video metadata, manage privacy settings, and fetch video analytics through natural language.

## Summary

Vimeo is a video platform for hosting, managing, and sharing high-quality video content.
Use it to showcase videos, control privacy, and get viewer insights.

## Categories

- entertainment & media

## Toolkit Details

- Tools: 50

## Images

- Logo: https://logos.composio.dev/api/vimeo

## Authentication

- **Oauth2**
  - Type: `oauth2`
  - Description: Oauth2 authentication for Vimeo.
  - Setup:
    - Configure Oauth2 credentials for Vimeo.
    - Use the credentials when creating an auth config in Composio.

## Suggested Prompts

- Upload new video with title and tags
- List all private videos in my account
- Create a shared showcase for client

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `VIMEO_GET_CATEGORY` | Get Category | Get one public Vimeo category by slug. |
| `VIMEO_GET_CHANNEL` | Get Channel | Get one public Vimeo channel by numeric ID. |
| `VIMEO_GET_CURRENT_USER` | Get Current User | Return the connected Vimeo user's numeric user ID, profile, account tier, capabilities, and resource counts. Use the ID with user-subject tools for self workflows. |
| `VIMEO_GET_GROUP` | Get Group | Get one public Vimeo group by numeric ID. |
| `VIMEO_GET_ON_DEMAND_GENRE` | Get On Demand Genre | Get one public Vimeo On Demand genre by ID. Vimeo On Demand is being discontinued; these reads are expected to stop after Nov 20, 2026. |
| `VIMEO_GET_ON_DEMAND_REGION` | Get On Demand Region | Get one public Vimeo On Demand catalog region by country code. Vimeo On Demand is being discontinued; these reads are expected to stop after Nov 20, 2026. |
| `VIMEO_GET_ON_DEMAND_SEASON` | Get On Demand Season | Get one season of a public Vimeo On Demand title. Vimeo On Demand is being discontinued; these reads are expected to stop after Nov 20, 2026. |
| `VIMEO_GET_ON_DEMAND_TITLE` | Get On Demand Title | Get one public Vimeo On Demand title. Vimeo On Demand is being discontinued; these reads are expected to stop after Nov 20, 2026. |
| `VIMEO_GET_TAG` | Get Tag | Get one public Vimeo tag by word. |
| `VIMEO_GET_USER` | Get User | Get one public Vimeo user profile. |
| `VIMEO_GET_VIDEO` | Get Video | Return metadata only for a public Vimeo video whose privacy.view is 'anybody'. Private, password-protected, team-only, unlisted, and otherwise restricted IDs are treated as inaccessible even when the connected token can view them; use LIST_MY_VIDEOS for the connected user's private videos. |
| `VIMEO_LIST_CATEGORIES` | List Categories | Return one sortable page of Vimeo's public video categories for discovering category slugs. |
| `VIMEO_LIST_CATEGORY_CHANNELS` | List Category Channels | Return one page of public channels assigned to a Vimeo category. Vimeo currently returns an internal error for search queries containing apostrophes; no escaping is applied. Pass next_cursor as cursor to continue. |
| `VIMEO_LIST_CATEGORY_GROUPS` | List Category Groups | Return one page of public groups assigned to a Vimeo category. A search query must contain at least one letter or digit. Vimeo currently returns an internal error for queries containing apostrophes; no escaping is applied. Pass next_cursor as cursor to continue. |
| `VIMEO_LIST_CATEGORY_VIDEOS` | List Category Videos | Return one sortable, filterable page of public videos in a Vimeo category. Vimeo's category-video endpoint currently fails non-empty search queries. |
| `VIMEO_LIST_CHANNEL_CATEGORIES` | List Channel Categories | List categories assigned to a public Vimeo channel. Vimeo returns the full relation; limit trims the returned data client-side and does not reduce provider data transfer. |
| `VIMEO_LIST_CHANNEL_FOLLOWERS` | List Channel Followers | Return one page of followers of a public Vimeo channel. This is distinct from channel moderators. Vimeo supports sorting and pagination for this follower list, but not search. Pass next_cursor as cursor to continue. |
| `VIMEO_LIST_CHANNEL_MODERATORS` | List Channel Moderators | Return one page of moderators of a public Vimeo channel. Pass next_cursor as cursor to continue. |
| `VIMEO_LIST_CHANNELS` | List Channels | Return one searchable, sortable page of Vimeo's public curated channels. |
| `VIMEO_LIST_CHANNEL_TAGS` | List Channel Tags | List tags assigned to a public Vimeo channel. Vimeo returns the full relation; limit trims the returned data client-side and does not reduce provider data transfer. |
| `VIMEO_LIST_CHANNEL_VIDEOS` | List Channel Videos | Return one searchable, sortable page of public videos in a Vimeo channel. |
| `VIMEO_LIST_CUSTOM_LOGOS` | List Custom Logos | Return one page of custom player logos owned by the connected Vimeo user. Custom logos depend on the Standard or Advanced Embed Presets feature; a Free account may return a successful empty list. Pass next_cursor as cursor to fetch the next page. |
| `VIMEO_LIST_EMBED_PRESETS` | List Embed Presets | Return one page of embed presets for the connected Vimeo user, or for the Vimeo user selected by optional user_id. Embed presets depend on the Standard or Advanced Embed Presets feature; a Free account may return a successful empty list. Pass next_cursor as cursor to fetch the next page. |
| `VIMEO_LIST_FOLDERS` | List Folders | Return one page of folders owned by the connected Vimeo user. |
| `VIMEO_LIST_GROUP_MEMBERS` | List Group Members | Return one page of members of a public Vimeo group. Pass next_cursor as cursor to continue. |
| `VIMEO_LIST_GROUPS` | List Groups | Return one page of searchable, sortable public Vimeo groups. Pass next_cursor as cursor to continue. |
| `VIMEO_LIST_GROUP_VIDEOS` | List Group Videos | Return one page of public videos in a Vimeo group. Pass next_cursor as cursor to continue. |
| `VIMEO_LIST_MY_VIDEOS` | List My Videos | Return one searchable, sortable page of videos uploaded by the connected Vimeo user, including private videos visible to the grant. Use next_cursor to retrieve the next page. Vimeo's deprecated include_team_content input is intentionally omitted; use filter_uploader to narrow team-visible results to a team member or owner. |
| `VIMEO_LIST_ON_DEMAND_GENRES` | List On Demand Genres | List Vimeo On Demand catalog genres. Vimeo returns the full catalog; limit trims the returned data client-side and does not reduce provider data transfer. Vimeo On Demand is being discontinued; these reads are expected to stop after Nov 20, 2026. |
| `VIMEO_LIST_ON_DEMAND_POSTERS` | List On Demand Posters | List one page of poster artwork for a public Vimeo On Demand title and return next_cursor. Vimeo On Demand is being discontinued; these reads are expected to stop after Nov 20, 2026. |
| `VIMEO_LIST_ON_DEMAND_REGIONS` | List On Demand Regions | List countries and regions in the public Vimeo On Demand catalog. Vimeo returns the full catalog on every request; this action trims it client-side and returns a local cursor until every region is reachable. Vimeo On Demand is being discontinued; these reads are expected to stop after Nov 20, 2026. |
| `VIMEO_LIST_ON_DEMAND_SEASONS` | List On Demand Seasons | List one page of seasons for a public Vimeo On Demand title and return next_cursor. Vimeo On Demand is being discontinued; these reads are expected to stop after Nov 20, 2026. |
| `VIMEO_LIST_ON_DEMAND_SEASON_VIDEOS` | List On Demand Season Videos | List one page of On Demand season video metadata and return next_cursor; playback entitlement is not implied. Vimeo On Demand is being discontinued; these reads are expected to stop after Nov 20, 2026. |
| `VIMEO_LIST_ON_DEMAND_TITLE_GENRES` | List On Demand Title Genres | List genres assigned to a public Vimeo On Demand title. Vimeo returns the full relation; limit trims the returned data client-side and does not reduce provider data transfer. Vimeo On Demand is being discontinued; these reads are expected to stop after Nov 20, 2026. |
| `VIMEO_LIST_ON_DEMAND_TITLES_BY_GENRE` | List On Demand Titles By Genre | List one page of public Vimeo On Demand titles in a genre and return next_cursor. my_region is the only supported region filter; country is unsupported and rejected. Vimeo On Demand is being discontinued; these reads are expected to stop after Nov 20, 2026. |
| `VIMEO_LIST_ON_DEMAND_TITLE_VIDEOS` | List On Demand Title Videos | List one page of On Demand title video metadata and return next_cursor; playback entitlement is not implied. Vimeo On Demand is being discontinued; these reads are expected to stop after Nov 20, 2026. |
| `VIMEO_LIST_PORTFOLIOS` | List Portfolios | Return one page of portfolios for the connected Vimeo user, or for the Vimeo user selected by optional user_id. Portfolios are available with Standard or Advanced; a Free account may return a successful empty list. Pass next_cursor as cursor to fetch the next page. |
| `VIMEO_LIST_SHOWCASES` | List Showcases | Return one searchable, sortable page of Showcases owned by the connected Vimeo user. |
| `VIMEO_LIST_USER_FEED` | List User Feed | Return one page of Activity records from a Vimeo user's feed. Use GET_CURRENT_USER to obtain the connected user's ID for self workflows. Use next_cursor to retrieve the next page. |
| `VIMEO_LIST_USER_FOLDERS` | List User Folders | Return one page of folders belonging to a Vimeo user or team owner. Vimeo's legacy API path calls folders projects; pass next_cursor as cursor to continue. |
| `VIMEO_LIST_USER_FOLLOWED_CATEGORIES` | List User Followed Categories | Return one page of categories followed by a Vimeo user. Use GET_CURRENT_USER to obtain the connected user's ID for self workflows. Use next_cursor to retrieve the next page. |
| `VIMEO_LIST_USER_FOLLOWED_CHANNELS` | List User Followed Channels | Return one page of channels followed by a Vimeo user. Use GET_CURRENT_USER to obtain the connected user's ID for self workflows. Use next_cursor to retrieve the next page. |
| `VIMEO_LIST_USER_FOLLOWERS` | List User Followers | Return one page of followers of a Vimeo user. Use next_cursor to retrieve the next page. |
| `VIMEO_LIST_USER_FOLLOWING` | List User Following | Return one page of users followed by a Vimeo user. Use next_cursor to retrieve the next page. |
| `VIMEO_LIST_USER_LIKED_VIDEOS` | List User Liked Videos | Return one page of videos liked by a Vimeo user. Use next_cursor to retrieve the next page. |
| `VIMEO_LIST_USER_PICTURES` | List User Pictures | Return one page of profile pictures for a Vimeo user. Use next_cursor to retrieve the next page. |
| `VIMEO_LIST_USER_WATCH_LATER` | List User Watch Later | Return one page of videos in a Vimeo user's Watch Later queue. Use GET_CURRENT_USER to obtain the connected user's ID for self workflows. Use next_cursor to retrieve the next page. |
| `VIMEO_LIST_VIDEO_CATEGORIES` | List Video Categories | List categories assigned to a public Vimeo video. |
| `VIMEO_LIST_VIDEO_LIKERS` | List Video Likers | Return one page of users who liked a public Vimeo video. Use next_cursor to retrieve the next page. |
| `VIMEO_SEARCH_USERS` | Search Users | Return one page of public Vimeo user profiles matching a search. Use next_cursor to retrieve the next page. |

## Supported Triggers

None listed.

## Installation and MCP Setup

### Path 1: SDK Installation

#### Path 1, Step 1: Install Composio

Install the Composio SDK, the OpenAI provider, and the OpenAI SDK
```python
pip install composio composio_openai openai
```

```typescript
npm install @composio/core @composio/openai openai
```

#### Path 1, Step 2: Create a Composio session

Initialize Composio with the OpenAI Responses provider and create a session scoped to Vimeo
```python
import json
from openai import OpenAI
from composio import Composio
from composio_openai import OpenAIResponsesProvider

composio = Composio(provider=OpenAIResponsesProvider())
client = OpenAI()

session = composio.create(user_id="your-user-id", toolkits=["vimeo"])
tools = session.tools()
```

```typescript
import OpenAI from "openai";
import { Composio } from "@composio/core";
import { OpenAIResponsesProvider } from "@composio/openai";

const composio = new Composio({ provider: new OpenAIResponsesProvider() });
const client = new OpenAI();

const session = await composio.create("your-user-id", { toolkits: ["vimeo"] });
const tools = await session.tools();
```

#### Path 1, Step 3: Run Vimeo tools with your agent

Send a request, execute the Vimeo tool calls through the session, and print the final answer
```python
response = client.responses.create(
    model="gpt-5.6-sol",
    tools=tools,
    input=[{"role": "user", "content": "List all private videos in my account"}],
)

while True:
    tool_calls = [o for o in response.output if o.type == "function_call"]
    if not tool_calls:
        break
    results = composio.provider.handle_tool_calls(response=response, session=session)
    response = client.responses.create(
        model="gpt-5.6-sol",
        tools=tools,
        previous_response_id=response.id,
        input=[
            {"type": "function_call_output", "call_id": call.call_id, "output": json.dumps(results[i])}
            for i, call in enumerate(tool_calls)
        ],
    )

print(response.output_text)
```

```typescript
let response = await client.responses.create({
  model: "gpt-5.6-sol",
  tools,
  input: [{ role: "user", content: "List all private videos in my account" }],
});

while (response.output.some((o) => o.type === "function_call")) {
  const outputs = await composio.provider.handleToolCalls(session, response.output);
  response = await client.responses.create({
    model: "gpt-5.6-sol",
    tools,
    previous_response_id: response.id,
    input: outputs,
  });
}

console.log(response.output_text);
```

### Path 2: MCP Server Setup

#### Path 2, Step 1: Install Composio

Install the Composio SDK and your agent framework
```python
pip install composio claude-agent-sdk
```

```typescript
npm install @composio/core ai @ai-sdk/mcp @ai-sdk/openai
```

#### Path 2, Step 2: Create a session with MCP enabled

Create a session scoped to Vimeo and read its MCP URL and headers
```python
from composio import Composio

composio = Composio()
session = composio.create(user_id="your-user-id", toolkits=["vimeo"], mcp=True)
```

```typescript
import { Composio } from "@composio/core";

const composio = new Composio();
const { mcp } = await composio.create("your-user-id", {
  toolkits: ["vimeo"],
  mcp: true,
});
```

#### Path 2, Step 3: Connect your agent to the MCP server

Pass the session's MCP URL and headers to your agent and run a Vimeo request
```python
import asyncio
from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions, AssistantMessage, TextBlock

options = ClaudeAgentOptions(
    mcp_servers={
        "composio": {
            "type": "http",
            "url": session.mcp.url,
            "headers": session.mcp.headers,
        }
    },
    system_prompt="You are a helpful assistant with access to Vimeo tools.",
    tools=[],
    allowed_tools=["mcp__composio__*"],
)

async def main():
    async with ClaudeSDKClient(options=options) as client:
        await client.query("List all private videos in my account")
        async for message in client.receive_response():
            if isinstance(message, AssistantMessage):
                for block in message.content:
                    if isinstance(block, TextBlock):
                        print(block.text)

asyncio.run(main())
```

```typescript
import { createMCPClient } from "@ai-sdk/mcp";
import { openai } from "@ai-sdk/openai";
import { generateText, stepCountIs } from "ai";

const client = await createMCPClient({
  transport: { type: "http", url: mcp.url, headers: mcp.headers },
});

const { text } = await generateText({
  model: openai("gpt-5.6-sol"),
  tools: await client.tools(),
  prompt: "List all private videos in my account",
  stopWhen: stepCountIs(10),
});

console.log(text);
await client.close();
```

## Why Use Composio?

### 1. AI Native Vimeo Integration

- Supports both Vimeo MCP and direct API based integrations
- Structured, LLM-friendly schemas for reliable tool execution
- Rich coverage for reading, writing, and querying your Vimeo data

### 2. Managed Auth

- Built-in OAuth handling with automatic token refresh and rotation
- Central place to manage, scope, and revoke Vimeo access
- Per user and per environment credentials instead of hard-coded keys

### 3. Agent Optimized Design

- Tools are tuned using real error and success rates to improve reliability over time
- Comprehensive execution logs so you always know what ran, when, and on whose behalf

### 4. Enterprise Grade Security

- Fine-grained RBAC so you control which agents and users can access Vimeo
- Scoped, least privilege access to Vimeo resources
- Full audit trail of agent actions to support review and compliance

## Use Vimeo with any AI Agent Framework

Choose a framework you want to connect Vimeo with:

- [ChatGPT](https://composio.dev/toolkits/vimeo/framework/chatgpt)
- [Claude Cowork](https://composio.dev/toolkits/vimeo/framework/claude-cowork)
- [Hermes](https://composio.dev/toolkits/vimeo/framework/hermes-agent)
- [Atomic Agent](https://composio.dev/toolkits/vimeo/framework/atomic-agent)

## Related Toolkits

- [Youtube](https://composio.dev/toolkits/youtube) - YouTube is a leading video-sharing platform for uploading, streaming, and discovering content. It empowers creators and businesses to reach global audiences and monetize their work.
- [AllTrails MCP](https://composio.dev/toolkits/alltrails_mcp) - AllTrails MCP is a trail discovery service for hiking, biking, and running routes. Use it to find reviewed trails, photos, maps, difficulty info, and route details fast.
- [Amara](https://composio.dev/toolkits/amara) - Amara is a collaborative platform for creating and managing subtitles and captions for videos. It helps make content accessible and multilingual for global audiences.
- [Captions](https://composio.dev/toolkits/captions) - Captions provides the Mirage API for generating videos, speech, and styled captions. Use it to automate polished video creation, voiceovers, and captioning from one API.
- [Cats](https://composio.dev/toolkits/cats) - Cats is an API with a huge library of cat images, breed data, and cat facts. It makes finding adorable cat photos and trivia effortless for your apps and users.
- [Chatfai](https://composio.dev/toolkits/chatfai) - Chatfai is an AI platform that lets users talk to AI versions of fictional characters from books, movies, and games. It offers an engaging, interactive experience for fans to chat, roleplay, and explore creative dialogues.
- [Cincopa](https://composio.dev/toolkits/cincopa) - Cincopa is a multimedia platform for uploading, managing, and customizing videos, images, and audio. It helps you deliver engaging media experiences with robust APIs and flexible integrations.
- [Descript MCP](https://composio.dev/toolkits/descript_mcp) - Descript MCP is a media processing and project workflow service for creators and teams. It streamlines media import, automated processing, and job management.
- [Dungeon fighter online](https://composio.dev/toolkits/dungeon_fighter_online) - Dungeon Fighter Online (DFO) is an arcade-style, side-scrolling action RPG packed with dynamic combat and progression. Play solo or with friends to battle monsters, complete quests, and upgrade your characters.
- [Elevenlabs](https://composio.dev/toolkits/elevenlabs) - Elevenlabs is an advanced AI voice generation platform for lifelike, multilingual speech synthesis. Perfect for creating natural voices for videos, apps, and business content in seconds.
- [Elevenreader](https://composio.dev/toolkits/elevenreader) - Elevenreader is an AI-powered text-to-speech service by ElevenLabs that converts written content into lifelike audio. It enables fast, natural audio generation from any text.
- [Epic games](https://composio.dev/toolkits/epic_games) - Epic Games is a leading video game publisher and digital storefront, known for Fortnite and Unreal Engine. It lets gamers access, manage, and purchase games all in one place.
- [Eranol](https://composio.dev/toolkits/eranol) - Eranol is an API-driven media conversion service for video, audio, and FFmpeg workflows. It helps teams automate reliable transcoding, format conversion, and media processing at scale.
- [Fal.ai](https://composio.dev/toolkits/fal_ai) - Fal.ai is a generative media platform offering 600+ AI models for images, video, voice, and audio. Developers use Fal.ai for fast, scalable access to cutting-edge generative AI tools.
- [Giphy](https://composio.dev/toolkits/giphy) - Giphy is the largest online library for searching and sharing GIFs and stickers. Instantly add vibrant animated content to your apps, chats, and workflows.
- [Headout](https://composio.dev/toolkits/headout) - Headout is a global platform for booking travel experiences, tours, and entertainment. It helps users discover and secure activities at top destinations, all in one place.
- [Imagekit io](https://composio.dev/toolkits/imagekit_io) - ImageKit.io is a cloud-based media management platform for image and video delivery. Instantly optimize, transform, and deliver visuals globally via a lightning-fast CDN.
- [Listennotes](https://composio.dev/toolkits/listennotes) - Listennotes is a powerful podcast search engine with a massive global database. Discover, search, and curate podcasts from around the world in seconds.
- [News api](https://composio.dev/toolkits/news_api) - News api is a REST API for searching and retrieving live news articles from across the web. Instantly access headlines, coverage, and breaking stories from thousands of sources.
- [RAWG Video Games Database](https://composio.dev/toolkits/rawg_video_games_database) - RAWG Video Games Database is the largest video game discovery and info service. Instantly access comprehensive details, ratings, and release dates for thousands of games.

## Frequently Asked Questions

### Do I need my own developer credentials to use Vimeo with Composio?

Yes, Vimeo requires you to configure your own OAuth credentials. Once set up, Composio handles token storage, refresh, and lifecycle management for you.

### Can I use multiple toolkits together?

Yes! Composio's Tool Router enables agents to use multiple toolkits. [Learn more](https://docs.composio.dev/tool-router/overview).

### Is Composio secure?

Composio is SOC 2 and ISO 27001 compliant with all data encrypted in transit and at rest. [Learn more](https://trust.composio.dev).

### What if the API changes?

Composio maintains and updates all toolkit integrations automatically, so your agents always work with the latest API versions.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
