Media Detail
Endpoint Examples
Media Detail
GET
Media Detail
string
Returns deepfake detection result for specified requestId.
requestId. You can also find your requestId in the URL path when you access the upload in the web application.
Authorization
To fetch media detail, you must include thex-api-key in your request headers. This key is essential for authenticating your request and ensuring secure access to the API.
Sample Code Snippet
Here’s an example of how you can fetch the results for an uploaded file or social media URL.Sample Response
Response Schema
Core fields
models[] object
Each entry in models has the following fields:
Missing or in-flight models may appear with
status: "ANALYZING" and null scores. Models that do not apply to the media type typically return status: "NOT_APPLICABLE" with code: "not_applicable" and data: null.
Explainability and visualization fields
These fields power the same visualization experience as the Reality Defender UI.aggregationResultUrl / modelMetadataUrl and UI visualization
aggregationResultUrlis the storage key, typically shaped like:{institutionId}/{requestId}{extension}/aggregation.json(for example.mp4,.png,.txt, or an audio extension)modelMetadataUrlis the browser-readable, pre-signed URL for that file.- For combined video+audio scans,
audioModelMetadataUrlpoints at the extracted-audio aggregation JSON (a separate key/path from the video aggregation). - The Reality Defender UI loads this JSON to render report detail (bounding boxes, timelines/scenes, audio chunks, text conclusions, and related metadata).
- Approximate contents by media type:
- Image:
bboxes,conclusions, optionalcontextResult - Video: frame/timeline fields (for example scenes, frames, tubes),
models,ensembles,conclusions, optionalcontextResult - Audio:
chunks,languages,conclusions,models,ensembles, plus audio metadata - Text:
models,ensembles,conclusions
- Image:
modelMetadataUrl / audioModelMetadataUrl (not aggregationResultUrl) when downloading aggregation artifacts from a client.
Pre-signed URL expiry
heatmaps, thumbnail, storageLocation, modelMetadataUrl, audioModelMetadataUrl, and explainabilityUrl are pre-signed URLs that expire after 15 minutes (X-Amz-Expires=900).
If a URL returns access denied / expired:
- Call this media detail endpoint again for the same
requestId. - Use the newly returned pre-signed URLs.
Possible models
models[].name values you may see (depending on media type and release version):
Model names are not a stable contract. Detectors can be added, renamed, or removed over time. Treat the list below as illustrative examples, and always read
models[].name from the live response rather than hard-coding specific model slugs.rd-cedar-img, rd-elm-img, rd-oak-img, rd-pine-img, rd-img-ensemble, rd-context-img
Video: rd-erie-vid, rd-tahoe-vid, rd-dynamics-vid, rd-vid-ensemble, rd-context-vid
Audio: rd-slim-aud, rd-everest-aud, rd-aud-ensemble
Text: rd-llm-txt
The exact set returned for a scan depends on your plan, institution settings, and releaseVersion.
Response Details
NOT_APPLICABLE
Reality Defender will return NOT_APPLICABLE as a status if the file contains certain characteristics that are known to impact accuracy. The reason behind the NOT_APPLICABLE response will be returned as a list in themetadata field.
For example, see below for a resultsSummary returned for an image that was not applicable.
Possible reasons returned for
NOT_APPLICABLE are:
- code: relevance
- message: no faces detected/faces too small
Currently, our video files do not output reasons. For video visualization (timeline / scene detail), use
modelMetadataUrl instead.
Audio Reasons Possible reasons returned for
NOT_APPLICABLE are:
- code: duration
- message: audio too short (<1.5s)
- code: detected
- message: dialtone and/or music
- code: cross-talk
- message: more than one speaker detected
- code: quality
- audio too noisy
- code: language
- audio is more likely in language
UNABLE_TO_EVALUATE Response
Reality Defender will return UNABLE_TO_EVALUATE if an error occurred while processing the file. This is typically caused by timeouts. You can try again, or upload a smaller file. Here is an example of theresultsSummary returned for an image that is unable to be evaluated.