Data configuration API for Low Code Automation
Read the environments, global variables, datasets, and database connections configured in a Low Code Automation project.
These endpoints return the test data setup of a project. All four require the View data configuration role permission, and all four accept the name, page, and per_page parameters. For authentication and the base URL, see the Low Code Automation Reference API overview.
Secret values are excluded from every response on this page.
List environments
Fetches the environments configured in a project.
Request parameters
In the curl request, replace YOUR_USERNAME and YOUR_ACCESS_KEY with your accountβs username and access key.
Request
curl -u "YOUR_USERNAME:YOUR_ACCESS_KEY" \
-X GET "https://lcnc-api.browserstack.com/api/v1/public/projects/22530/environments?include_host_url=true&page=1&per_page=50" \
-H "accept: application/json"
-
project_id* string
Unique identifier of the project. Use either the integer Project Key, for example
22530, or the Project ID, for examplePR-1. To find both, open your project, click Settings, then General, and look under Project details. -
name string
Return only environments whose name matches this value.
-
include_host_url boolean
Set to
trueto include the resolvedHOST_URLof each environment. Leave this off unless you need the URLs, because it slows the response. -
page integer
Page to fetch. Pages are 1-based. The default is
1. -
per_page integer
Number of records per page. The default is
50and the maximum is100.
Response attributes 200 application/json
Response
{
"environments": [
{
"id": "default",
"name": "Default",
"description": "Default Environment",
"host_url": "https://bstackdemo.com"
},
{
"id": "fbc7267d6719c581e5dfb69f690f18a9c47fbc53",
"name": "Staging",
"description": "Staging environment for release candidates",
"used_in_suites_count": 0,
"used_in_suites": [],
"host_url": "https://staging.example.com"
}
],
"paging": {
"page": 1,
"per_page": 50,
"total": 2,
"total_pages": 1,
"best_effort": true
}
}
-
environments Array[Object]
βΆ SHOW VALUESEnvironments that match the request.
-
id String
Unique identifier of the environment. The default environment has the ID
default. -
name String
Name of the environment.
-
description String
Description of the environment.
-
used_in_suites_count Integer
Number of test suites that use the environment. Not returned for the default environment.
-
used_in_suites Array[Object]
βΆ SHOW VALUESTest suites that use the environment. Not returned for the default environment.
-
id String
Unique identifier.
-
name String
Display name.
-
-
host_url String
Resolved
HOST_URLof the environment. Returned only when you setinclude_host_urltotrue.
-
-
paging Object
βΆ SHOW VALUESPagination details of the response.
-
page Integer
Page returned. Pages are 1-based.
-
per_page Integer
Number of records per page.
-
total Integer
Total number of records that match the request. When
best_effortistrue, this is an upper bound. -
total_pages Integer
Total number of pages. When
best_effortistrue, this is an upper bound. -
best_effort Boolean
Returned as
truewhentotalandtotal_pagesare upper bounds rather than exact counts. When you see it, page through the results until you receive an empty list instead of relying ontotal_pages. Absent when the counts are exact.
-
Response 401 application/json
The access key is missing or invalid.
Response
{
"error": {
"code": "unauthenticated",
"message": "string"
}
}
Response 403 application/json
Your role doesnβt have the View data configuration permission.
Response
{
"error": {
"code": "forbidden_rbac",
"message": "string"
}
}
Response 503 application/json
An upstream dependency is unavailable.
Response
{
"error": {
"code": "dependency_unavailable",
"message": "string"
}
}
List global variables
Fetches the global variables in a project. Variables of type secret or masked are never returned.
Request parameters
Request
curl -u "YOUR_USERNAME:YOUR_ACCESS_KEY" \
-X GET "https://lcnc-api.browserstack.com/api/v1/public/projects/40906/global-variables?environment=fbc7267d6719c581e5dfb69f690f18a9c47fbc53&overridden_only=true" \
-H "accept: application/json"
-
project_id* string
Unique identifier of the project. Use either the integer Project Key, for example
22530, or the Project ID, for examplePR-1. To find both, open your project, click Settings, then General, and look under Project details. -
environment string
Unique identifier of the environment to read variables from. The default is the projectβs default environment. An unknown identifier returns a
404response. -
overridden_only boolean
On a non-default environment, set to
trueto return only the variables overridden against the default environment. -
name string
Return only variables whose name matches this value.
-
page integer
Page to fetch. Pages are 1-based. The default is
1. -
per_page integer
Number of records per page. The default is
50and the maximum is100.
Response attributes 200 application/json
Response
{
"variables": [
{
"hashed_id": "4c81ba90fe12",
"name": "BASE_URL",
"type": "string",
"value": "https://staging.bstackdemo.com"
}
],
"paging": {
"page": 1,
"per_page": 50,
"total": 1,
"total_pages": 1,
"best_effort": true
}
}
-
variables Array[Object]
βΆ SHOW VALUESGlobal variables that match the request. Variables of type secret or masked are never returned.
-
hashed_id String
Unique identifier of the variable.
-
name String
Name of the variable.
-
type String
Type of the variable, for example
string. -
value String
Value of the variable in the selected environment. Variables of type secret or masked are never returned.
-
-
paging Object
βΆ SHOW VALUESPagination details of the response.
-
page Integer
Page returned. Pages are 1-based.
-
per_page Integer
Number of records per page.
-
total Integer
Total number of records that match the request. When
best_effortistrue, this is an upper bound. -
total_pages Integer
Total number of pages. When
best_effortistrue, this is an upper bound. -
best_effort Boolean
Returned as
truewhentotalandtotal_pagesare upper bounds rather than exact counts. When you see it, page through the results until you receive an empty list instead of relying ontotal_pages. Absent when the counts are exact.
-
Response 400 application/json
Set environment when you set overridden_only.
Response
{
"error": {
"code": "invalid_request",
"message": "string"
}
}
Response 401 application/json
The access key is missing or invalid.
Response
{
"error": {
"code": "unauthenticated",
"message": "string"
}
}
Response 403 application/json
Your role doesnβt have the View data configuration permission.
Response
{
"error": {
"code": "forbidden_rbac",
"message": "string"
}
}
Response 404 application/json
The environment doesnβt exist.
Response
{
"error": {
"code": "not_found",
"message": "string"
}
}
Response 503 application/json
An upstream dependency is unavailable.
Response
{
"error": {
"code": "dependency_unavailable",
"message": "string"
}
}
List datasets
Fetches the datasets in a project, along with the tests and modules that use each one.
Request parameters
Request
curl -u "YOUR_USERNAME:YOUR_ACCESS_KEY" \
-X GET "https://lcnc-api.browserstack.com/api/v1/public/projects/PR-1/datasets?name=users" \
-H "accept: application/json"
-
project_id* string
Unique identifier of the project. Use either the integer Project Key, for example
22530, or the Project ID, for examplePR-1. To find both, open your project, click Settings, then General, and look under Project details. -
name string
Return only datasets whose name matches this value.
-
page integer
Page to fetch. Pages are 1-based. The default is
1. -
per_page integer
Number of records per page. The default is
50and the maximum is100.
Response attributes 200 application/json
The paging object on this endpoint always carries best_effort. Page through the results until you receive an empty list rather than relying on total_pages.
Response
{
"datasets": [
{
"id": "940f4215f01ee239b1be0585d284cad117abaaac",
"name": "users_signup",
"description": null,
"file_name": "users_signup.csv",
"column_names": [
"name",
"age",
"city"
],
"column_count": 3,
"row_count": 3,
"used_in_tests_count": 0,
"used_in_modules_count": 1,
"tests": [],
"modules": [
{
"id": "a229c3482c7ed5b2070a49417c09d7e5abf8a92c",
"name": "User sign-up module"
}
]
}
],
"paging": {
"page": 1,
"per_page": 50,
"total": 1,
"total_pages": 1,
"best_effort": true
}
}
-
datasets Array[Object]
βΆ SHOW VALUESDatasets that match the request.
-
id String
Unique identifier of the dataset.
-
name String
Name of the dataset.
-
description String
Description of the dataset.
nullwhen not set. -
file_name String
Name of the uploaded file.
-
column_names Array[String]
Column names in the dataset.
-
column_count Integer
Number of columns.
-
row_count Integer
Number of rows.
-
used_in_tests_count Integer
Number of tests that use the dataset.
-
used_in_modules_count Integer
Number of modules that use the dataset.
-
tests Array[Object]
βΆ SHOW VALUESTests that use the dataset.
-
id String
Unique identifier.
-
name String
Display name.
-
-
modules Array[Object]
βΆ SHOW VALUESModules that use the dataset.
-
id String
Unique identifier.
-
name String
Display name.
-
-
-
paging Object
βΆ SHOW VALUESPagination details of the response.
-
page Integer
Page returned. Pages are 1-based.
-
per_page Integer
Number of records per page.
-
total Integer
Total number of records that match the request. When
best_effortistrue, this is an upper bound. -
total_pages Integer
Total number of pages. When
best_effortistrue, this is an upper bound. -
best_effort Boolean
Returned as
truewhentotalandtotal_pagesare upper bounds rather than exact counts. When you see it, page through the results until you receive an empty list instead of relying ontotal_pages. Absent when the counts are exact.
-
Response 401 application/json
The access key is missing or invalid.
Response
{
"error": {
"code": "unauthenticated",
"message": "string"
}
}
Response 403 application/json
Your role doesnβt have the View data configuration permission.
Response
{
"error": {
"code": "forbidden_rbac",
"message": "string"
}
}
Response 503 application/json
An upstream dependency is unavailable.
Response
{
"error": {
"code": "dependency_unavailable",
"message": "string"
}
}
List database connections
Fetches the database connections in a project. Connection passwords and extra connection settings are never returned. The total field is an exact count.
Request parameters
Request
curl -u "YOUR_USERNAME:YOUR_ACCESS_KEY" \
-X GET "https://lcnc-api.browserstack.com/api/v1/public/projects/PR-1/database-connections" \
-H "accept: application/json"
-
project_id* string
Unique identifier of the project. Use either the integer Project Key, for example
22530, or the Project ID, for examplePR-1. To find both, open your project, click Settings, then General, and look under Project details. -
name string
Return only connections whose name matches this value.
-
page integer
Page to fetch. Pages are 1-based. The default is
1. -
per_page integer
Number of records per page. The default is
50and the maximum is100.
Response attributes 200 application/json
Response
{
"database_connections": [
{
"id": "caf9f52603383ea5bf7d430979a039f1779f6f21",
"name": "Orders DB",
"engine": "MySql",
"description": "Read replica used by checkout assertions",
"local_identifier": null,
"host": "orders-db.example.com",
"port": "3306",
"database_name": "orders",
"user_name": "lca_reader",
"used_in_tests_count": 1,
"used_in_modules_count": 0,
"used_in_datasets_count": 0,
"last_updated_at": "2026-07-14T16:20:03Z",
"last_updated_by": {
"user_id": 2241,
"user_name": "alex.johnson"
}
}
],
"paging": {
"page": 1,
"per_page": 50,
"total": 1,
"total_pages": 1
}
}
-
database_connections Array[Object]
βΆ SHOW VALUESDatabase connections in the project. Passwords and extra connection settings are never returned.
-
id String
Unique identifier of the database connection.
-
name String
Name of the database connection.
-
engine String
Database engine, for example
MySql. -
description String
Description of the connection. Empty when not set.
-
local_identifier String
Local identifier used to reach a database on an internal network.
nullwhen not set. -
host String
Host name of the database server.
-
port String
Port of the database server.
-
database_name String
Name of the database.
-
user_name String
Database user the connection signs in as. The password is never returned.
-
used_in_tests_count Integer
Number of tests that use the connection.
-
used_in_modules_count Integer
Number of modules that use the connection.
-
used_in_datasets_count Integer
Number of datasets that use the connection.
-
last_updated_at String
When the connection was last updated, as an ISO 8601 timestamp.
-
last_updated_by Object
βΆ SHOW VALUESUser who last updated the connection.
-
user_id Integer
User ID of the person who last updated the connection.
-
user_name String
Username of the person who last updated the connection.
-
-
-
paging Object
βΆ SHOW VALUESPagination details of the response.
-
page Integer
Page returned. Pages are 1-based.
-
per_page Integer
Number of records per page.
-
total Integer
Total number of records that match the request. When
best_effortistrue, this is an upper bound. -
total_pages Integer
Total number of pages. When
best_effortistrue, this is an upper bound. -
best_effort Boolean
Returned as
truewhentotalandtotal_pagesare upper bounds rather than exact counts. When you see it, page through the results until you receive an empty list instead of relying ontotal_pages. Absent when the counts are exact.
-
Related topics
We're sorry to hear that. Please share your feedback so we can do better
Contact our Support team for immediate help while we work on improving our docs.