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

# Result Expiry: How to Store Your EyeQuant Analysis Outputs

> EyeQuant analysis results and output maps are stored for a limited time. Download and store all heatmaps and scores on your own infrastructure.

EyeQuant stores analysis results for a fixed period after they are produced. Once that window closes, the outputs — including heatmap image URLs and numeric scores — are no longer accessible through the API. It is your responsibility to download and persist any results you need before they expire.

## What Expires

The following are all subject to expiry:

* **Heatmap and map image URLs** — these are hosted on S3 with time-limited authentication tokens and will stop resolving after the expiry window
* **Map downloads** — any visual output file linked from the analysis response
* **The analysis resource itself** — the analysis object returned by the API will become unavailable

## What You Need to Do

Once an analysis reaches `status: success`, you should immediately download and store:

* All map and heatmap image files (fetch each URL and save the file to your own storage)
* Any numeric scores returned in the `outputs` object

<Warning>
  Do not rely on storing just the analysis ID and fetching results later. The outputs will expire and the URLs will stop working. Download everything as soon as the analysis succeeds.
</Warning>

## The `resource_gone` Error

If you attempt to retrieve an analysis that has already expired, the API returns a `resource_gone` error code. This is a permanent state — the data cannot be recovered once it has expired. See the [Errors reference](/reference/errors) for the full list of error codes and their meanings.

## Best Practice: Download Inside Your Polling Loop

The safest approach is to build result downloading directly into the loop where you check analysis status. That way, you never reach a point where an analysis succeeds but you have not yet captured its outputs.

Follow these steps as soon as your polling detects a completed analysis:

1. Poll until `status === 'success'`
2. Extract all URLs from the `outputs` object in the response
3. Download and save each file to your own storage infrastructure
4. Store any numeric scores in your database

By handling downloads immediately in step 3, you eliminate the risk of expiry affecting your integration entirely.
