> ## Documentation Index
> Fetch the complete documentation index at: https://docs.realitydefender.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

> Changes to the Reality Defender Platform API and SDKs

This page lists changes to the Reality Defender Platform API and SDKs, newest first. Use the filters to show only breaking changes, improvements, fixes, or other changes that may affect an existing integration.

<Update label="October 1, 2026" tags={["Improved", "Fixed"]} rss={{ title: "October 1, 2026", description: "More social media link formats and more reliable presigned uploads" }}>
  ## Breaking changes

  None.

  ## Improved

  * **More social media link formats.** Social media link imports now accept shortened and mobile links. That includes `vm.tiktok.com`, `vt.tiktok.com`, `tiktok.com/t/`, `fb.me`, and `instagram.com/share/` links, mobile hosts such as `mobile.twitter.com`, `m.tiktok.com`, and `web.facebook.com`, and Threads `share` links.

  ## Fixed

  * **More reliable presigned uploads.** A presigned URL could stop working minutes after it was requested, before the lifetime it was given, because it was signed with credentials that were about to expire. These URLs now stay valid for the lifetime they were issued with.
</Update>

<Update label="September 25, 2026" tags={["Improved", "Fixed"]} rss={{ title: "September 25, 2026", description: "Image support for social media links" }}>
  ## Breaking changes

  None.

  ## Improved

  * **Image support for social media links.** Social media link imports now download and analyze images, not just videos. Image scans are supported only for public posts on X, Facebook, Instagram, and Threads. For posts with multiple images, only the first image is analyzed. Mobile and shortened links aren't supported yet.

  ## Fixed

  * **Social media imports no longer stall.** Imports that could stay in a downloading state indefinitely now time out. A timed-out import returns `DOWNLOAD_FAILED` in `overallStatus`, and `socialLinkDownloadFailed` is `true`.
</Update>

<Update label="September 17, 2026" tags={["Breaking", "Improved"]} rss={{ title: "September 17, 2026", description: "Presigned uploads use the API domain, with the 30-minute video limit and faster video results" }}>
  ## Breaking changes

  * **Presigned uploads use a new domain.** The `signedUrl` returned by `POST /api/files/aws-presigned` now points to `api.prd.realitydefender.xyz` instead of AWS S3. If your network or client restricts which hosts it can upload to, allow `api.prd.realitydefender.xyz`. The official SDKs already use this flow, so no code change is needed if you use one. If you upload with your own HTTP client, send a PUT request to the `signedUrl` exactly as returned, with the file as the raw request body and a `Content-Type: application/octet-stream` header.

  ## Improved

  * **30-minute limit on video.** Video files longer than 30 minutes are no longer analyzed. Split longer recordings into segments of 30 minutes or less before uploading. Media Detail returns a not-applicable result instead of a processing error. overallStatus and resultsSummary.status are both NOT\_APPLICABLE. resultsSummary.metadata.reasons contains:

  ```json theme={null}
  "reasons": [
    {
      "code": "duration: video too long",
      "type": "Not applicable",
      "name": "Video too long",
      "explanation": "Videos longer than 30 minutes are not analyzed. Trim the video to 30 minutes or less and try again.",
      "rawReason": "duration: video too long"
    }
  ]
  ```

  * **Context-aware explainability fields withheld.** Media Detail still returns the image or video context model. Its data keeps score and decision. The sources field remains only when reverse-image results are already included. These undocumented fields are omitted: explanation, image\_description, manipulation\_reasons, potential\_source, image\_type, and recognizable\_identities. aggregation.json for scans run after this change omits contextResult. Files written earlier still include it. If your integration reads those fields, use the documented response fields only.
  * **Faster video results.** Video analysis now completes about twice as fast.
  * **Shorter queue times during busy periods.** Video processing capacity now scales with demand.
</Update>

<Update label="September 8, 2026" tags={["Changes"]} rss={{ title: "September 8, 2026", description: "API keys and webhooks move to their own pages" }}>
  ## Breaking changes

  None.

  ## Changes to be aware of

  * **API keys and webhooks have their own pages.** In the web app, API keys and webhooks are now separate pages in the main navigation, each with a tab per product. To manage RealScan keys, go to **API keys > RealScan**. To manage RealScan webhooks, go to **Webhooks > RealScan**.
</Update>

<Update label="September 3, 2026" tags={["Improved"]} rss={{ title: "September 3, 2026", description: "Faster failure results for unusable social media links" }}>
  ## Breaking changes

  None.

  ## Improved

  * **Faster results for social media links that can't be downloaded.** When a submitted social media URL can never be downloaded, such as a post with no media attached or content that requires app-only access, the request now fails after the first confirmed error instead of retrying up to five times. You receive the failure result sooner. The set of links that fail is unchanged.
</Update>
