Create Module
curl --request POST \
--url https://api.docketqa.com/modules/create \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"title": "<string>",
"steps": [
{
"step_number": 123,
"type": "<string>",
"action": "<string>",
"use_vision": true,
"test_blueprint_module_id": 123,
"api_request": {
"url": "<string>",
"method": "<string>",
"headers": {},
"body": {},
"timeout": 123,
"retries": 123,
"backoff_seconds": 123,
"should_refresh_page": true
},
"trigger_run_config": {
"test_blueprint_id": 123
},
"assert_images_count": 123,
"disable_self_healing": true,
"click_count": 123,
"hold_start_duration": 123,
"hold_end_duration": 123
}
],
"test_blueprint_category_id": 123,
"folder_path": "<string>"
}
'{
"message": "<string>",
"test_blueprint": {
"id": 123,
"title": "<string>",
"type": "<string>",
"status": "<string>",
"company_id": 123,
"test_blueprint_category_id": 123,
"folder_path": "<string>",
"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,
"hold_start_duration": 123,
"hold_end_duration": 123,
"assert_images_count": 123,
"attached_file_ids": [
123
]
}
],
"usage_count": 123,
"test_blueprints_using_module": [
{}
],
"created_at": "<string>",
"updated_at": "<string>"
}
}Modules
Create Module
POST
/
modules
/
create
Create Module
curl --request POST \
--url https://api.docketqa.com/modules/create \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"title": "<string>",
"steps": [
{
"step_number": 123,
"type": "<string>",
"action": "<string>",
"use_vision": true,
"test_blueprint_module_id": 123,
"api_request": {
"url": "<string>",
"method": "<string>",
"headers": {},
"body": {},
"timeout": 123,
"retries": 123,
"backoff_seconds": 123,
"should_refresh_page": true
},
"trigger_run_config": {
"test_blueprint_id": 123
},
"assert_images_count": 123,
"disable_self_healing": true,
"click_count": 123,
"hold_start_duration": 123,
"hold_end_duration": 123
}
],
"test_blueprint_category_id": 123,
"folder_path": "<string>"
}
'{
"message": "<string>",
"test_blueprint": {
"id": 123,
"title": "<string>",
"type": "<string>",
"status": "<string>",
"company_id": 123,
"test_blueprint_category_id": 123,
"folder_path": "<string>",
"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,
"hold_start_duration": 123,
"hold_end_duration": 123,
"assert_images_count": 123,
"attached_file_ids": [
123
]
}
],
"usage_count": 123,
"test_blueprints_using_module": [
{}
],
"created_at": "<string>",
"updated_at": "<string>"
}
}Create a reusable module that can be shared across multiple tests. A single module is reusable across every browser viewport, iOS device, and Android device. Modules support all step types including AI steps, assertions, API steps, recorded steps, and nested modules.
Request body
The name of the module. Must be between 1 and 128 characters and unique within your account.
An ordered list of steps for the module.
Show Step object properties
Show Step object properties
The position of this step in the sequence (starting from 1). Must be unique within the module.
The step type. Available types:AI steps:
"act"— an AI-driven browser action (e.g. click, type, navigate). Action text must not be empty."assert"— an AI-driven assertion that verifies something on the page.
"step_module"— execute another module (nested). Requirestest_blueprint_module_id."trigger_run"— trigger another test as a sub-run. Requirestrigger_run_config.
"api"— make an HTTP request. Requiresapi_request.
"key"— press a keyboard key."type"— type text into the focused element."mouse_move"— move the mouse to coordinates."left_click"— left click at coordinates."left_click_drag"— click and drag from one point to another."right_click"— right click at coordinates."double_click"— double click at coordinates."triple_click"— triple click at coordinates."scroll"— scroll the page."wait"— wait for a duration.
"deeplink"— open a deep link URL. Only executed when the module runs on an iOS or Android worker; ignored on browser workers.
The legacy
"module" type is not allowed. Use "step_module" for nested modules.A natural language instruction describing what the step should do. For recorded steps, this contains the coordinates or key data. For
api steps, this can be left empty.Whether to enable vision (screenshot analysis) for this step. Defaults to
false.The ID of the module to execute. Required when
type is "step_module".The HTTP request configuration. Required for steps with
type: "api".Show API request properties
Show API request properties
The full URL to send the request to.
The HTTP method (e.g.
"GET", "POST", "PUT", "DELETE").Key-value pairs for request headers.
The request body (for POST, PUT, PATCH requests).
Request timeout in seconds. Defaults to
60.Number of retries on failure. Defaults to
1.Delay between retries in seconds. Defaults to
2.5.Whether to refresh the browser page after the API call. Defaults to
false.Configuration for triggering another test. Required when
type is "trigger_run".Show Trigger run config properties
Show Trigger run config properties
The ID of the test blueprint to trigger as a sub-run.
Number of screenshot images to capture for assertion steps. Defaults to
5.Disable automatic self-healing for this step. Defaults to
false.Number of clicks to perform for click-type steps. Defaults to
1.Duration in seconds to hold before the action. Defaults to
0.Duration in seconds to hold after the action. Defaults to
0.The ID of the test suite this module belongs to.
The folder path for organizing the module. Defaults to
"/".Example request body
{
"title": "Login Setup Module",
"steps": [
{
"step_number": 1,
"type": "act",
"action": "Navigate to the login page",
"use_vision": false
},
{
"step_number": 2,
"type": "api",
"action": "",
"api_request": {
"url": "https://api.example.com/auth/token",
"method": "POST",
"headers": {},
"body": {
"username": "testuser",
"password": "testpass"
},
"timeout": 60,
"retries": 1,
"backoff_seconds": 2.5,
"should_refresh_page": false
}
},
{
"step_number": 3,
"type": "assert",
"action": "Verify the auth token was returned",
"use_vision": false
}
]
}
Response
A confirmation message (e.g.
"Test blueprint created successfully").The created module object.
Show Properties
Show Properties
The unique ID of the module.
The module name.
Always
"step_module" for modules.The module status (e.g.
"active").Your company ID.
The test suite ID, if set.
The folder path of the module.
The list of module steps with generated IDs.
Show Step response properties
Show Step response properties
The unique step ID.
Position of this step in the sequence.
The step type (see step types for all values).
The step instruction.
Whether vision is enabled for this step.
The referenced module ID (for
step_module steps).The API request configuration (for
api steps).The trigger run configuration (for
trigger_run steps).Whether self-healing is disabled.
Number of clicks for this step.
Hold duration before the action.
Hold duration after the action.
Number of assertion images captured.
IDs of files attached to this step.
Number of tests using this module (always
0 for newly created modules).Tests referencing this module (empty for new modules).
ISO 8601 timestamp of when the module was created.
ISO 8601 timestamp of the last update.
Example response
{
"message": "Test blueprint created successfully",
"test_blueprint": {
"id": 964,
"title": "Login Setup Module",
"type": "step_module",
"status": "active",
"company_id": 23,
"test_blueprint_category_id": null,
"folder_path": "/",
"usage_count": 0,
"test_blueprints_using_module": [],
"steps": [
{
"id": 23103,
"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
},
{
"id": 23104,
"step_number": 2,
"type": "api",
"action": "",
"use_vision": false,
"test_blueprint_module_id": null,
"api_request": {
"url": "https://api.example.com/auth/token",
"method": "POST",
"headers": {},
"body": { "username": "testuser", "password": "testpass" },
"timeout": 60,
"retries": 1,
"backoff_seconds": 2.5,
"should_refresh_page": false
},
"trigger_run_config": null,
"disable_self_healing": false,
"click_count": 1
},
{
"id": 23105,
"step_number": 3,
"type": "assert",
"action": "Verify the auth token was returned",
"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:58:45.895773+00:00",
"updated_at": "2025-12-13T18:58:45.895781+00:00"
}
}
⌘I

