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}
Parameter Type Description
data_stream_type string Either table (raw dataset) or modifier (filtered/transformed dataset)
data_stream_id string UUID of the table or modifier you want to export
Parameter Type Default Description
page integer 1 Page number to retrieve (minimum: 1)
page_size integer 1000 Number 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.

Status Code Meaning
400 page must be at least 1 Invalid page parameter
400 pageSize must be at least 1 Invalid page_size parameter
401 Unauthorized Missing or invalid API key
404 Table not found The table UUID does not exist or you do not have access
404 Data modifier not found The modifier UUID does not exist or you do not have access
429 Rate limit exceeded Too 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 Type JSON Output Example
Integer Number 42
Decimal/Float Number 123.45
String/Text String "Hello"
Boolean Boolean true or false
Date ISO 8601 string "2024-01-15"
DateTime ISO 8601 string "2024-01-15T14:30:00"
Null values null null

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
Parameter Type Required Description
wl_customer_id string Yes Customer identifier
wl_env_id string Yes Environment identifier

Returns an array of integration objects:

Field Type Description
source_uuid string Unique identifier for the integration
source_name string Display name
engine_type string Integration type (e.g., connectwise, quickbooks)
is_disabled boolean Whether the integration is currently disabled
last_sync datetime Timestamp of the last successful sync (or null)
failed_attempts integer Number 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
Parameter Type Required Description
wl_customer_id string Yes Customer identifier
wl_env_id string Yes Environment identifier
integrations array Yes List of status updates (see below)

Each item in integrations:

Field Type Required Description
source_uuid string Yes UUID of the integration to update
is_disabled boolean Yes true 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.

Status Meaning
404 One or more integration UUIDs were not found
401 Missing 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