# Timecode Frame Rate Converter

> Timecode Frame Rate Converter is a paid API for AI agents from timecode.openverbs.com, paid per call via x402, $0.002/call, status unknown (last checked 2026-09-14).

Converts a timecode or raw frame count from one video frame rate to another while preserving the wall-clock position

## Facts

- Endpoint: POST https://timecode.openverbs.com/v1/convert
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/timecode-frame-rate-converter-016956a9
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_OLmpyU6ANoTLx-6PBLTwJ

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability timecode-frame-rate-converter-016956a9 -d '<json body>'
```

Example prompt: Convert the 29.97fps timecode 00:42:15;12 (drop-frame) to 25fps and give me the equivalent timecode and frame count.

## When to prefer this

Use this endpoint when you need to rebase a SMPTE timecode or raw frame count from one standard video frame rate to another while preserving the real-time (wall-clock) position — for example when conforming edits between 29.97 and 25fps for broadcast delivery, or syncing media between projects running at different frame rates. Supports all common broadcast and cinema frame rates including drop-frame variants.

## Known failure modes

- Unsupported frame rate value returns a validation error
- Missing required frameRate or toFrameRate fields returns a 400 error
- toDropFrame set to true for a frame rate other than 29.97 or 59.94 may return an error
- totalFrames exceeding maximum (1,000,000,000,000) returns a validation error
- Malformed timecode string that cannot be parsed returns an error
- Providing neither timecode nor totalFrames returns a validation error

## How this service works

Rebase a timecode (or a raw frame count) from one frame rate to another on a real-time basis, so the wall-clock position is preserved. Give a source frameRate plus timecode or totalFrames, and a toFrameRate (with optional toDropFrame). Returns the target timecode, frame count and seconds.

## Output

Returns the equivalent timecode string at the target frame rate, the corresponding total frame count, and the wall-clock position in seconds — all preserving the original real-time position.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method",
    "bodyType",
    "body"
   ],
   "properties": {
    "body": {
     "type": "object",
     "required": [
      "frameRate",
      "toFrameRate"
     ],
     "properties": {
      "timecode": {
       "type": "string",
       "maxLength": 20,
       "minLength": 1,
       "description": "Source timecode (use instead of totalFrames)."
      },
      "dropFrame": {
       "type": "boolean",
       "description": "Source drop-frame (auto-detected from a timecode separator if omitted)."
      },
      "frameRate": {
       "enum": [
        24,
        25,
        30,
        48,
        50,
        60,
        23.976,
        29.97,
        47.952,
        59.94
       ],
       "type": "number",
       "description": "Source frame rate."
      },
      "toDropFrame": {
       "type": "boolean",
       "description": "Target drop-frame (29.97/59.94 only). Default false."
      },
      "toFrameRate": {
       "enum": [
        24,
        25,
        30,
        48,
        50,
        60,
        23.976,
        29.97,
        47.952,
        59.94
       ],
       "type": "number",
       "description": "Target frame rate."
      },
      "totalFrames": {
       "type": "integer",
       "maximum": 1000000000000,
       "minimum": 0,
       "description": "Source frame count (use instead of timecode)."
      }
     },
     "additionalProperties": false
    },
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "POST"
     ],
     "type": "string"
    },
    "bodyType": {
     "enum": [
      "json",
      "form-data",
      "text"
     ],
     "type": "string"
    }
   },
   "additionalProperties": false
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/timecode-frame-rate-converter-016956a9/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from timecode.openverbs.com](https://www.zero.xyz/host/timecode.openverbs.com/llms.txt)
