Talent BuddyFor voice talent
Open app
Introduction
Getting startedMCP serverErrors and retries
Jobs and scripts
GETList jobsGETRead a jobPOSTGet a script PDFPOSTAccept jobsPOSTDecline jobsPOSTComplete jobsPOSTAcknowledge a script revision
Deliveries
GETRead deliveriesPOSTBegin a take uploadPOSTDeliver a takePOSTResume a deliveryPOSTWithdraw a takePOSTRetry audio checks
Attachments
GETGet an attachment linkPOSTBegin a file uploadPOSTSend an attached fileDELRemove an attached file
Earnings
GETRead earnings
Account
GETRead your integration identityGETRead availabilityGETRead preferencesGETRead AI voice permissionsPUTSet availabilityPUTSet preferencesPUTSet AI voice permissions
Introduction
Getting startedMCP serverErrors and retries
Jobs and scripts
GETList jobsGETRead a jobPOSTGet a script PDFPOSTAccept jobsPOSTDecline jobsPOSTComplete jobsPOSTAcknowledge a script revision
Deliveries
GETRead deliveriesPOSTBegin a take uploadPOSTDeliver a takePOSTResume a deliveryPOSTWithdraw a takePOSTRetry audio checks
Attachments
GETGet an attachment linkPOSTBegin a file uploadPOSTSend an attached fileDELRemove an attached file
Earnings
GETRead earnings
Account
GETRead your integration identityGETRead availabilityGETRead preferencesGETRead AI voice permissionsPUTSet availabilityPUTSet preferencesPUTSet AI voice permissions
Getting started
API reference

Deliver a take

Commit an uploaded take and notify its producer. It stays in Storage until the producer chooses it as spot audio. Obtain the person's approval.

POST/api/v1/jobs/{job_id}/deliveries
deliveries:writeMCP: deliverIdempotency key required

Request

Examples use sample IDs and upload handles. Replace them with values returned for your assigned work before making a call. Set a new request ID for a new action; reuse it only for the same input on a retry.

curl -X POST 'https://talent.radioworkflow.com/api/v1/jobs/4501/deliveries' \
  -H "Authorization: Bearer $TALENT_API_KEY" \
  -H 'Idempotency-Key: replace_with_a_unique_request_id' \
  -H 'Content-Type: application/json' \
  -d '{"handle":"0123456789abcdef0123456789abcdef","take_label":"main","note":null,"preflight":null}'

Request fields

All requests use a bearer API key. Include Idempotency-Key: 8 to 48 letters, digits, underscores or hyphens. MCP uses the same value in request_id. Send body fields as application/json.

job_idpathRequired

string

Pattern: ^[1-9][0-9]{0,9}$

handlebodyRequired

string

Pattern: ^[0-9a-f]{32}$

take_labelbodyRequired

"main" | "alt" | "safety" | "pickup" | "tag"

notebodyRequired

string | null

preflightbodyRequired

object | null

Complete request schema
JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "job_id": {
      "type": "string",
      "pattern": "^[1-9][0-9]{0,9}$"
    },
    "handle": {
      "type": "string",
      "pattern": "^[0-9a-f]{32}$"
    },
    "take_label": {
      "type": "string",
      "enum": [
        "main",
        "alt",
        "safety",
        "pickup",
        "tag"
      ]
    },
    "note": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 1000
        },
        {
          "type": "null"
        }
      ]
    },
    "preflight": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "measured": {
              "type": "boolean"
            },
            "duration_s": {
              "type": [
                "number",
                "null"
              ]
            },
            "voiced_s": {
              "type": [
                "number",
                "null"
              ]
            },
            "sample_rate": {
              "type": [
                "number",
                "null"
              ]
            },
            "channels": {
              "type": [
                "number",
                "null"
              ]
            },
            "bit_depth": {
              "type": [
                "number",
                "null"
              ]
            },
            "codec": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 20
                },
                {
                  "type": "null"
                }
              ]
            },
            "peak_dbfs": {
              "type": [
                "number",
                "null"
              ]
            },
            "lufs": {
              "type": [
                "number",
                "null"
              ]
            },
            "lead_silence_s": {
              "type": [
                "number",
                "null"
              ]
            },
            "tail_silence_s": {
              "type": [
                "number",
                "null"
              ]
            },
            "warnings": {
              "maxItems": 10,
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "runs_long",
                  "runs_short",
                  "low_sample_rate",
                  "clipping",
                  "very_quiet",
                  "very_loud",
                  "long_lead_silence",
                  "long_tail_silence",
                  "stereo_dry_voice",
                  "not_measured"
                ]
              }
            }
          },
          "required": [
            "measured",
            "duration_s",
            "voiced_s",
            "sample_rate",
            "channels",
            "bit_depth",
            "codec",
            "peak_dbfs",
            "lufs",
            "lead_silence_s",
            "tail_silence_s",
            "warnings"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "job_id",
    "handle",
    "take_label",
    "note",
    "preflight"
  ],
  "additionalProperties": false
}

Response

HTTP 200 returns a JSON object. Read ok before using its fields. IDs are decimal strings, instants are Unix seconds, and a missing value is null. A replayed write includes replayed: true.

ok
true
api_version
"1"
replayed
true
delivery
object
job
object
Complete response schema
JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean",
      "const": true
    },
    "api_version": {
      "type": "string",
      "const": "1"
    },
    "replayed": {
      "type": "boolean",
      "const": true
    },
    "delivery": {
      "type": "object",
      "properties": {
        "delivery_id": {
          "type": "string",
          "pattern": "^[1-9][0-9]{0,9}$"
        },
        "take_label": {
          "type": "string",
          "enum": [
            "main",
            "alt",
            "safety",
            "pickup",
            "tag"
          ]
        },
        "take_number": {
          "type": "integer",
          "minimum": 1,
          "maximum": 9007199254740991
        },
        "file_name": {
          "type": "string"
        },
        "original_name": {
          "type": "string"
        },
        "size_bytes": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "status": {
          "type": "string",
          "enum": [
            "storing",
            "stalled",
            "processing",
            "delivered",
            "approved",
            "used",
            "superseded",
            "withdrawn",
            "changes_requested"
          ]
        },
        "created_at": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "updated_at": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "note": {
          "type": [
            "string",
            "null"
          ]
        },
        "facts": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "length_s": {
                  "type": "number",
                  "minimum": 0
                },
                "voiced_s": {
                  "anyOf": [
                    {
                      "type": "number",
                      "minimum": 0
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "channels": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                },
                "sample_rate": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                },
                "spot_length_s": {
                  "type": "number",
                  "minimum": 0
                },
                "length_verdict": {
                  "type": "string",
                  "enum": [
                    "pass",
                    "long",
                    "short",
                    "unknown"
                  ]
                }
              },
              "required": [
                "length_s",
                "voiced_s",
                "channels",
                "sample_rate",
                "spot_length_s",
                "length_verdict"
              ],
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ]
        },
        "preflight": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "measured": {
                  "type": "boolean"
                },
                "duration_s": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "voiced_s": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "sample_rate": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "channels": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "bit_depth": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "codec": {
                  "anyOf": [
                    {
                      "type": "string",
                      "maxLength": 20
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "peak_dbfs": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "lufs": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "lead_silence_s": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "tail_silence_s": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "warnings": {
                  "maxItems": 10,
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "runs_long",
                      "runs_short",
                      "low_sample_rate",
                      "clipping",
                      "very_quiet",
                      "very_loud",
                      "long_lead_silence",
                      "long_tail_silence",
                      "stereo_dry_voice",
                      "not_measured"
                    ]
                  }
                }
              },
              "required": [
                "measured",
                "duration_s",
                "voiced_s",
                "sample_rate",
                "channels",
                "bit_depth",
                "codec",
                "peak_dbfs",
                "lufs",
                "lead_silence_s",
                "tail_silence_s",
                "warnings"
              ],
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ]
        },
        "check": {
          "type": "object",
          "properties": {
            "state": {
              "type": "string",
              "enum": [
                "pending",
                "running",
                "done",
                "unavailable",
                "skipped"
              ]
            },
            "verdict": {
              "anyOf": [
                {
                  "type": "string",
                  "enum": [
                    "matches",
                    "check",
                    "mismatch"
                  ]
                },
                {
                  "type": "null"
                }
              ]
            },
            "coverage": {
              "anyOf": [
                {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1
                },
                {
                  "type": "null"
                }
              ]
            },
            "summary": {
              "type": "string"
            },
            "issues": {
              "maxItems": 50,
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "kind": {
                    "type": "string",
                    "enum": [
                      "missing",
                      "changed",
                      "extra",
                      "repeated"
                    ]
                  },
                  "severity": {
                    "type": "string",
                    "enum": [
                      "high",
                      "normal",
                      "soft"
                    ]
                  },
                  "expected": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "heard": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "context": {
                    "type": "string"
                  },
                  "legal": {
                    "type": "boolean"
                  },
                  "name": {
                    "type": "boolean"
                  },
                  "number": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "kind",
                  "severity",
                  "expected",
                  "heard",
                  "context",
                  "legal",
                  "name",
                  "number"
                ],
                "additionalProperties": false
              }
            },
            "checked_at": {
              "anyOf": [
                {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                },
                {
                  "type": "null"
                }
              ]
            },
            "can_retry": {
              "type": "boolean"
            }
          },
          "required": [
            "state",
            "verdict",
            "coverage",
            "summary",
            "issues",
            "checked_at",
            "can_retry"
          ],
          "additionalProperties": false
        },
        "listen_url": {
          "type": "null"
        },
        "listen_url_expires_at": {
          "type": "null"
        },
        "can_withdraw": {
          "type": "boolean"
        },
        "can_resume": {
          "type": "boolean"
        }
      },
      "required": [
        "delivery_id",
        "take_label",
        "take_number",
        "file_name",
        "original_name",
        "size_bytes",
        "status",
        "created_at",
        "updated_at",
        "note",
        "facts",
        "preflight",
        "check",
        "listen_url",
        "listen_url_expires_at",
        "can_withdraw",
        "can_resume"
      ],
      "additionalProperties": false
    },
    "job": {
      "type": "object",
      "properties": {
        "job_id": {
          "type": "string",
          "pattern": "^[1-9][0-9]{0,9}$"
        },
        "customer": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "pattern": "^[1-9][0-9]{0,9}$"
            },
            "name": {
              "type": "string"
            }
          },
          "required": [
            "id",
            "name"
          ],
          "additionalProperties": false
        },
        "voice": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "pattern": "^[1-9][0-9]{0,9}$"
            },
            "name": {
              "type": "string"
            }
          },
          "required": [
            "id",
            "name"
          ],
          "additionalProperties": false
        },
        "key_number": {
          "type": "string"
        },
        "advertiser": {
          "type": "string"
        },
        "length_s": {
          "type": "number",
          "minimum": 0
        },
        "kind": {
          "type": "string",
          "enum": [
            "dry_voice",
            "finished_spot",
            "not_set"
          ]
        },
        "live_read": {
          "type": "boolean"
        },
        "reference": {
          "type": [
            "string",
            "null"
          ]
        },
        "requested_at": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "due_date": {
          "anyOf": [
            {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            },
            {
              "type": "null"
            }
          ]
        },
        "changes_due": {
          "anyOf": [
            {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            },
            {
              "type": "null"
            }
          ]
        },
        "due_state": {
          "type": "string",
          "enum": [
            "none",
            "later",
            "soon",
            "today",
            "overdue",
            "stale"
          ]
        },
        "status": {
          "type": "string",
          "enum": [
            "pending",
            "completed",
            "declined"
          ]
        },
        "stage": {
          "type": "string",
          "enum": [
            "sent",
            "viewed",
            "accepted",
            "changes_requested",
            "delivered",
            "completed",
            "approved",
            "declined"
          ]
        },
        "spot_cancelled": {
          "type": "boolean"
        },
        "has_script": {
          "type": "boolean"
        },
        "script_changed": {
          "type": "boolean"
        },
        "unopened": {
          "type": "boolean"
        },
        "deliveries": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "attachments": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "rate": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "amount": {
                  "type": "string",
                  "pattern": "^-?\\d+\\.\\d{2}$"
                },
                "currency": {
                  "type": "string",
                  "pattern": "^[A-Z]{3}$"
                },
                "symbol": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "required": [
                "amount",
                "currency",
                "symbol"
              ],
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ]
        },
        "producer_name": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "job_id",
        "customer",
        "voice",
        "key_number",
        "advertiser",
        "length_s",
        "kind",
        "live_read",
        "reference",
        "requested_at",
        "due_date",
        "changes_due",
        "due_state",
        "status",
        "stage",
        "spot_cancelled",
        "has_script",
        "script_changed",
        "unopened",
        "deliveries",
        "attachments",
        "rate",
        "producer_name"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "ok",
    "api_version",
    "delivery",
    "job"
  ],
  "additionalProperties": false
}
Errors and retries