GETapi.synup.com/api/v4/locations/download
Download locations
Generates a CSV export of the selected locations and returns a download URL. The export runs asynchronously — the response confirms the request was accepted, and the user is notified by email when the CSV is ready.
Use selectionType to choose between all matching locations (ALL_ITEMS) or an explicit set (SELECTED_ITEMS with locationIds). The filterInput parameter accepts the same JSON-encoded filter object as Filter locations.
Requires an API key. Send it as
Authorization: API <your-key> — see Getting started.Parameters
Query
| Name | Type | Required | Description |
|---|---|---|---|
filterInput | string | optional | JSON-encoded filter object. Defaults to an empty filter (all locations). |
selectionType | string | optional | Whether to export all matching locations or an explicit selection. |
locationIds | array | optional | Location IDs to export when selectionType is SELECTED_ITEMS. |
emails | array | optional | Email addresses to notify when the CSV is ready. |
archived | boolean | optional | Filter by archived state (true/false). |
approved | boolean | optional | Filter by approved state (true/false). |
archivalScheduledAt | boolean | optional | Return only locations scheduled for archival. |
Headers
| Name | Type | Required | Description |
|---|---|---|---|
Synup-Version | string | required | API version date (YYYY-MM-DD). |
Request
Request
curl -X GET 'https://api.synup.com/api/v4/locations/download?filterInput=&selectionType=&locationIds=&emails=&archived=&approved=&archivalScheduledAt=' \
-H 'Authorization: API YOUR_API_KEY' \
-H 'Content-Type: application/json'const res = await fetch('https://api.synup.com/api/v4/locations/download?filterInput=&selectionType=&locationIds=&emails=&archived=&approved=&archivalScheduledAt=', {
method: 'GET',
headers: {
Authorization: 'API YOUR_API_KEY',
'Content-Type': 'application/json',
},
});
const data = await res.json();import requests
res = requests.get(
"https://api.synup.com/api/v4/locations/download?filterInput=&selectionType=&locationIds=&emails=&archived=&approved=&archivalScheduledAt=",
headers={
"Authorization": "API YOUR_API_KEY",
"Content-Type": "application/json",
},
)
data = res.json()req, _ := http.NewRequest("GET", "https://api.synup.com/api/v4/locations/download?filterInput=&selectionType=&locationIds=&emails=&archived=&approved=&archivalScheduledAt=", nil)
req.Header.Set("Authorization", "API YOUR_API_KEY")
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req)Responses
| Status | Description |
|---|---|
200 | Successful response |
401 | Unauthorized - Invalid or missing API key |
Example response (generated from the schema)
{
"data": {
"downloadLocations": {
"success": true,
"csvUrl": "string"
}
}
}Response body
| Name | Type | Required | Description |
|---|---|---|---|
data | object | optional | |
data.downloadLocations | object | optional | |
data.downloadLocations.success | boolean | optional | Whether the export request was accepted. |
data.downloadLocations.csvUrl | string | optional | URL of the CSV file (populated when the export completes). |