curl --request GET \
--url 'https://api.usedatabrain.com/api/v2/workspace' \
--header 'Authorization: Bearer dbn_live_abc123...'
curl --request GET \
--url 'https://api.usedatabrain.com/api/v2/workspace?isPagination=true&pageNumber=1' \
--header 'Authorization: Bearer dbn_live_abc123...'
curl --request GET \
--url 'https://api.usedatabrain.com/api/v2/workspace?isPagination=true&pageNumber=2' \
--header 'Authorization: Bearer dbn_live_abc123...'
const response = await fetch('https://api.usedatabrain.com/api/v2/workspace', {
method: 'GET',
headers: {
'Authorization': 'Bearer dbn_live_abc123...'
}
});
const result = await response.json();
console.log(result.data); // Array of all workspaces
async function fetchAllWorkspaces() {
let allWorkspaces = [];
let pageNumber = 1;
let hasMorePages = true;
while (hasMorePages) {
const response = await fetch(
`https://api.usedatabrain.com/api/v2/workspace?isPagination=true&pageNumber=${pageNumber}`,
{
headers: {
'Authorization': 'Bearer dbn_live_abc123...'
}
}
);
const result = await response.json();
if (result.data && result.data.length > 0) {
allWorkspaces = allWorkspaces.concat(result.data);
pageNumber++;
} else {
hasMorePages = false;
}
}
return allWorkspaces;
}
const workspaces = await fetchAllWorkspaces();
console.log(`Total workspaces: ${workspaces.length}`);
import requests
response = requests.get(
'https://api.usedatabrain.com/api/v2/workspace',
headers={
'Authorization': 'Bearer dbn_live_abc123...'
}
)
result = response.json()
workspaces = result['data']
print(f"Total workspaces: {len(workspaces)}")
import requests
def fetch_all_workspaces(api_key):
all_workspaces = []
page_number = 1
has_more_pages = True
while has_more_pages:
response = requests.get(
'https://api.usedatabrain.com/api/v2/workspace',
params={
'isPagination': 'true',
'pageNumber': page_number
},
headers={
'Authorization': f'Bearer {api_key}'
}
)
result = response.json()
if result['data'] and len(result['data']) > 0:
all_workspaces.extend(result['data'])
page_number += 1
else:
has_more_pages = False
return all_workspaces
workspaces = fetch_all_workspaces('dbn_live_abc123...')
print(f"Total workspaces: {len(workspaces)}")
require 'net/http'
require 'json'
uri = URI('https://api.usedatabrain.com/api/v2/workspace')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri)
request['Authorization'] = 'Bearer dbn_live_abc123...'
response = http.request(request)
result = JSON.parse(response.body)
puts "Total workspaces: #{result['data'].length}"
result['data'].each do |workspace|
puts "- #{workspace['name']}"
end
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
public class ListWorkspaces {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.usedatabrain.com/api/v2/workspace"))
.header("Authorization", "Bearer dbn_live_abc123...")
.GET()
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
package main
import (
"encoding/json"
"fmt"
"io"
"net/http"
)
type WorkspaceResponse struct {
Data []Workspace `json:"data"`
Error interface{} `json:"error"`
}
type Workspace struct {
Name string `json:"name"`
}
func fetchAllWorkspaces(apiKey string) ([]Workspace, error) {
var allWorkspaces []Workspace
pageNumber := 1
for {
url := fmt.Sprintf(
"https://api.usedatabrain.com/api/v2/workspace?isPagination=true&pageNumber=%d",
pageNumber,
)
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("Authorization", "Bearer "+apiKey)
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
return nil, err
}
body, _ := io.ReadAll(resp.Body)
resp.Body.Close()
var result WorkspaceResponse
json.Unmarshal(body, &result)
if len(result.Data) == 0 {
break
}
allWorkspaces = append(allWorkspaces, result.Data...)
pageNumber++
}
return allWorkspaces, nil
}
func main() {
workspaces, _ := fetchAllWorkspaces("dbn_live_abc123...")
fmt.Printf("Total workspaces: %d\n", len(workspaces))
}
<?php
$url = 'https://api.usedatabrain.com/api/v2/workspace';
$options = [
'http' => [
'header' => 'Authorization: Bearer dbn_live_abc123...',
'method' => 'GET'
]
];
$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
$result = json_decode($response, true);
echo "Total workspaces: " . count($result['data']) . "\n";
foreach ($result['data'] as $workspace) {
echo "- " . $workspace['name'] . "\n";
}
?>
{
"data": [
{
"name": "Sales Analytics"
},
{
"name": "Customer Insights"
},
{
"name": "Marketing Dashboard"
}
],
"error": null
}
{
"data": [],
"error": null
}
{
"data": [
{
"name": "Workspace 1"
},
{
"name": "Workspace 2"
},
{
"name": "Workspace 3"
},
{
"name": "Workspace 4"
},
{
"name": "Workspace 5"
},
{
"name": "Workspace 6"
},
{
"name": "Workspace 7"
},
{
"name": "Workspace 8"
},
{
"name": "Workspace 9"
},
{
"name": "Workspace 10"
}
],
"error": null
}
{
"error": {
"code": "INVALID_DATA_APP_API_KEY",
"message": "invalid or expired API KEY, data app not found"
}
}
{
"error": {
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal Server Error"
}
}
curl --request GET \
--url 'https://api.usedatabrain.com/api/v2/workspace' \
--header 'Authorization: Bearer dbn_live_abc123...'
curl --request GET \
--url 'https://api.usedatabrain.com/api/v2/workspace?isPagination=true&pageNumber=1' \
--header 'Authorization: Bearer dbn_live_abc123...'
curl --request GET \
--url 'https://api.usedatabrain.com/api/v2/workspace?isPagination=true&pageNumber=2' \
--header 'Authorization: Bearer dbn_live_abc123...'
const response = await fetch('https://api.usedatabrain.com/api/v2/workspace', {
method: 'GET',
headers: {
'Authorization': 'Bearer dbn_live_abc123...'
}
});
const result = await response.json();
console.log(result.data); // Array of all workspaces
async function fetchAllWorkspaces() {
let allWorkspaces = [];
let pageNumber = 1;
let hasMorePages = true;
while (hasMorePages) {
const response = await fetch(
`https://api.usedatabrain.com/api/v2/workspace?isPagination=true&pageNumber=${pageNumber}`,
{
headers: {
'Authorization': 'Bearer dbn_live_abc123...'
}
}
);
const result = await response.json();
if (result.data && result.data.length > 0) {
allWorkspaces = allWorkspaces.concat(result.data);
pageNumber++;
} else {
hasMorePages = false;
}
}
return allWorkspaces;
}
const workspaces = await fetchAllWorkspaces();
console.log(`Total workspaces: ${workspaces.length}`);
import requests
response = requests.get(
'https://api.usedatabrain.com/api/v2/workspace',
headers={
'Authorization': 'Bearer dbn_live_abc123...'
}
)
result = response.json()
workspaces = result['data']
print(f"Total workspaces: {len(workspaces)}")
import requests
def fetch_all_workspaces(api_key):
all_workspaces = []
page_number = 1
has_more_pages = True
while has_more_pages:
response = requests.get(
'https://api.usedatabrain.com/api/v2/workspace',
params={
'isPagination': 'true',
'pageNumber': page_number
},
headers={
'Authorization': f'Bearer {api_key}'
}
)
result = response.json()
if result['data'] and len(result['data']) > 0:
all_workspaces.extend(result['data'])
page_number += 1
else:
has_more_pages = False
return all_workspaces
workspaces = fetch_all_workspaces('dbn_live_abc123...')
print(f"Total workspaces: {len(workspaces)}")
require 'net/http'
require 'json'
uri = URI('https://api.usedatabrain.com/api/v2/workspace')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri)
request['Authorization'] = 'Bearer dbn_live_abc123...'
response = http.request(request)
result = JSON.parse(response.body)
puts "Total workspaces: #{result['data'].length}"
result['data'].each do |workspace|
puts "- #{workspace['name']}"
end
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
public class ListWorkspaces {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.usedatabrain.com/api/v2/workspace"))
.header("Authorization", "Bearer dbn_live_abc123...")
.GET()
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
package main
import (
"encoding/json"
"fmt"
"io"
"net/http"
)
type WorkspaceResponse struct {
Data []Workspace `json:"data"`
Error interface{} `json:"error"`
}
type Workspace struct {
Name string `json:"name"`
}
func fetchAllWorkspaces(apiKey string) ([]Workspace, error) {
var allWorkspaces []Workspace
pageNumber := 1
for {
url := fmt.Sprintf(
"https://api.usedatabrain.com/api/v2/workspace?isPagination=true&pageNumber=%d",
pageNumber,
)
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("Authorization", "Bearer "+apiKey)
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
return nil, err
}
body, _ := io.ReadAll(resp.Body)
resp.Body.Close()
var result WorkspaceResponse
json.Unmarshal(body, &result)
if len(result.Data) == 0 {
break
}
allWorkspaces = append(allWorkspaces, result.Data...)
pageNumber++
}
return allWorkspaces, nil
}
func main() {
workspaces, _ := fetchAllWorkspaces("dbn_live_abc123...")
fmt.Printf("Total workspaces: %d\n", len(workspaces))
}
<?php
$url = 'https://api.usedatabrain.com/api/v2/workspace';
$options = [
'http' => [
'header' => 'Authorization: Bearer dbn_live_abc123...',
'method' => 'GET'
]
];
$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
$result = json_decode($response, true);
echo "Total workspaces: " . count($result['data']) . "\n";
foreach ($result['data'] as $workspace) {
echo "- " . $workspace['name'] . "\n";
}
?>
{
"data": [
{
"name": "Sales Analytics"
},
{
"name": "Customer Insights"
},
{
"name": "Marketing Dashboard"
}
],
"error": null
}
{
"data": [],
"error": null
}
{
"data": [
{
"name": "Workspace 1"
},
{
"name": "Workspace 2"
},
{
"name": "Workspace 3"
},
{
"name": "Workspace 4"
},
{
"name": "Workspace 5"
},
{
"name": "Workspace 6"
},
{
"name": "Workspace 7"
},
{
"name": "Workspace 8"
},
{
"name": "Workspace 9"
},
{
"name": "Workspace 10"
}
],
"error": null
}
{
"error": {
"code": "INVALID_DATA_APP_API_KEY",
"message": "invalid or expired API KEY, data app not found"
}
}
{
"error": {
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal Server Error"
}
}
Workspace APIs
List Workspaces
Retrieve all workspaces in your organization with optional pagination support for efficient data retrieval.
curl --request GET \
--url 'https://api.usedatabrain.com/api/v2/workspace' \
--header 'Authorization: Bearer dbn_live_abc123...'
curl --request GET \
--url 'https://api.usedatabrain.com/api/v2/workspace?isPagination=true&pageNumber=1' \
--header 'Authorization: Bearer dbn_live_abc123...'
curl --request GET \
--url 'https://api.usedatabrain.com/api/v2/workspace?isPagination=true&pageNumber=2' \
--header 'Authorization: Bearer dbn_live_abc123...'
const response = await fetch('https://api.usedatabrain.com/api/v2/workspace', {
method: 'GET',
headers: {
'Authorization': 'Bearer dbn_live_abc123...'
}
});
const result = await response.json();
console.log(result.data); // Array of all workspaces
async function fetchAllWorkspaces() {
let allWorkspaces = [];
let pageNumber = 1;
let hasMorePages = true;
while (hasMorePages) {
const response = await fetch(
`https://api.usedatabrain.com/api/v2/workspace?isPagination=true&pageNumber=${pageNumber}`,
{
headers: {
'Authorization': 'Bearer dbn_live_abc123...'
}
}
);
const result = await response.json();
if (result.data && result.data.length > 0) {
allWorkspaces = allWorkspaces.concat(result.data);
pageNumber++;
} else {
hasMorePages = false;
}
}
return allWorkspaces;
}
const workspaces = await fetchAllWorkspaces();
console.log(`Total workspaces: ${workspaces.length}`);
import requests
response = requests.get(
'https://api.usedatabrain.com/api/v2/workspace',
headers={
'Authorization': 'Bearer dbn_live_abc123...'
}
)
result = response.json()
workspaces = result['data']
print(f"Total workspaces: {len(workspaces)}")
import requests
def fetch_all_workspaces(api_key):
all_workspaces = []
page_number = 1
has_more_pages = True
while has_more_pages:
response = requests.get(
'https://api.usedatabrain.com/api/v2/workspace',
params={
'isPagination': 'true',
'pageNumber': page_number
},
headers={
'Authorization': f'Bearer {api_key}'
}
)
result = response.json()
if result['data'] and len(result['data']) > 0:
all_workspaces.extend(result['data'])
page_number += 1
else:
has_more_pages = False
return all_workspaces
workspaces = fetch_all_workspaces('dbn_live_abc123...')
print(f"Total workspaces: {len(workspaces)}")
require 'net/http'
require 'json'
uri = URI('https://api.usedatabrain.com/api/v2/workspace')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri)
request['Authorization'] = 'Bearer dbn_live_abc123...'
response = http.request(request)
result = JSON.parse(response.body)
puts "Total workspaces: #{result['data'].length}"
result['data'].each do |workspace|
puts "- #{workspace['name']}"
end
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
public class ListWorkspaces {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.usedatabrain.com/api/v2/workspace"))
.header("Authorization", "Bearer dbn_live_abc123...")
.GET()
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
package main
import (
"encoding/json"
"fmt"
"io"
"net/http"
)
type WorkspaceResponse struct {
Data []Workspace `json:"data"`
Error interface{} `json:"error"`
}
type Workspace struct {
Name string `json:"name"`
}
func fetchAllWorkspaces(apiKey string) ([]Workspace, error) {
var allWorkspaces []Workspace
pageNumber := 1
for {
url := fmt.Sprintf(
"https://api.usedatabrain.com/api/v2/workspace?isPagination=true&pageNumber=%d",
pageNumber,
)
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("Authorization", "Bearer "+apiKey)
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
return nil, err
}
body, _ := io.ReadAll(resp.Body)
resp.Body.Close()
var result WorkspaceResponse
json.Unmarshal(body, &result)
if len(result.Data) == 0 {
break
}
allWorkspaces = append(allWorkspaces, result.Data...)
pageNumber++
}
return allWorkspaces, nil
}
func main() {
workspaces, _ := fetchAllWorkspaces("dbn_live_abc123...")
fmt.Printf("Total workspaces: %d\n", len(workspaces))
}
<?php
$url = 'https://api.usedatabrain.com/api/v2/workspace';
$options = [
'http' => [
'header' => 'Authorization: Bearer dbn_live_abc123...',
'method' => 'GET'
]
];
$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
$result = json_decode($response, true);
echo "Total workspaces: " . count($result['data']) . "\n";
foreach ($result['data'] as $workspace) {
echo "- " . $workspace['name'] . "\n";
}
?>
{
"data": [
{
"name": "Sales Analytics"
},
{
"name": "Customer Insights"
},
{
"name": "Marketing Dashboard"
}
],
"error": null
}
{
"data": [],
"error": null
}
{
"data": [
{
"name": "Workspace 1"
},
{
"name": "Workspace 2"
},
{
"name": "Workspace 3"
},
{
"name": "Workspace 4"
},
{
"name": "Workspace 5"
},
{
"name": "Workspace 6"
},
{
"name": "Workspace 7"
},
{
"name": "Workspace 8"
},
{
"name": "Workspace 9"
},
{
"name": "Workspace 10"
}
],
"error": null
}
{
"error": {
"code": "INVALID_DATA_APP_API_KEY",
"message": "invalid or expired API KEY, data app not found"
}
}
{
"error": {
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal Server Error"
}
}
GET
/
api
/
v2
/
workspace
curl --request GET \
--url 'https://api.usedatabrain.com/api/v2/workspace' \
--header 'Authorization: Bearer dbn_live_abc123...'
curl --request GET \
--url 'https://api.usedatabrain.com/api/v2/workspace?isPagination=true&pageNumber=1' \
--header 'Authorization: Bearer dbn_live_abc123...'
curl --request GET \
--url 'https://api.usedatabrain.com/api/v2/workspace?isPagination=true&pageNumber=2' \
--header 'Authorization: Bearer dbn_live_abc123...'
const response = await fetch('https://api.usedatabrain.com/api/v2/workspace', {
method: 'GET',
headers: {
'Authorization': 'Bearer dbn_live_abc123...'
}
});
const result = await response.json();
console.log(result.data); // Array of all workspaces
async function fetchAllWorkspaces() {
let allWorkspaces = [];
let pageNumber = 1;
let hasMorePages = true;
while (hasMorePages) {
const response = await fetch(
`https://api.usedatabrain.com/api/v2/workspace?isPagination=true&pageNumber=${pageNumber}`,
{
headers: {
'Authorization': 'Bearer dbn_live_abc123...'
}
}
);
const result = await response.json();
if (result.data && result.data.length > 0) {
allWorkspaces = allWorkspaces.concat(result.data);
pageNumber++;
} else {
hasMorePages = false;
}
}
return allWorkspaces;
}
const workspaces = await fetchAllWorkspaces();
console.log(`Total workspaces: ${workspaces.length}`);
import requests
response = requests.get(
'https://api.usedatabrain.com/api/v2/workspace',
headers={
'Authorization': 'Bearer dbn_live_abc123...'
}
)
result = response.json()
workspaces = result['data']
print(f"Total workspaces: {len(workspaces)}")
import requests
def fetch_all_workspaces(api_key):
all_workspaces = []
page_number = 1
has_more_pages = True
while has_more_pages:
response = requests.get(
'https://api.usedatabrain.com/api/v2/workspace',
params={
'isPagination': 'true',
'pageNumber': page_number
},
headers={
'Authorization': f'Bearer {api_key}'
}
)
result = response.json()
if result['data'] and len(result['data']) > 0:
all_workspaces.extend(result['data'])
page_number += 1
else:
has_more_pages = False
return all_workspaces
workspaces = fetch_all_workspaces('dbn_live_abc123...')
print(f"Total workspaces: {len(workspaces)}")
require 'net/http'
require 'json'
uri = URI('https://api.usedatabrain.com/api/v2/workspace')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri)
request['Authorization'] = 'Bearer dbn_live_abc123...'
response = http.request(request)
result = JSON.parse(response.body)
puts "Total workspaces: #{result['data'].length}"
result['data'].each do |workspace|
puts "- #{workspace['name']}"
end
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
public class ListWorkspaces {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.usedatabrain.com/api/v2/workspace"))
.header("Authorization", "Bearer dbn_live_abc123...")
.GET()
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
package main
import (
"encoding/json"
"fmt"
"io"
"net/http"
)
type WorkspaceResponse struct {
Data []Workspace `json:"data"`
Error interface{} `json:"error"`
}
type Workspace struct {
Name string `json:"name"`
}
func fetchAllWorkspaces(apiKey string) ([]Workspace, error) {
var allWorkspaces []Workspace
pageNumber := 1
for {
url := fmt.Sprintf(
"https://api.usedatabrain.com/api/v2/workspace?isPagination=true&pageNumber=%d",
pageNumber,
)
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("Authorization", "Bearer "+apiKey)
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
return nil, err
}
body, _ := io.ReadAll(resp.Body)
resp.Body.Close()
var result WorkspaceResponse
json.Unmarshal(body, &result)
if len(result.Data) == 0 {
break
}
allWorkspaces = append(allWorkspaces, result.Data...)
pageNumber++
}
return allWorkspaces, nil
}
func main() {
workspaces, _ := fetchAllWorkspaces("dbn_live_abc123...")
fmt.Printf("Total workspaces: %d\n", len(workspaces))
}
<?php
$url = 'https://api.usedatabrain.com/api/v2/workspace';
$options = [
'http' => [
'header' => 'Authorization: Bearer dbn_live_abc123...',
'method' => 'GET'
]
];
$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
$result = json_decode($response, true);
echo "Total workspaces: " . count($result['data']) . "\n";
foreach ($result['data'] as $workspace) {
echo "- " . $workspace['name'] . "\n";
}
?>
{
"data": [
{
"name": "Sales Analytics"
},
{
"name": "Customer Insights"
},
{
"name": "Marketing Dashboard"
}
],
"error": null
}
{
"data": [],
"error": null
}
{
"data": [
{
"name": "Workspace 1"
},
{
"name": "Workspace 2"
},
{
"name": "Workspace 3"
},
{
"name": "Workspace 4"
},
{
"name": "Workspace 5"
},
{
"name": "Workspace 6"
},
{
"name": "Workspace 7"
},
{
"name": "Workspace 8"
},
{
"name": "Workspace 9"
},
{
"name": "Workspace 10"
}
],
"error": null
}
{
"error": {
"code": "INVALID_DATA_APP_API_KEY",
"message": "invalid or expired API KEY, data app not found"
}
}
{
"error": {
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal Server Error"
}
}
Retrieve a list of all workspaces in your organization. This endpoint supports pagination to efficiently handle large numbers of workspaces.
Use pagination when you have many workspaces to improve response times and reduce data transfer. The default page limit is 10 workspaces per page.
Authentication
This endpoint requires a service token in the Authorization header. Service tokens differ from data app API keys and provide organization-level permissions. To access your service token:- In Settings page, navigate to the Service Tokens section.
- Click the “Generate Token” button to create a new service token if you don’t have one already.
Headers
Bearer token for API authentication. Use your service token.
Authorization: Bearer dbn_live_abc123...
Query Parameters
Enable pagination to retrieve workspaces in batches. Pass
"true" to enable pagination.Note: Query parameters are passed as strings. Use "true" or "false" (not boolean values)."true": Enable pagination with page-based retrieval (10 items per page)"false"(default): Return all workspaces in a single response
Show When to use pagination
Show When to use pagination
- Use pagination when you have more than 50 workspaces
- Improves response times for large datasets
- Reduces memory usage in your application
- Each page returns up to 10 workspaces
The page number to retrieve when pagination is enabled. Must be a numeric string (e.g.,
"1", "2", "3").Note: This parameter is only used when isPagination is set to "true".- Pages start at 1 (first page)
- Each page contains up to 10 workspaces
- Returns empty array if page number exceeds available pages
Response
Array of workspace objects. Returns empty array if no workspaces exist or page number exceeds available pages.
Show workspace object properties
Show workspace object properties
The name of the workspace.
Examples
HTTP Status Code Summary
| Status Code | Description |
|---|---|
200 | OK - Workspaces retrieved successfully |
401 | Unauthorized - Invalid or missing API key |
500 | Internal Server Error - Server error occurred |
Possible Errors
| Error Code | HTTP Status | Description | Solution |
|---|---|---|---|
INVALID_DATA_APP_API_KEY | 401 | Invalid API key | Verify your API key is correct and has proper permissions |
INTERNAL_SERVER_ERROR | 500 | Server error | Contact support if error persists |
Pagination Details
How pagination works
How pagination works
When
isPagination is set to true:- Each page returns up to 10 workspaces
- Pages are 1-indexed (first page is
pageNumber=1) - An empty array is returned when you’ve reached the end
- Use this to implement “load more” or infinite scroll patterns
- Request page 1 → Returns 10 workspaces
- Request page 2 → Returns 10 more workspaces
- Request page 3 → Returns 5 workspaces
- Request page 4 → Returns empty array (no more data)
When to use pagination
When to use pagination
Use pagination when:
- You have more than 50 workspaces
- Building user interfaces with “load more” functionality
- Implementing infinite scroll
- Optimizing for mobile or slow connections
- You have fewer than 20 workspaces
- You need all workspace data for processing
- Implementing search or filter functionality client-side
Best practices
Best practices
- Cache results: Store workspace lists client-side to reduce API calls
- Handle empty pages: Check for empty arrays to detect the last page
- Show loading states: Display loading indicators between page requests
- Error handling: Implement retry logic for failed requests
- Rate limiting: Respect API rate limits when fetching multiple pages
Quick Start: Implement Pagination
Implement pagination
For large workspace lists, implement pagination to efficiently fetch results page by page:
async function loadWorkspacePage(pageNumber) {
const response = await fetch(
`https://api.usedatabrain.com/api/v2/workspace?isPagination=true&pageNumber=${pageNumber}`,
{
headers: { 'Authorization': 'Bearer dbn_live_abc123...' }
}
);
return await response.json();
}
// Load first page
const page1 = await loadWorkspacePage(1);
Implement a “Load More” button that increments the page number on each click to fetch additional workspaces.
⌘I

