MediaRuntime Media Analysis API
Read analysis reports produced by requested presets.
Read analysis reports produced by requested presets.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/mediaruntime:mediaruntime-media-analysis-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Mediaruntime Media Analysis API
version: 1.0.0
description: 'Operations tagged Media Analysis across 2 of this provider''s published API definitions: mediaruntime-api-openapi.yml, mediaruntime-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- description: Production
url: https://mediaruntime.com
tags:
- description: Read analysis reports produced by requested presets.
name: Media Analysis
paths:
/v1/jobs/{job_id}/codes:
get:
description: Returns the bounded code-detection report inline when available, or a short-lived download URL for a larger report. Decoded values are untrusted data and must not be followed automatically.
operationId: getCodeDetections
parameters:
- description: The ID of the job to inspect
in: path
name: job_id
required: true
schema:
description: The ID of the job to inspect
title: Job Id
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/JobReportResponse'
description: Successful Response
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
description: Validation Error
security:
- ProductionApiKey: []
summary: Get QR and barcode detections
tags:
- Media Analysis
servers:
- description: Production
url: https://mediaruntime.com
/v1/jobs/{job_id}/compatibility-report:
get:
description: Returns the versioned browser, device, social-upload, and editing compatibility verdict produced for the job.
operationId: getCompatibilityReport
parameters:
- description: The ID of the job to inspect
in: path
name: job_id
required: true
schema:
description: The ID of the job to inspect
title: Job Id
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/JobReportResponse'
description: Successful Response
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
description: Validation Error
security:
- ProductionApiKey: []
summary: Get a compatibility report
tags:
- Media Analysis
servers:
- description: Production
url: https://mediaruntime.com
/v1/jobs/{job_id}/media-report:
get:
description: Returns the forensic media report inline when available, or a short-lived download URL when the report is too large to store with the job.
operationId: getMediaReport
parameters:
- description: The ID of the job to inspect
in: path
name: job_id
required: true
schema:
description: The ID of the job to inspect
title: Job Id
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/JobReportResponse'
description: Successful Response
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
description: Validation Error
security:
- ProductionApiKey: []
summary: Get a media report
tags:
- Media Analysis
servers:
- description: Production
url: https://mediaruntime.com
/v1/jobs/{job_id}/clip-candidates:
get:
description: Returns the versioned transcript and candidate ranges produced by clip_candidates_v1 for an owned completed job. Scores explain transcript heuristics; they do not predict engagement. Reuse source-timed transcript cues with video_clip_v1 to render selected ranges without repeating analysis. The plan follows the job's retention period.
operationId: getClipCandidates
parameters:
- description: The completed analysis job that owns the clip plan
in: path
name: job_id
required: true
schema:
description: The completed analysis job that owns the clip plan
title: Job Id
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ClipCandidatesResponse'
description: Successful Response
headers:
X-Request-Id:
$ref: '#/components/headers/RequestId'
'404':
description: The job or retained clip plan was not found.
headers:
X-Request-Id:
$ref: '#/components/headers/RequestId'
'409':
description: The job has not completed.
headers:
X-Request-Id:
$ref: '#/components/headers/RequestId'
'410':
description: The job's artifact retention period has elapsed.
headers:
X-Request-Id:
$ref: '#/components/headers/RequestId'
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
description: Validation Error
headers:
X-Request-Id:
$ref: '#/components/headers/RequestId'
security:
- ProductionApiKey: []
summary: Get a reviewed-source clip plan
tags:
- Media Analysis
servers:
- description: Production
url: https://mediaruntime.com
components:
schemas:
JobReportResponse:
description: Small report envelope shared by the direct analysis-result endpoints.
properties:
download_url:
anyOf:
- type: string
- type: 'null'
title: Download Url
job_id:
title: Job Id
type: string
note:
anyOf:
- type: string
- type: 'null'
title: Note
report:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Report
required:
- job_id
title: JobReportResponse
type: object
ValidationError:
properties:
ctx:
title: Context
type: object
input:
title: Input
loc:
items:
anyOf:
- type: string
- type: integer
title: Location
type: array
msg:
title: Message
type: string
type:
title: Error Type
type: string
required:
- loc
- msg
- type
title: ValidationError
type: object
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
title: Detail
type: array
title: HTTPValidationError
type: object
ClipTranscriptSegment:
additionalProperties: false
properties:
end_time_sec:
exclusiveMinimum: 0.0
maximum: 604800.0
title: End Time Sec
type: number
start_time_sec:
maximum: 604800.0
minimum: 0.0
title: Start Time Sec
type: number
text:
maxLength: 2000
minLength: 1
title: Text
type: string
required:
- start_time_sec
- end_time_sec
- text
title: ClipTranscriptSegment
type: object
ClipCandidatesResponse:
properties:
candidates:
items:
$ref: '#/components/schemas/ClipCandidate'
maxItems: 20
title: Candidates
type: array
empty_reason:
anyOf:
- enum:
- no_speech
- no_keyword_match
- no_matching_ranges
- source_too_short
type: string
- type: 'null'
title: Empty Reason
method:
const: transcript_heuristics_v1
default: transcript_heuristics_v1
title: Method
type: string
preset:
const: clip_candidates_v1
default: clip_candidates_v1
title: Preset
type: string
schema_version:
const: 1
default: 1
title: Schema Version
type: integer
source_duration_sec:
exclusiveMinimum: 0.0
maximum: 604800.0
title: Source Duration Sec
type: number
transcript:
items:
$ref: '#/components/schemas/ClipTranscriptSegment'
maxItems: 2000
title: Transcript
type: array
transcript_source:
enum:
- supplied
- whisper
title: Transcript Source
type: string
version:
const: 1
default: 1
title: Version
type: integer
required:
- source_duration_sec
- transcript_source
- transcript
- candidates
title: ClipCandidatesResponse
type: object
ClipCandidate:
description: 'Public allowlist: report internals cannot become API fields by accident.'
properties:
duration_sec:
exclusiveMinimum: 0.0
maximum: 300.0
title: Duration Sec
type: number
id:
anyOf:
- maxLength: 128
type: string
- type: 'null'
title: Id
reasons:
items:
type: string
maxItems: 20
title: Reasons
type: array
score:
minimum: 0.0
title: Score
type: number
start_time_sec:
maximum: 604800.0
minimum: 0.0
title: Start Time Sec
type: number
text:
maxLength: 262144
title: Text
type: string
required:
- start_time_sec
- duration_sec
- text
- score
- reasons
title: ClipCandidate
type: object
headers:
RequestId:
description: Gateway correlation ID. Include this value when contacting support.
schema:
type: string
securitySchemes:
ProductionApiKey:
description: MediaRuntime server-side API key. Keep it in a secret manager and never expose it in browser or mobile code.
in: header
name: X-API-Key
type: apiKey
SandboxToken:
description: Ephemeral credential returned by POST /v1/sandbox/session for bounded sandbox jobs only.
in: header
name: X-Sandbox-Token
type: apiKey
StickerClientToken:
bearerFormat: mrt_v1
description: Short-lived token restricted to one sticker collection and an explicit runtime-operation allowlist.
scheme: bearer
type: http
WorkspaceBearer:
bearerFormat: Firebase ID token
description: Firebase ID token for a signed-in first-party workspace client. The gateway resolves and rechecks active account membership.
scheme: bearer
type: http
externalDocs:
description: MediaRuntime developer documentation
url: https://mediaruntime.com/docs
x-refined-from:
- mediaruntime-api-openapi.yml
- mediaruntime-openapi.json