curl --request GET \
--url https://{instance}.domo.com/api/datastores/v2/collections/{collectionId}/download \
--header 'X-DOMO-Developer-Token: <api-key>'import requests
url = "https://{instance}.domo.com/api/datastores/v2/collections/{collectionId}/download"
headers = {"X-DOMO-Developer-Token": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-DOMO-Developer-Token': '<api-key>'}};
fetch('https://{instance}.domo.com/api/datastores/v2/collections/{collectionId}/download', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{instance}.domo.com/api/datastores/v2/collections/{collectionId}/download",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-DOMO-Developer-Token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://{instance}.domo.com/api/datastores/v2/collections/{collectionId}/download"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-DOMO-Developer-Token", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://{instance}.domo.com/api/datastores/v2/collections/{collectionId}/download")
.header("X-DOMO-Developer-Token", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{instance}.domo.com/api/datastores/v2/collections/{collectionId}/download")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-DOMO-Developer-Token"] = '<api-key>'
response = http.request(request)
puts response.read_body[
{
"id": "a8428d64-a01d-49b2-9144-ddeec001acf8",
"datastoreId": "39b88a97-8247-4c0d-ba1d-8ed78d1a6680",
"collectionId": "232e6d6c-46e9-49b6-a137-8933f0f05999",
"syncRequired": true,
"owner": "870010733",
"createdBy": "870010733",
"createdOn": "2026-06-23T20:58:06.567Z",
"updatedOn": "2026-06-23T23:36:13.177Z",
"updatedBy": "870010733",
"content": {
"campaignName": "Q2 Campaign",
"region": "West",
"status": "Active"
}
}
]Download Documents
Download documents in a collection as a JSON file (served with a Content-Disposition: attachment header). Each entry is a complete document object in the same shape accepted by Import Documents.
Hard limit: returns at most 100 documents. If the collection has more than 100 documents, only the first 100 are returned with no error or warning. Use the List Documents endpoint with limit/offset pagination to retrieve larger collections.
curl --request GET \
--url https://{instance}.domo.com/api/datastores/v2/collections/{collectionId}/download \
--header 'X-DOMO-Developer-Token: <api-key>'import requests
url = "https://{instance}.domo.com/api/datastores/v2/collections/{collectionId}/download"
headers = {"X-DOMO-Developer-Token": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-DOMO-Developer-Token': '<api-key>'}};
fetch('https://{instance}.domo.com/api/datastores/v2/collections/{collectionId}/download', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{instance}.domo.com/api/datastores/v2/collections/{collectionId}/download",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-DOMO-Developer-Token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://{instance}.domo.com/api/datastores/v2/collections/{collectionId}/download"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-DOMO-Developer-Token", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://{instance}.domo.com/api/datastores/v2/collections/{collectionId}/download")
.header("X-DOMO-Developer-Token", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{instance}.domo.com/api/datastores/v2/collections/{collectionId}/download")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-DOMO-Developer-Token"] = '<api-key>'
response = http.request(request)
puts response.read_body[
{
"id": "a8428d64-a01d-49b2-9144-ddeec001acf8",
"datastoreId": "39b88a97-8247-4c0d-ba1d-8ed78d1a6680",
"collectionId": "232e6d6c-46e9-49b6-a137-8933f0f05999",
"syncRequired": true,
"owner": "870010733",
"createdBy": "870010733",
"createdOn": "2026-06-23T20:58:06.567Z",
"updatedOn": "2026-06-23T23:36:13.177Z",
"updatedBy": "870010733",
"content": {
"campaignName": "Q2 Campaign",
"region": "West",
"status": "Active"
}
}
]Authorizations
Domo Developer Token for authentication.
Path Parameters
The ID of the collection.
Response
JSON array of the documents in the collection.
Unique identifier for the document.
ID of the datastore the document belongs to.
ID of the collection the document belongs to.
Whether the document is pending a sync to the underlying dataset.
User ID of the document owner. v2 endpoints return this as a string; v1 endpoints (List, Get, Query, Update) return it as a numeric integer. This differs from Collection and Datastore owner fields, which are always integers.
User ID of the user who created the document. v2 endpoints always return this field. v1 endpoints return it only from Create Document; all other v1 endpoints (List, Get, Query, Update) omit it.
ISO 8601 timestamp when the document was created.
ISO 8601 timestamp when the document was last updated.
User ID of the user who last updated the document. v2 endpoints return this as a string; v1 endpoints return it as a numeric integer.
Arbitrary JSON content of the document.

