Skip to main content
POST
/
v1
/
videos
/
{video_id}
/
corrections
Submit a transcript correction
const options = {
  method: 'POST',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: JSON.stringify({payload: {}})
};

fetch('https://api.arcmira.com/v1/videos/{video_id}/corrections', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
import requests

url = "https://api.arcmira.com/v1/videos/{video_id}/corrections"

payload = { "payload": {} }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
curl --request POST \
--url https://api.arcmira.com/v1/videos/{video_id}/corrections \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"payload": {}
}'
{
  "ok": true,
  "result": {}
}
{
"ok": true,
"result": {}
}
{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"doc_url": "<string>",
"request_id": "<string>",
"param": "<string>"
}
}
{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"doc_url": "<string>",
"request_id": "<string>",
"param": "<string>"
}
}
{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"doc_url": "<string>",
"request_id": "<string>",
"param": "<string>"
}
}
{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"doc_url": "<string>",
"request_id": "<string>",
"param": "<string>"
}
}
{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"doc_url": "<string>",
"request_id": "<string>",
"param": "<string>"
}
}
{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"doc_url": "<string>",
"request_id": "<string>",
"param": "<string>"
}
}
{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"doc_url": "<string>",
"request_id": "<string>",
"param": "<string>"
}
}
{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"doc_url": "<string>",
"request_id": "<string>",
"param": "<string>"
}
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
kind
enum<string>
required
Available options:
line_edit,
speaker_reassign,
speaker_identify,
add_person,
entity_tag,
segment_rewrite
payload
object
required

Kind-specific payload. line_edit: { segmentIndex, originalText, correctedText }. speaker_reassign: { selection: { startIndex, startChar, endIndex, endChar }, target: { kind: existing|new|role, speakerId, label?, role? } }. speaker_identify: { speakerId, entityId }. add_person: { speakerId, name }. entity_tag: { segmentIndex, charStart, charEnd, entityId } or { segmentIndex, charStart, charEnd, proposedName, proposedType }. segment_rewrite: { startIndex, endIndex, replacements: [{ text, speaker?, start?, end? }] } — replaces the inclusive segment range with the replacements (max 50 source segments, 50 replacements, 2000 chars each); an empty array deletes the range. Timestamps: optional start/end pins (seconds, non-decreasing across the list) fix times explicitly; every unpinned time is interpolated char-proportionally between the surrounding pins (outer bounds default to the source time range). A replacement without speaker inherits from the source segment its repaired start time falls in; startIndex must equal anchor.segmentIndex and the anchor contentHash covers startIndex through endIndex.

seq
integer

Per-video monotonic sequence number (strict FIFO per user+video). Optional for one-off submissions; required for outbox-style clients that depend on ordering. Any mismatch returns 412 with the expected value.

revision
string

The meta.revision from the transcript GET this correction was made against. Required for line_edit, speaker_reassign, entity_tag, and segment_rewrite.

anchor
object

Required for line_edit, speaker_reassign, entity_tag, and segment_rewrite.

Response

Success

ok
enum<boolean>
required

Always true on acceptance.

Available options:
true
kind
enum<string>
required

The correction kind, echoed back.

Available options:
line_edit,
speaker_reassign,
speaker_identify,
add_person,
entity_tag,
segment_rewrite
result
object
required

The stored pending-review row (kind-specific fields). Always carries the row id: use it with the matching withdrawal DELETE.