---
title: "Get a download link"
method: GET
path: "/api/v1/jobs/{job_id}/download"
tags: ["MapsData API"]
---

# Get a download link

`GET /api/v1/jobs/{job_id}/download`

## Request

- Base URL: `https://mapsdata.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://mapsdata.ai/api/v1/jobs/{job_id}/download`
- Auth: `MapsData API key` (a scheme the document does not define)

A short-lived signed URL for a finished scrape's file.

Returns the URL as JSON rather than redirecting to it. A 302 to a
third-party storage origin makes naive HTTP clients resend the
Authorization header cross-origin, which leaks the credential, and an agent
generally wants a link to hand to a person rather than a followed redirect.

The link expires in 15 minutes. Ask for a new one rather than caching it.

## Path parameters

- `job_id` string, required

## Query parameters

- `format` 'csv' | 'xlsx'
- `scope` 'emails' | 'all' | 'filtered'

## Response `200`

Successful Response

- DownloadLink
  - `url` string, required: Short-lived signed URL. Fetch it promptly.
  - `expires_at` string, date-time, required
  - `format` 'csv' | 'xlsx', required
  - `scope` 'emails' | 'all' | 'filtered', required
  - `filename` string, required

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `422`: Validation Error
- `429`: Too Many Requests

---

[API](https://skmtc.dev/mapsdata/apis/mapsdata-api.md) · [All operations](https://skmtc.dev/mapsdata/apis/mapsdata-api/llms.txt) · [OpenAPI document](https://skmtc.dev/mapsdata/apis/mapsdata-api/revisions/c74810530033?raw)
