V4 API: media_links completely missing from file response despite api-version: experimental header

Hi — related to but distinct from this existing thread. That thread reports media_links URLs returning null. In our case media_links is completely absent from the response — not null, not empty, just missing entirely.

Request


GET https://api.frame.io/v4/accounts/3679586e-2fcd-41f3-8c13-b32f0d90b704/files/9b328fa2-a859-4b90-b614-bc6bb512d661?include=creator
Authorization: Bearer <Adobe IMS access token>
api-version: experimental
```

## Response (file is fully transcoded)

```json
{
  "data": {
    "id": "9b328fa2-a859-4b90-b614-bc6bb512d661",
    "name": "C1820_v4test.mp4.mp4",
    "status": "transcoded",
    "type": "file",
    "file_size": 107375477,
    "updated_at": "2026-06-18T17:43:14.003058Z",
    "media_type": "video/mp4",
    "project_id": "24fecb0b-43f2-47cc-ad1c-f377f45937e6",
    "creator": { "...": "..." },
    "created_at": "2026-06-18T17:42:07.870273Z",
    "parent_id": "b1dd05ae-e94a-434b-80d9-541aea43eb7d",
    "adobe_id": null,
    "adobe_version_id": null,
    "view_url": "https://next.frame.io/project/.../view/..."
  }
}
```

No `media_links` field at any level.

## What I've already tried

- Lowercase `api-version: experimental` and capitalized `Api-Version: experimental` — same result
- `?include=media_links.*` — returns 422 "Unexpected field: media_links.*"
- Confirmed watermarks are **off** at account, workspace, and project levels (the moderator's advice in the related thread)
- Re-authorized the OAuth Web App credential — no change
- File is fully transcoded and plays in next.frame.io

## Auth setup

OAuth Web App credential created via Adobe Developer Console under the org tied to our Frame.io account. The `Authorization: Bearer <IMS token>` works for every other endpoint we've tried (file show, folder create, etc.).

## Theory

`adobe_id` and `adobe_version_id` are both `null` on every file in this account. Frame.io is also not listed as a product in our Adobe Admin Console for any of our Adobe orgs. Could this be a Frame-managed (not Adobe-managed) account, and is `media_links` gated on Adobe-managed status?

If so:
1. What's the path to migrate the account to Adobe-managed?
2. Or is there an alternative way to fetch raw file bytes in V4 for Frame-managed accounts?

## Use case

Migrating a V2 integration that used `GET /v2/assets/{id}` and downloaded files via the `original` field, then forwarded them to Google Drive. We need the V4 equivalent so the workflow can resume.

Thanks!

Hi @Luis !

You’ll need to make sure to use the explicit media_links includes documented in the reference (ie, media_links.original). media_links.* won’t work.

Additionally, this is available in V0, so you won’t need the experimental header.

Thanks @RobertLoughlin, that did it. Adding media_links.original explicitly to the include parameter unlocked the download URL right away, and confirmed that the api-version: experimental header isn’t needed for this endpoint.

For anyone hitting the same issue later, the working request is:


GET https://api.frame.io/v4/accounts/{account_id}/files/{file_id}?include=media_links.original,creator
Authorization: Bearer <Adobe IMS access token>
```

Response now includes `data.media_links.original.download_url` (presigned, no auth needed for the download itself). Used this to migrate a V2 integration that fetches raw file bytes and forwards them to Google Drive.

Cheers!