List Modules
curl --request GET \
--url https://api.docketqa.com/modules/list \
--header 'X-API-KEY: <api-key>'import requests
url = "https://api.docketqa.com/modules/list"
headers = {"X-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://api.docketqa.com/modules/list', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.docketqa.com/modules/list",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.docketqa.com/modules/list"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.docketqa.com/modules/list")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.docketqa.com/modules/list")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"modules": [
{
"id": 123,
"title": "<string>",
"type": "<string>",
"status": "<string>",
"step_count": 123,
"company_id": 123,
"test_blueprint_category_id": 123,
"test_blueprint_category_name": "<string>",
"folder_path": "<string>",
"test_steps": [
{
"id": 123,
"step_number": 123,
"type": "<string>",
"action": "<string>",
"use_vision": true,
"test_blueprint_module_id": 123,
"api_request": {},
"trigger_run_config": {},
"disable_self_healing": true,
"click_count": 123
}
],
"usage_count": 123,
"created_at": "<string>",
"updated_at": "<string>"
}
],
"pagination": {
"page": 123,
"per_page": 123,
"total": 123,
"total_pages": 123
},
"subfolders": [
"<string>"
]
}Modules
List Modules
GET
/
modules
/
list
List Modules
curl --request GET \
--url https://api.docketqa.com/modules/list \
--header 'X-API-KEY: <api-key>'import requests
url = "https://api.docketqa.com/modules/list"
headers = {"X-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://api.docketqa.com/modules/list', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.docketqa.com/modules/list",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.docketqa.com/modules/list"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.docketqa.com/modules/list")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.docketqa.com/modules/list")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"modules": [
{
"id": 123,
"title": "<string>",
"type": "<string>",
"status": "<string>",
"step_count": 123,
"company_id": 123,
"test_blueprint_category_id": 123,
"test_blueprint_category_name": "<string>",
"folder_path": "<string>",
"test_steps": [
{
"id": 123,
"step_number": 123,
"type": "<string>",
"action": "<string>",
"use_vision": true,
"test_blueprint_module_id": 123,
"api_request": {},
"trigger_run_config": {},
"disable_self_healing": true,
"click_count": 123
}
],
"usage_count": 123,
"created_at": "<string>",
"updated_at": "<string>"
}
],
"pagination": {
"page": 123,
"per_page": 123,
"total": 123,
"total_pages": 123
},
"subfolders": [
"<string>"
]
}Retrieve modules in your account, with optional filtering and step inclusion.
Fetch specific modules with steps:
Query parameters
string
Comma-separated list of module IDs to fetch. Omit to retrieve all modules.
boolean
Whether to include the full step details (flattened, with nested modules expanded) for each module. Defaults to
false.string
When
with_steps=true, scopes each step’s internal cache to a specific execution config. Typically you don’t construct this yourself — the runtime resolves it for you when a run is triggered.string
Filter by test suite ID. Pass
"none" to get modules with no suite.string
Filter by folder path. Defaults to
"/" (root folder).boolean
If
true, return modules from all folders. Defaults to false.string
Search modules by title (case-insensitive partial match).
integer
Page number for pagination (1-indexed). Use with
per_page.integer
Number of results per page. Enables pagination when set.
integer
Offset for pagination. Use with
limit as an alternative to page/per_page.integer
Maximum number of results. Use with
offset.Example requests
Fetch all modules without steps:GET /modules/list
GET /modules/list?ids=962,964&with_steps=true
Response
object[]
An array of module objects.
Show Module properties
Show Module properties
integer
The unique ID of the module.
string
The module name.
string
Always
"step_module" for modules.string
The module status (e.g.
"active").integer
Number of steps in the module.
integer
Your company ID.
integer
The test suite ID, if set.
string
The name of the test suite, if set.
string
The folder path of the module.
object[]
The steps in the module. Only included when
with_steps=true. When included, nested step_module steps are flattened into their individual steps.Show Step properties
Show Step properties
integer
The unique step ID.
integer
Position of this step in the sequence.
string
The step type (see step types for all values).
string
The step instruction.
boolean
Whether vision is enabled for this step.
integer
The referenced module ID (for
step_module steps).object
The API request configuration (for
api steps).object
The trigger run configuration (for
trigger_run steps).boolean
Whether self-healing is disabled.
integer
Number of clicks for this step.
integer
Number of tests using this module.
string
ISO 8601 timestamp of when the module was created.
string
ISO 8601 timestamp of the last update.
object
string[]
List of subfolder paths within the current folder. Not included when using
search.Example response
{
"modules": [
{
"id": 962,
"title": "Login Setup",
"type": "step_module",
"status": "active",
"step_count": 1,
"company_id": 23,
"test_blueprint_category_id": null,
"folder_path": "/",
"usage_count": 0,
"test_steps": [
{
"id": 23101,
"step_number": 1,
"type": "act",
"action": "Navigate to the login page",
"use_vision": false,
"test_blueprint_module_id": null,
"api_request": null,
"trigger_run_config": null,
"disable_self_healing": false,
"click_count": 1
}
],
"created_at": "2025-12-13T18:53:37.588258+00:00",
"updated_at": "2025-12-13T18:53:37.588265+00:00"
},
{
"id": 964,
"title": "Auth Token Module",
"type": "step_module",
"status": "active",
"step_count": 3,
"company_id": 23,
"test_blueprint_category_id": null,
"folder_path": "/",
"usage_count": 0,
"test_steps": [
{
"id": 23103,
"step_number": 1,
"type": "act",
"action": "First AI step instructions",
"use_vision": false,
"test_blueprint_module_id": null,
"api_request": null,
"disable_self_healing": false,
"click_count": 1
},
{
"id": 23104,
"step_number": 2,
"type": "api",
"action": "",
"use_vision": false,
"test_blueprint_module_id": null,
"api_request": {
"url": "https://api.example.com/auth",
"method": "POST",
"timeout": 60,
"retries": 1
},
"disable_self_healing": false,
"click_count": 1
},
{
"id": 23105,
"step_number": 3,
"type": "assert",
"action": "Verify auth succeeded",
"use_vision": false,
"test_blueprint_module_id": null,
"api_request": null,
"disable_self_healing": false,
"click_count": 1
}
],
"created_at": "2025-12-13T18:58:45.895773+00:00",
"updated_at": "2025-12-13T18:58:45.895781+00:00"
}
],
"subfolders": ["/Auth Modules"]
}
⌘I

