Bearer key · JSON
POST /api/v1/media/probe
curl -s -X POST https://getattest.com.au/api/v1/media/probe \
-H "authorization: Bearer $ATTEST_API_KEY" \
-H "content-type: application/json" \
-d '{}'
Send the key as a bearer token in the authorization header. One key and one credit balance cover every service, including Attest Capture. A failed call is refunded automatically. No key yet? POST /api/v1/keys issues one with 25 free credits and no signup — see the key guide.
For agents
Use when
Use this when a task needs to know what a media file actually is: its container and codecs, how long it runs, its resolution and frame rate, its sample rate and channel count, and the bitrate of each stream — from a public URL or an inline upload, without downloading it into a media player.
Not documented yet: a captured example response. This page only shows what the module publishes about itself, so the missing parts are absent rather than guessed at.
2 fields
Input
Scroll the table horizontally to see all fields.
Field / Type / Required / What it does| Field | Type | Required | What it does |
|---|
url | string | Optional | A public http(s) media URL. Exactly one of url or file_base64. |
|---|
file_base64 | string | Optional | The media file as base64. |
|---|
HTTP 200
Response
Every successful response also carries call_id (your receipt for the charge), credits_charged and credits_remaining.
Scroll the table horizontally to see all fields.
Field / What it holds| Field | What it holds |
|---|
container | The container format the file declares. |
|---|
format | A readable description of that format. |
|---|
duration_seconds | How long the file runs. |
|---|
overall_bitrate | The overall bitrate declared. |
|---|
streams | Each stream: type, codec, resolution, frame rate, sample rate, channels and bitrate. |
|---|
size_bytes | The file size. |
|---|
bytes_read | How much of the file was actually read. |
|---|
truncated | Whether the read stopped before the end of the file, with truncated_because saying why. |
|---|
notes | What a partial read means for the figures above. |
|---|
limits | The byte, stream and time budgets this probe applied. |
|---|
library | The reader used, with its version and licence. |
|---|
Machine-readable failures
Errors
Errors return JSON such as {"error":"invalid_api_key"}. A failed call is refunded automatically.
Scroll the table horizontally to see all fields.
Code / Status / Meaning| Code | Status | Meaning |
|---|
media_input_required | 400 | Neither url nor file_base64 was sent. |
|---|
conflicting_media_input | 400 | Both url and file_base64 were sent. |
|---|
empty_file | 400 | The file decoded to nothing. |
|---|
file_too_large | 400 | The inline upload is past the byte cap. |
|---|
unrecognised_media | 400 | The bytes are not a media container the reader recognises. |
|---|
too_many_streams | 400 | The file declares more streams than this probe reads. |
|---|
media_fetch_failed | 502 | The media URL did not answer. Not charged. |
|---|
On every service
Scroll the table horizontally to see all fields.
Code / Status / Meaning| Code | Status | Meaning |
|---|
invalid_api_key | 401 | The authorization header is missing or the key is unknown. |
|---|
insufficient_credits | 402 | The balance is below this call's cost. The response carries credits_required and credits_remaining. |
|---|
rate_limit_exceeded | 429 | Free keys share 10 calls a minute across every service. The response carries limit and window_seconds. |
|---|
services_unavailable | 503 | The credit store could not be reached. Retry once after 30 seconds. |
|---|
4 worked examples
Examples
Where the answer comes from
Source and scope
This product uses MediaInfo library, Copyright (c) 2002-2026 MediaArea.net SARL (https://mediaarea.net/MediaInfo), BSD-2-Clause.
Attest reports what it read, with the source it read it from. It is general information, not advice, and not a legal record.
All Attest tools · Service list as JSON · OpenAPI