OttoCut

Agent-native

Built to be called by something that is not a person.

Most media tools assume a human with a mouse. OttoCut assumes a caller that needs a predictable contract, a price it can reason about, and an error it can recover from.

API keyPlanned

A bearer token on every request, with a credit balance behind it. The workhorse: any agent whose operator can provision a key ahead of time should use this.

Authorization: Bearer otto_...

MCP serverPlanned

A thin wrapper over the same endpoints, so a tool-using assistant can clip media without anyone writing HTTP calls. Generated from the OpenAPI schema.

clip_media(media_id, start_phrase, end_phrase)

x402 per requestPlanned

For an agent that meets the API mid-task with no account at all: the request returns 402 with a price, the agent pays, retries, and the work runs.

HTTP 402 → X-Payment → 200

The same shape, every time

Success and failure use one envelope. An agent parses one structure, checks one field, and has a request_id to quote when something needs explaining. No special-casing per endpoint.

  • Phrase resolution is deterministic — the same markers give the same cut.
  • Repeat phrases resolve by index or by nearest timestamp, so a retry is not a guess.
  • Identical requests return the cached clip instead of billing a second encode.
{
  "data":  { "clip_id": "clp_def456", "download_url": "https://..." },
  "error": null,
  "meta":  { "request_id": "req_01J..." }
}

Discovery

Machine-readable descriptions of this service live at stable paths, so an agent can find out what OttoCut does without a human pasting documentation into a prompt.

Be first in when accounts open.

Accounts, API keys and billing all open together with v1. Tell us what you are building and we will email you the day it does.

What are you building?

We will email you when accounts open. No newsletter, no sharing your address. Questions:hello@ottocut.com.

One request

curl -X POST https://api.ottocut.com/clips \
  -H "Content-Type: application/json" \
  -d '{"media_id":"med_abc123",
       "start":{"type":"phrase","value":"the results are in"},
       "end":{"type":"phrase","value":"back after the break"}}'