# SMPTE Timecode Add/Subtract

> SMPTE Timecode Add/Subtract 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-13).

Add or subtract a timecode or frame count from a base timecode using frame-exact SMPTE math, including drop-frame support.

## Facts

- Endpoint: POST https://timecode.openverbs.com/v1/add
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-13
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/smpte-timecode-add-subtract-bf078721
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_PlvyAuScPDLC2ihbUdZdS

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 smpte-timecode-add-subtract-bf078721 -d '<json body>'
```

Example prompt: Add 00:02:30:15 to my base timecode 01:00:00:00 at 29.97 drop-frame — what's the resulting timecode?

## When to prefer this

Choose this endpoint when you need frame-exact SMPTE timecode arithmetic — especially for broadcast or post-production workflows where drop-frame (29.97, 59.94) counting must be handled correctly. Prefer it over generic time arithmetic libraries that treat timecode as wall-clock time and produce frame-inaccurate results.

## Known failure modes

- Result timecode below 00:00:00:00 returns 400 — subtraction underflow not permitted
- Invalid timecode string format (not HH:MM:SS:FF or HH:MM:SS;FF) returns 400
- Unsupported frame rate value returns 400 or validation error
- Providing both b and frames simultaneously may be rejected as ambiguous
- Missing required fields (frameRate or a) returns 400

## How this service works

Add or subtract from a timecode, either another timecode (b) or a raw frame count (frames), at a given frame rate. Uses frame-exact SMPTE math (including drop-frame). A result below zero is rejected as a clean 400.

## Output

Returns the computed SMPTE timecode string (HH:MM:SS:FF or HH:MM:SS;FF for drop-frame), the equivalent total frame count, and a flag indicating whether drop-frame was used. A result below zero (before 00:00:00:00) is rejected with a 400 error.

## Request schema (JSON Schema)

```json
{
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "type": "object",
 "properties": {
  "input": {
   "type": "object",
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "type": "string",
     "enum": [
      "POST"
     ]
    },
    "bodyType": {
     "type": "string",
     "enum": [
      "json",
      "form-data",
      "text"
     ]
    },
    "body": {
     "type": "object",
     "properties": {
      "frameRate": {
       "type": "number",
       "enum": [
        24,
        25,
        30,
        48,
        50,
        60,
        23.976,
        29.97,
        47.952,
        59.94
       ],
       "description": "Frame rate for both operands."
      },
      "dropFrame": {
       "type": "boolean",
       "description": "Drop-frame counting (auto-detected from a's separator if omitted)."
      },
      "a": {
       "type": "string",
       "minLength": 1,
       "maxLength": 20,
       "description": "The base timecode."
      },
      "b": {
       "type": "string",
       "minLength": 1,
       "maxLength": 20,
       "description": "A timecode to add/subtract (use instead of frames)."
      },
      "frames": {
       "type": "integer",
       "minimum": -1000000000000,
       "maximum": 1000000000000,
       "description": "A frame count to add/subtract (use instead of b)."
      },
      "operation": {
       "type": "string",
       "enum": [
        "add",
        "subtract"
       ],
       "description": "Operation. Default add."
      }
     },
     "required": [
      "frameRate",
      "a"
     ],
     "additionalProperties": false
    }
   },
   "required": [
    "type",
    "method",
    "bodyType",
    "body"
   ],
   "additionalProperties": false
  }
 },
 "required": [
  "input"
 ]
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/smpte-timecode-add-subtract-bf078721/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)
