MediaFilez
DocumentationMEDIAFILEZ

Handle Instagram albums

Retrieve every returned image and video instead of just the first file.

Read the file list

Submit the post URL to /media/download as usual. An album can return several files:

JSON
{
    "fileId": "fil_first",
    "files": [
        {
            "fileId": "fil_first"
        },
        {
            "fileId": "fil_second"
        }
    ]
}

This is the job.result portion of a successful response. fileId remains an alias for the first file for older clients. Use the full array when present:

JavaScript
const files = job.result.files ?? [{ fileId: job.result.fileId }];

for (const { fileId } of files) {
    // Request GET /api/v1/files/:fileId using the same account.
}

Do not turn a missing or empty file list into a successful empty download.

Run this only after job.status is completed. This excerpt assumes a valid result; the complete example checks for missing files and shows the authenticated lookups.

Collection behavior

A post is limited to 50 media items. Download byte limits apply to the entire post, not separately to each slide. If a required slide cannot be downloaded, the job fails instead of presenting an incomplete album as complete.

Mixed photo/video posts may be grouped by media type. Do not promise that the returned order matches the original slide order. Query parameters such as img_index=1 do not mean an integration should discard the remaining results.

Delivery choices

  • For Discord, send files in groups that respect both attachment count and byte limits. Retain already delivered groups if a later upload fails.
  • For a website, let the user download the files or create a ZIP in your own client/backend.

The hosted /batches endpoint creates separate tracked jobs. It does not create an archive. The standalone worker's batch job is a different interface and can produce a ZIP; see worker jobs.