Skip to content

API Reference

The Resplendent Data API gives you programmatic access to your data. Use it to export information, integrate with other systems, or build custom workflows.

All API requests need an API credential. Create one from your account settings:

  1. Go to SettingsAPI
  2. Click New Credential
  3. Copy the ID and Key (the key is shown only once)

Include your credentials in the Authorization header using HTTP Basic authentication. Use the credential ID as the username and the Key as the password:

Authorization: Basic base64(YOUR_CREDENTIAL_ID:YOUR_CREDENTIAL_KEY)
https://app.resplendentdata.com/api/v1

Retrieve data from tables and modified datasets. This endpoint returns JSON with support for pagination.

GET /export-data/{data_stream_type}/{data_stream_id}
ParameterTypeDescription
data_stream_typestringEither table (raw dataset) or modifier (filtered/transformed dataset)
data_stream_idstringUUID of the table or modifier you want to export
ParameterTypeDefaultDescription
pageinteger1Page number to retrieve (minimum: 1)
page_sizeinteger1000Number of records per page (minimum: 1)

Returns an array of JSON objects. Each object represents one row with column names as keys:

[
{
"id": 1,
"company_name": "Acme Corp",
"revenue": 50000,
"created_at": "2024-01-15"
},
{
"id": 2,
"company_name": "TechStart Inc",
"revenue": 125000,
"created_at": "2024-02-20"
}
]

Export page 2 of a table with 500 records per page:

Terminal window
curl -X GET "https://app.resplendentdata.com/api/v1/export-data/table/a1b2c3d4-5678-90ab-cdef-example12345?page=2&page_size=500" \
-u "YOUR_CREDENTIAL_ID:YOUR_CREDENTIAL_KEY"

Export from a modified dataset:

Terminal window
curl -X GET "https://app.resplendentdata.com/api/v1/export-data/modifier/b2c3d4e5-6789-01bc-defa-example23456?page=1&page_size=2000" \
-u "YOUR_CREDENTIAL_ID:YOUR_CREDENTIAL_KEY"

The export endpoint has rate limiting to keep the service stable:

  • 45 requests per 30 seconds per customer account
  • Exceeding this returns a 429 Too Many Requests error
  • The response includes how many seconds to wait before retrying

Results are cached for 15 minutes to improve performance. If you request the same data within this window, you get the cached version immediately without hitting the database.

StatusCodeMeaning
400page must be at least 1Invalid page parameter
400pageSize must be at least 1Invalid page_size parameter
401UnauthorizedMissing or invalid API key
404Table not foundThe table UUID does not exist or you do not have access
404Data modifier not foundThe modifier UUID does not exist or you do not have access
429Rate limit exceededToo many requests, retry after the specified time

Tables:

  • Go to SettingsDatasets
  • Click on a table name
  • Copy the UUID from the browser URL or table details

Modifiers:

  • Go to SettingsModified Datasets
  • Click on a modifier name
  • Copy the UUID from the browser URL or modifier details

The API converts database types to JSON-compatible formats:

Database TypeJSON OutputExample
IntegerNumber42
Decimal/FloatNumber123.45
String/TextString"Hello"
BooleanBooleantrue or false
DateISO 8601 string"2024-01-15"
DateTimeISO 8601 string"2024-01-15T14:30:00"
Null valuesnullnull

List and control which integrations are active. Disabling an integration stops new syncs while preserving existing datasets and dashboards.

Retrieve every integration connection for a customer.

POST /get-integrations
ParameterTypeRequiredDescription
wl_customer_idstringYesCustomer identifier
wl_env_idstringYesEnvironment identifier

Returns an array of integration objects:

FieldTypeDescription
source_uuidstringUnique identifier for the integration
source_namestringDisplay name
engine_typestringIntegration type (e.g., connectwise, quickbooks)
is_disabledbooleanWhether the integration is currently disabled
last_syncdatetimeTimestamp of the last successful sync (or null)
failed_attemptsintegerNumber of consecutive failed sync attempts
Terminal window
curl -X POST "https://app.resplendentdata.com/api/v1/get-integrations" \
-u "YOUR_CREDENTIAL_ID:YOUR_CREDENTIAL_KEY" \
-H "Content-Type: application/json" \
-d '{
"wl_customer_id": "12345",
"wl_env_id": "us10"
}'
[
{
"source_uuid": "abc-123",
"source_name": "ConnectWise Production",
"engine_type": "connectwise",
"is_disabled": false,
"last_sync": "2026-06-04T14:30:00",
"failed_attempts": 0
},
{
"source_uuid": "def-456",
"source_name": "QuickBooks Sandbox",
"engine_type": "quickbooks",
"is_disabled": true,
"last_sync": "2026-05-20T10:00:00",
"failed_attempts": 3
}
]

Enable or disable one or more integrations in a single call.

POST /set-integration-status
ParameterTypeRequiredDescription
wl_customer_idstringYesCustomer identifier
wl_env_idstringYesEnvironment identifier
integrationsarrayYesList of status updates (see below)

Each item in integrations:

FieldTypeRequiredDescription
source_uuidstringYesUUID of the integration to update
is_disabledbooleanYestrue to disable, false to enable
  • Disabling an integration stops future syncs. Existing datasets and dashboards remain intact.
  • Enabling an integration resumes normal sync scheduling.
  • Returns 404 if any source_uuid does not belong to the customer.
Terminal window
curl -X POST "https://app.resplendentdata.com/api/v1/set-integration-status" \
-u "YOUR_CREDENTIAL_ID:YOUR_CREDENTIAL_KEY" \
-H "Content-Type: application/json" \
-d '{
"wl_customer_id": "12345",
"wl_env_id": "us10",
"integrations": [
{"source_uuid": "abc-123", "is_disabled": true},
{"source_uuid": "def-456", "is_disabled": false}
]
}'

Returns 204 No Content on success.

StatusMeaning
404One or more integration UUIDs were not found
401Missing or invalid API credentials
  • Start with page=1 and increment until you receive an empty array
  • Page sizes above 10,000 may time out; stick to 1,000–5,000 for reliability
  • The API reads up to 10 million rows per request internally
  • Cache is keyed by the stream ID, not by page parameters

Exporting a dataset:

import requests
credential_id = "YOUR_CREDENTIAL_ID"
credential_key = "YOUR_CREDENTIAL_KEY"
table_id = "YOUR_TABLE_UUID"
page = 1
all_data = []
while True:
response = requests.get(
f"https://app.resplendentdata.com/api/v1/export-data/table/{table_id}?page={page}&page_size=5000",
auth=(credential_id, credential_key)
)
data = response.json()
if not data:
break
all_data.extend(data)
page += 1
# all_data now contains every row from the table