Skip to main content
Experience faster, smarter testing with BrowserStack AI Agents. See what your workflow’s been missing. Explore now!
No Result Found
Get your setup working faster. Join our Discord for optimisation tips from elite testers. Join our DiscordJoin our Discord

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.

GET /api/v1/public/projects/{project_id}/environments

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 example PR-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 true to include the resolved HOST_URL of 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 50 and the maximum is 100.

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]

    Environments that match the request.

    β–Ά SHOW VALUES
    • 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]

      Test suites that use the environment. Not returned for the default environment.

      β–Ά SHOW VALUES
      • id String

        Unique identifier.

      • name String

        Display name.

    • host_url String

      Resolved HOST_URL of the environment. Returned only when you set include_host_url to true.

  • paging Object

    Pagination details of the response.

    β–Ά SHOW VALUES
    • 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_effort is true, this is an upper bound.

    • total_pages Integer

      Total number of pages. When best_effort is true, this is an upper bound.

    • best_effort Boolean

      Returned as true when total and total_pages are upper bounds rather than exact counts. When you see it, page through the results until you receive an empty list instead of relying on total_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.

GET /api/v1/public/projects/{project_id}/global-variables

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 example PR-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 404 response.

  • overridden_only boolean

    On a non-default environment, set to true to 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 50 and the maximum is 100.

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]

    Global variables that match the request. Variables of type secret or masked are never returned.

    β–Ά SHOW VALUES
    • 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

    Pagination details of the response.

    β–Ά SHOW VALUES
    • 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_effort is true, this is an upper bound.

    • total_pages Integer

      Total number of pages. When best_effort is true, this is an upper bound.

    • best_effort Boolean

      Returned as true when total and total_pages are upper bounds rather than exact counts. When you see it, page through the results until you receive an empty list instead of relying on total_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.

GET /api/v1/public/projects/{project_id}/datasets

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 example PR-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 50 and the maximum is 100.

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]

    Datasets that match the request.

    β–Ά SHOW VALUES
    • id String

      Unique identifier of the dataset.

    • name String

      Name of the dataset.

    • description String

      Description of the dataset. null when 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]

      Tests that use the dataset.

      β–Ά SHOW VALUES
      • id String

        Unique identifier.

      • name String

        Display name.

    • modules Array[Object]

      Modules that use the dataset.

      β–Ά SHOW VALUES
      • id String

        Unique identifier.

      • name String

        Display name.

  • paging Object

    Pagination details of the response.

    β–Ά SHOW VALUES
    • 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_effort is true, this is an upper bound.

    • total_pages Integer

      Total number of pages. When best_effort is true, this is an upper bound.

    • best_effort Boolean

      Returned as true when total and total_pages are upper bounds rather than exact counts. When you see it, page through the results until you receive an empty list instead of relying on total_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.

GET /api/v1/public/projects/{project_id}/database-connections

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 example PR-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 50 and the maximum is 100.

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]

    Database connections in the project. Passwords and extra connection settings are never returned.

    β–Ά SHOW VALUES
    • 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. null when 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

      User who last updated the connection.

      β–Ά SHOW VALUES
      • 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

    Pagination details of the response.

    β–Ά SHOW VALUES
    • 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_effort is true, this is an upper bound.

    • total_pages Integer

      Total number of pages. When best_effort is true, this is an upper bound.

    • best_effort Boolean

      Returned as true when total and total_pages are upper bounds rather than exact counts. When you see it, page through the results until you receive an empty list instead of relying on total_pages. Absent when the counts are exact.

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.

We're continuously improving our docs. We'd love to know what you liked





Thank you for your valuable feedback

Download Copy Check Circle