Skip to main content
GET
Media Detail
string
Returns deepfake detection result for specified requestId.
This endpoint returns the results for a specific upload. When you upload a file or submit a social media URL, the response of a successful request will contain the 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 the x-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

  • aggregationResultUrl is the storage key, typically shaped like: {institutionId}/{requestId}{extension}/aggregation.json (for example .mp4, .png, .txt, or an audio extension)
  • modelMetadataUrl is the browser-readable, pre-signed URL for that file.
  • For combined video+audio scans, audioModelMetadataUrl points 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, optional contextResult
    • Video: frame/timeline fields (for example scenes, frames, tubes), models, ensembles, conclusions, optional contextResult
    • Audio: chunks, languages, conclusions, models, ensembles, plus audio metadata
    • Text: models, ensembles, conclusions
Use 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:
  1. Call this media detail endpoint again for the same requestId.
  2. 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.
Image: 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 the metadata field. For example, see below for a resultsSummary returned for an image that was not applicable.
Image Reasons
Possible reasons returned for NOT_APPLICABLE are:
  • code: relevance
    • message: no faces detected/faces too small
Video Reasons
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 the resultsSummary returned for an image that is unable to be evaluated.