---
title: "Developers · Cutshed"
description: "Public documentation for Cutshed's API and MCP server, covering anonymous reads, OAuth scopes, OpenAPI, problem+json errors, and rate limits."
canonical: "https://cutshed.com/developers/"
---

# Developers · Cutshed

Public documentation for Cutshed's API and MCP server, covering anonymous reads, OAuth scopes, OpenAPI, problem+json errors, and rate limits.

- Tools
Audio
- Vocal remover
- Audio trimmer
- Ringtone maker
- Audio converter
- Volume booster
- Noise remover
- BPM and key
- Pitch and speed
- AI audio maker
Video
- Video editor
- Video compressor
- Video trimmer
- Crop and resize
- Frames and thumbnails
- Mute video
- Video speed
- Merge clips
- Video to MP3
- Video to GIF
- Video splitter
Image
- Background remover
- Image upscaler
- Image converter
- Thumbnail maker
- AI emoji maker
Subtitles & text
- Subtitle generator
- Subtitle translator
- Timing shifter
- Transcript to post
- Menu
Audio
- Vocal remover
- Audio trimmer
- Ringtone maker
- Audio converter
- Volume booster
- Noise remover
- BPM and key
- Pitch and speed
- AI audio maker
Video
- Video editor
- Video compressor
- Video trimmer
- Crop and resize
- Frames and thumbnails
- Mute video
- Video speed
- Merge clips
- Video to MP3
- Video to GIF
- Video splitter
Image
- Background remover
- Image upscaler
- Image converter
- Thumbnail maker
- AI emoji maker
Subtitles & text
- Subtitle generator
- Subtitle translator
- Timing shifter
- Transcript to post
- Home
- / Developers
# Developers
Public reads and the public MCP tools need no credential. A person can connect an agent with OAuth so it can read the account and start Studio generations. Checkout and webhooks stay off this surface. This page is the human docs. The machine description is the OpenAPI document.
## Public read API
Version 1 is current. The unversioned paths return the same JSON, because the website calls them. Every JSON response sends API-Version: 1 .
- GET https://cutshed.com/api/v1 lists the public reads. GET https://cutshed.com/api is the same list.
- GET https://cutshed.com/api/v1/clipper/quote returns the 8-window clipper quote. GET https://cutshed.com/api/clipper/quote is the same quote.
- GET https://cutshed.com/api/v1/config reports which Studio features are enabled. GET https://cutshed.com/api/config is the same document. Values are booleans, not secrets.
OpenAPI: https://cutshed.com/openapi.json
## OAuth
The grant is authorization code with PKCE S256. Access tokens last 15 minutes. Refresh tokens rotate. Public clients self-register at /oauth/register and do not use a client secret. The person approves the app at /oauth/authorize, then can revoke it from Account.
- profile:read — email and display name. GET /api/v1/me and the MCP tool get_my_account.
- credits:read — balance and history. GET /api/v1/credits and get_my_credits.
- studio:generate — start a generation and read its status and results. POST /api/v1/generations, GET /api/v1/generations/ {id} , start_generation, and get_generation.
- credits:spend — required together with studio:generate for anything that costs credits. Spending uses the account credit balance.
Authorization server metadata: https://cutshed.com/.well-known/oauth-authorization-server . API resource metadata: https://cutshed.com/.well-known/oauth-protected-resource . MCP resource metadata: /.well-known/oauth-protected-resource/mcp. A 401 sends WWW-Authenticate with resource_metadata and a problem+json body. A 403 uses code insufficient_scope. Cutshed does not publish OpenID Connect discovery because it does not issue ID tokens.
## MCP server
Streamable HTTP at https://cutshed.com/mcp . Public tools need no credential: list_tools, get_tool, get_studio_pricing, quote_clipper, and search_site. Account tools need a bearer token and the scopes above.
Server card: https://cutshed.com/.well-known/mcp/server-card.json . The same card is at /.well-known/mcp.json and /mcp/server-card.
## Errors
Every /api response from 400 through 599 uses Content-Type: application/problem+json (RFC 9457). The body includes type, title, status, detail, a stable code, and error. error repeats detail so the website can keep reading it. A 402 can also include credits and required. Successful responses stay application/json.
## Versioning and deprecation
Breaking changes require a new major path such as /api/v2. Adding a response field is not breaking. The unversioned paths are permanent aliases of version 1. They are not deprecated.
As of 2026-10-20 no public path is deprecated, so responses do not send Deprecation or Sunset. When a path is deprecated, every response on that path includes Deprecation (RFC 9745) as the HTTP-date it started, Sunset (RFC 8594) at least 180 days later, and Link: <https://cutshed.com/api.md>; rel="deprecation". A notice dated 2026-10-20 cannot remove a path before 2027-04-18. The same policy is written at https://cutshed.com/api.md .
## Rate limits
Public reads allow 300 requests per client IP every 60 seconds. MCP allows 300 requests per client IP every 60 seconds. OPTIONS preflight is not counted. Other /api routes, and every /oauth route, allow 120 requests per IP every 60 seconds. Sign-in email is also limited to 5 per IP per hour, and generation to 8 per IP per minute.
Stripe, Replicate, and fal webhooks are not counted. The scheduled cleanup job is not an HTTP route. A counted response sends RateLimit-Policy and RateLimit, plus X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset. A 429 sends Retry-After and problem+json, with the sentence in error.
Questions go to hello@cutshed.com .
Files stay on this device.
Free tools never upload the file you open. Studio is the only paid part of the site, and the only place a prompt is sent to a video model.

## Links

- [Cutshed](/)
- [Vocal remover](/vocal-remover/)
- [Audio trimmer](/audio-trimmer/)
- [Ringtone maker](/ringtone-maker/)
- [Audio converter](/audio-converter/)
- [Volume booster](/volume/)
- [Noise remover](/noise-remover/)
- [BPM and key](/bpm-key/)
- [Pitch and speed](/pitch-speed/)
- [AI audio maker](/ai-audio/)
- [Video editor](/editor/)
- [Video compressor](/video-compressor/)
- [Video trimmer](/video-trimmer/)
- [Crop and resize](/video-crop/)
- [Frames and thumbnails](/video-frames/)
- [Mute video](/mute-video/)
- [Video speed](/video-speed/)
- [Merge clips](/merge-clips/)
- [Video to MP3](/video-to-mp3/)
- [Video to GIF](/video-to-gif/)
- [Video splitter](/video-splitter/)
- [Background remover](/background-remover/)
- [Image upscaler](/image-upscaler/)
- [Image converter](/image-converter/)
- [Thumbnail maker](/thumbnail-maker/)
- [AI emoji maker](/ai-emoji-maker/)
- [Subtitle generator](/subtitles/)
- [Subtitle translator](/subtitle-translator/)
- [Timing shifter](/subtitle-shifter/)
- [Transcript to post](/transcript/)
- [Pricing](/pricing/)
- [Studio](/studio/)
- [Video Game Clipper](/video-game-clipper/)
- [Stream Clipper](/stream-clipper/)
- [Blog](/blog/)
- [About](/about/)
- [https://cutshed.com/openapi.json](/openapi.json)
- [/oauth/register](/oauth/register)
- [https://cutshed.com/.well-known/oauth-authorization-server](/.well-known/oauth-authorization-server)
- [https://cutshed.com/.well-known/oauth-protected-resource](/.well-known/oauth-protected-resource)

