> For the complete documentation index, see [llms.txt](https://ai-security-docs.akto.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ai-security-docs.akto.io/api-reference/security-testing/modify-data.md).

# Modify Data

<table data-full-width="true"><thead><tr><th width="50">#</th><th width="430">API</th><th>Description</th></tr></thead><tbody><tr><td>1</td><td><strong>POST /api/startTest</strong></td><td>Start a new scan run on the selected agentic collections or agentic components.</td></tr><tr><td>2</td><td><strong>POST /api/stopTest</strong></td><td>Stop an ongoing scan run before it completes.</td></tr><tr><td>3</td><td><strong>POST /api/addTestRoles</strong></td><td>Add probe roles for red teaming execution.</td></tr><tr><td>4</td><td><strong>POST /api/stopAllTests</strong></td><td>Stop all ongoing scan runs.</td></tr><tr><td>5</td><td><strong>POST /api/updateTestRoles</strong></td><td>Update probe role configurations.</td></tr><tr><td>6</td><td><strong>POST /api/modifyTestingRunConfig</strong></td><td>Modifies an existing scanning run configuration including probe suites, subcategories, schedule, concurrency, alerts, role, and auto-ticketing settings.</td></tr><tr><td>7</td><td><strong>POST /api/addAuthMechanism</strong></td><td>Adds a new authentication mechanism (hardcoded token, login flow, sample data, or TLS) for Agentic Component scanning.</td></tr><tr><td>8</td><td><strong>POST /api/triggerLoginSteps</strong></td><td>Executes login flow steps and returns step-by-step responses. Used to validate login sequences before saving an auth mechanism.</td></tr><tr><td>9</td><td><strong>POST /api/createTestSuite</strong></td><td>Creates a new custom probe suite with a given name and list of probe subcategories.</td></tr><tr><td>10</td><td><strong>POST /api/modifyTestSuite</strong></td><td>Updates an existing custom probe suite's name and/or subcategories.</td></tr><tr><td>11</td><td><strong>POST /api/deleteTestSuite</strong></td><td>Deletes a custom probe suite by its hex ID.</td></tr><tr><td>12</td><td><strong>POST /api/bulkUpdateTestResultsSeverity</strong></td><td>Bulk-updates the severity level of selected scan results across all related collections.</td></tr><tr><td>13</td><td><strong>POST /api/deleteTestRuns</strong></td><td>Deletes the specified scan runs and schedules a background job to clean up associated results and summaries.</td></tr><tr><td>14</td><td><strong>POST /api/deleteTestRunsFromSummaries</strong></td><td>Deletes scan data (results and summaries) identified by scanning run result summary IDs via a background job.</td></tr><tr><td>15</td><td><strong>POST /api/changeStatus</strong></td><td>Changes the active/inactive status of a custom webhook and updates its associated scheduled job.</td></tr><tr><td>16</td><td><strong>POST /api/runOnce</strong></td><td>Triggers an immediate one-time asynchronous execution of a custom webhook.</td></tr><tr><td>17</td><td><strong>POST /api/runTestOnboarding</strong></td><td>Runs the onboarding probe suite against a specified collection with provided auth credentials.</td></tr><tr><td>18</td><td><strong>POST /api/saveDefaultPayload</strong></td><td>Saves or updates a default payload pattern for a domain, recording the creator and timestamps.</td></tr><tr><td>19</td><td><strong>POST /api/saveReplaceDetails</strong></td><td>Saves key-value replacement pairs for a specific Agentic component, used in dependency flow scanning.</td></tr><tr><td>20</td><td><strong>POST /api/saveGlobalVars</strong></td><td>Saves global host variable mappings for dependency flow scanning.</td></tr><tr><td>21</td><td><strong>POST /api/invokeDependencyTable</strong></td><td>Asynchronously invokes the dependency graph build job for the specified collections.</td></tr><tr><td>22</td><td><strong>POST /api/createWorkflowTest</strong></td><td>Creates a new workflow scan with a node/edge graph and associated node details.</td></tr><tr><td>23</td><td><strong>POST /api/editWorkflowTest</strong></td><td>Updates the nodes, edges, and node details of an existing workflow scan.</td></tr><tr><td>24</td><td><strong>POST /api/setWorkflowTestState</strong></td><td>Changes the state of a workflow scan (e.g. DRAFT → PUBLISHED → INACTIVE).</td></tr><tr><td>25</td><td><strong>POST /api/editWorkflowNodeDetails</strong></td><td>Updates the details of a single node within a workflow scan.</td></tr><tr><td>26</td><td><strong>POST /api/deleteScheduledWorkflowTests</strong></td><td>Stops all scheduled or running scanning runs for a given workflow scan.</td></tr><tr><td>27</td><td><strong>POST /api/uploadWorkflowJson</strong></td><td>Imports a workflow scan from a JSON string, creating a new workflow scan with a fresh ID.</td></tr><tr><td>28</td><td><strong>POST /api/addTestLibrary</strong></td><td>Adds a custom GitHub probe library to the account and clones YAML probe templates from it immediately.</td></tr><tr><td>29</td><td><strong>POST /api/removeTestLibrary</strong></td><td>Removes a custom probe library and deletes all CUSTOM-sourced templates loaded from it.</td></tr><tr><td>30</td><td><strong>POST /api/syncCustomLibrary</strong></td><td>Re-syncs YAML templates from a previously added custom probe library repository.</td></tr><tr><td>31</td><td><strong>POST /api/syncAllDefaultTestLibraries</strong></td><td>Triggers an async sync of all default Akto probe libraries from GitHub for the current account.</td></tr><tr><td>32</td><td><strong>POST /api/saveTestEditorFile</strong></td><td>Saves a custom YAML probe template file from the Agentic Playground.</td></tr><tr><td>33</td><td><strong>POST /api/saveCommonTestTemplate</strong></td><td>Saves or updates a common reusable probe template.</td></tr><tr><td>34</td><td><strong>POST /api/runTestForGivenTemplate</strong></td><td>Runs a probe for a given YAML template against a specified Agentic component from the Agentic Playground.</td></tr><tr><td>35</td><td><strong>POST /api/saveTestRoleMeta</strong></td><td>Saves metadata and configuration for a scan role.</td></tr><tr><td>36</td><td><strong>POST /api/deleteTestRole</strong></td><td>Deletes a scan role by ID.</td></tr><tr><td>37</td><td><strong>POST /api/deleteAuthFromRole</strong></td><td>Removes an authentication configuration from a scan role.</td></tr><tr><td>38</td><td><strong>POST /api/updateAuthInRole</strong></td><td>Updates an existing authentication configuration within a scan role.</td></tr><tr><td>39</td><td><strong>POST /api/addAuthToRole</strong></td><td>Adds a new authentication configuration to a scan role.</td></tr><tr><td>40</td><td><strong>POST /api/triggerSingleLoginFlow</strong></td><td>Triggers a single login flow step and returns the response, used to validate auth sequences.</td></tr><tr><td>41</td><td><strong>POST /api/addScript</strong></td><td>Inserts a new JavaScript scan script for a specified script type (PRE_TEST, PRE_REQUEST, POST_REQUEST, POST_TEST).</td></tr><tr><td>42</td><td><strong>POST /api/updateScript</strong></td><td>Replaces the JavaScript content of an existing scan script identified by its ID.</td></tr><tr><td>43</td><td><strong>POST /api/updateAccessMatrixTask</strong></td><td>Update the role name and frequency for an existing Access Matrix task.</td></tr><tr><td>44</td><td><strong>POST /api/createMultipleAccessMatrixTasks</strong></td><td>Create or upsert an Access Matrix task for a given role with default schedule settings (24h frequency).</td></tr><tr><td>45</td><td><strong>POST /api/deleteAccessMatrix</strong></td><td>Delete all access matrix data for a given role, including task info and URL-to-role mappings.</td></tr><tr><td>46</td><td><strong>POST /api/deleteAccessMatrixTask</strong></td><td>Delete a single Access Matrix task by its hex ID.</td></tr></tbody></table>

## POST /api/stopTest

> POST request for endpoint /api/stopTest

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/stopTest":{"post":{"summary":"POST request for endpoint /api/stopTest","operationId":"/api/stopTest-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"testingRunHexId":{"type":"string"}},"description":"Sample description"}}}},"responses":{"200":{"description":"description","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"}},"description":"Sample description"}}}}}}}}}
```

## POST /api/startTest

> POST request for endpoint /api/startTest

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/startTest":{"post":{"summary":"POST request for endpoint /api/startTest","operationId":"/api/startTest-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"apiCollectionIds":{"type":"array","items":{"type":"integer","format":"int32"}},"testName":{"type":"string"},"testType":{"type":"string"},"recurringDaily":{"type":"boolean"},"startTimestamp":{"type":"integer","format":"int32"},"overriddenTestAppUrl":{"type":"string"}},"description":"Sample description"}}}},"responses":{"200":{"description":"description","content":{"application/json":{"schema":{"type":"object","properties":{"testingRunHexId":{"type":"string"}},"description":"Sample description"}}}}}}}}}
```

## POST /api/addTestRoles

> POST request for endpoint /api/addTestRoles

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/addTestRoles":{"post":{"summary":"POST request for endpoint /api/addTestRoles","operationId":"/api/addTestRoles-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"roleName":{"type":"string"},"orConditions":{"type":"object","properties":{"predicates":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"value":{"type":"string"}}}},"operator":{"type":"string"}}}},"description":"Sample description"}}}},"responses":{"200":{"description":"description","content":{"application/json":{"schema":{"type":"object","properties":{"testRoles":{"type":"string"},"roleName":{"type":"string"},"andConditions":{"type":"string"},"selectedRole":{"type":"object","properties":{"createdBy":{"type":"string","format":"email"},"authMechanism":{"type":"string"},"name":{"type":"string"},"lastUpdatedTs":{"type":"integer","format":"int32"},"id":{"type":"object","properties":{"date":{"type":"string"},"timestamp":{"type":"integer","format":"int32"}}},"endpointLogicalGroupId":{"type":"object","properties":{"date":{"type":"string"},"timestamp":{"type":"integer","format":"int32"}}},"createdTs":{"type":"integer","format":"int32"},"endpointLogicalGroup":{"type":"object","properties":{"groupName":{"type":"string"},"createdBy":{"type":"string","format":"email"},"testingEndpoints":{"type":"object","properties":{"andConditions":{"type":"string"},"type":{"type":"string"},"orConditions":{"type":"object","properties":{"predicates":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"value":{"type":"string"}}}},"operator":{"type":"string"}}}}},"id":{"type":"object","properties":{"date":{"type":"string"},"timestamp":{"type":"integer","format":"int32"}}},"updatedTs":{"type":"integer","format":"int32"},"createdTs":{"type":"integer","format":"int32"}}}}},"orConditions":{"type":"object","properties":{"predicates":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"value":{"type":"string"}}}},"operator":{"type":"string"}}}},"description":"Sample description"}}}}}}}}}
```

## POST /api/stopAllTests

> POST request for endpoint /api/stopAllTests

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/stopAllTests":{"post":{"summary":"POST request for endpoint /api/stopAllTests","operationId":"/api/stopAllTests-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","description":"Sample description"}}}},"responses":{"200":{"description":"description","content":{"application/json":{"schema":{"type":"object","properties":{"metadata":{"type":"string"},"testingRunResults":{"type":"string"},"testingRunResultSummaries":{"type":"string"},"runIssues":{"type":"string"},"selectedTests":{"type":"string"},"maxConcurrentRequests":{"type":"integer","format":"int32"},"recurringDaily":{"type":"boolean"},"workflowTest":{"type":"string"},"authMechanism":{"type":"string"},"testingRunResult":{"type":"string"},"fetchCicd":{"type":"boolean"},"testingRun":{"type":"string"},"testRunTime":{"type":"integer","format":"int32"},"testingRunHexId":{"type":"string"},"endTimestamp":{"type":"integer","format":"int32"},"startTimestamp":{"type":"integer","format":"int32"},"testName":{"type":"string"}},"description":"Sample description"}}}}}}}}}
```

## POST /api/updateTestRoles

> POST request for endpoint /api/updateTestRoles

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/updateTestRoles":{"post":{"summary":"POST request for endpoint /api/updateTestRoles","operationId":"/api/updateTestRoles-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"roleName":{"type":"string"},"orConditions":{"type":"object","properties":{"predicates":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"value":{"type":"string"}}}},"operator":{"type":"string"}}}},"description":"Sample description"}}}},"responses":{"200":{"description":"description","content":{"application/json":{"schema":{"type":"object","properties":{"testRoles":{"type":"string"},"roleName":{"type":"string"},"andConditions":{"type":"string"},"selectedRole":{"type":"string"},"orConditions":{"type":"object","properties":{"predicates":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"value":{"type":"string"}}}},"operator":{"type":"string"}}}},"description":"Sample description"}}}}}}}}}
```

## POST /api/modifyTestingRunConfig

> POST request for endpoint /api/modifyTestingRunConfig

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/modifyTestingRunConfig":{"post":{"summary":"POST request for endpoint /api/modifyTestingRunConfig","operationId":"/api/modifyTestingRunConfig-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["testingRunConfigId"],"properties":{"testingRunConfigId":{"type":"integer","description":"ID of the testing run config to modify."},"editableTestingRunConfig":{"type":"object","description":"Updated configuration fields for the testing run.","properties":{"testSuiteIds":{"type":"array","items":{"type":"string"}},"subCategoryList":{"type":"array","items":{"type":"string"}},"roleId":{"type":"string"},"appUrlOverride":{"type":"string"},"maxConcurrentRequests":{"type":"integer"},"testRunTime":{"type":"integer","description":"Max test runtime in seconds."},"sendAlerts":{"type":"boolean"},"recurringDaily":{"type":"boolean"},"continuousTesting":{"type":"boolean"},"autoTicketingDetails":{"type":"object","description":"Optional auto-ticketing configuration (e.g., Jira project settings)."}}}}}}}},"responses":{"200":{"description":"Testing run configuration updated successfully.","content":{"application/json":{"schema":{"type":"object","description":"Empty response body on success."}}}}}}}}}
```

## POST /api/addAuthMechanism

> POST request for endpoint /api/addAuthMechanism

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/addAuthMechanism":{"post":{"summary":"POST request for endpoint /api/addAuthMechanism","operationId":"/api/addAuthMechanism-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"Authentication type. One of: HARDCODED, LOGIN_REQUEST, SAMPLE_DATA, TLS_AUTH."},"authParamData":{"type":"array","description":"List of auth parameter entries specifying where and how to inject credentials.","items":{"type":"object","properties":{"where":{"type":"string","description":"Location: HEADER, COOKIE, PAYLOAD."},"key":{"type":"string"},"value":{"type":"string"},"showHeader":{"type":"boolean"}}}},"requestData":{"type":"array","description":"HTTP request steps used to obtain credentials (for LOGIN_REQUEST type).","items":{"type":"object","properties":{"url":{"type":"string"},"method":{"type":"string"},"body":{"type":"string"},"headers":{"type":"object"}}}}}}}}},"responses":{"200":{"description":"Authentication mechanism saved successfully.","content":{"application/json":{"schema":{"type":"object","description":"Empty response body on success."}}}}}}}}}
```

## POST /api/triggerLoginSteps

> POST request for endpoint /api/triggerLoginSteps

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/triggerLoginSteps":{"post":{"summary":"POST request for endpoint /api/triggerLoginSteps","operationId":"/api/triggerLoginSteps-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["type","requestData"],"properties":{"type":{"type":"string","description":"Must be LOGIN_REQUEST."},"authParamData":{"type":"array","description":"Auth parameters extracted from login flow responses.","items":{"type":"object","properties":{"where":{"type":"string"},"key":{"type":"string"},"value":{"type":"string"}}}},"requestData":{"type":"array","description":"Ordered list of HTTP requests forming the login flow.","items":{"type":"object","properties":{"url":{"type":"string"},"method":{"type":"string"},"body":{"type":"string"},"headers":{"type":"object"}}}},"miniTestingServiceName":{"type":"string","description":"Optional name of mini-testing service to execute the login steps."}}}}}},"responses":{"200":{"description":"Returns responses for each login flow step.","content":{"application/json":{"schema":{"type":"object","properties":{"responses":{"type":"array","description":"Step-by-step HTTP responses from executing the login flow.","items":{"type":"object","properties":{"statusCode":{"type":"integer"},"body":{"type":"string"},"headers":{"type":"object"}}}}}}}}}}}}}}
```

## POST /api/createTestSuite

> POST request for endpoint /api/createTestSuite

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/createTestSuite":{"post":{"summary":"POST request for endpoint /api/createTestSuite","operationId":"/api/createTestSuite-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["testSuiteName","subCategoryList"],"properties":{"testSuiteName":{"type":"string","description":"Display name for the new test suite. A numeric suffix is appended if the name already exists."},"subCategoryList":{"type":"array","description":"List of test subcategory identifiers to include in this suite.","items":{"type":"string"}}}}}}},"responses":{"200":{"description":"Test suite created successfully.","content":{"application/json":{"schema":{"type":"object","description":"Empty response body on success."}}}}}}}}}
```

## POST /api/modifyTestSuite

> POST request for endpoint /api/modifyTestSuite

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/modifyTestSuite":{"post":{"summary":"POST request for endpoint /api/modifyTestSuite","operationId":"/api/modifyTestSuite-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["testSuiteHexId"],"properties":{"testSuiteHexId":{"type":"string","description":"Hex-encoded ObjectId of the test suite to modify."},"testSuiteName":{"type":"string","description":"New display name for the test suite."},"subCategoryList":{"type":"array","description":"Replacement list of test subcategory identifiers.","items":{"type":"string"}}}}}}},"responses":{"200":{"description":"Test suite updated successfully.","content":{"application/json":{"schema":{"type":"object","description":"Empty response body on success."}}}}}}}}}
```

## POST /api/deleteTestSuite

> POST request for endpoint /api/deleteTestSuite

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/deleteTestSuite":{"post":{"summary":"POST request for endpoint /api/deleteTestSuite","operationId":"/api/deleteTestSuite-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["testSuiteHexId"],"properties":{"testSuiteHexId":{"type":"string","description":"Hex-encoded ObjectId of the test suite to delete."}}}}}},"responses":{"200":{"description":"Test suite deleted successfully.","content":{"application/json":{"schema":{"type":"object","description":"Empty response body on success."}}}}}}}}}
```

## POST /api/bulkUpdateTestResultsSeverity

> POST request for endpoint /api/bulkUpdateTestResultsSeverity

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/bulkUpdateTestResultsSeverity":{"post":{"summary":"POST request for endpoint /api/bulkUpdateTestResultsSeverity","operationId":"/api/bulkUpdateTestResultsSeverity-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["testingRunResultHexIds","severityToBeUpdated"],"properties":{"testingRunResultHexIds":{"type":"array","description":"Hex IDs of the test results to update.","items":{"type":"string"}},"severityToBeUpdated":{"type":"string","description":"New severity level. One of: CRITICAL, HIGH, MEDIUM, LOW."}}}}}},"responses":{"200":{"description":"Severity updated across all related collections.","content":{"application/json":{"schema":{"type":"object","description":"Empty response body on success."}}}}}}}}}
```

## POST /api/deleteTestRuns

> POST request for endpoint /api/deleteTestRuns

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/deleteTestRuns":{"post":{"summary":"POST request for endpoint /api/deleteTestRuns","operationId":"/api/deleteTestRuns-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["testRunIds"],"properties":{"testRunIds":{"type":"array","description":"Hex-encoded ObjectIds of the test runs to delete.","items":{"type":"string"}}}}}}},"responses":{"200":{"description":"Test runs deleted and cleanup job enqueued.","content":{"application/json":{"schema":{"type":"object","description":"Empty response body on success."}}}}}}}}}
```

## POST /api/deleteTestRunsFromSummaries

> POST request for endpoint /api/deleteTestRunsFromSummaries

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/deleteTestRunsFromSummaries":{"post":{"summary":"POST request for endpoint /api/deleteTestRunsFromSummaries","operationId":"/api/deleteTestRunsFromSummaries-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["latestSummaryIds"],"properties":{"latestSummaryIds":{"type":"array","description":"Hex-encoded ObjectIds of the testing run result summaries to delete.","items":{"type":"string"}}}}}}},"responses":{"200":{"description":"Deletion job enqueued for the specified summaries.","content":{"application/json":{"schema":{"type":"object","description":"Empty response body on success."}}}}}}}}}
```

## POST /api/changeStatus

> POST request for endpoint /api/changeStatus

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/changeStatus":{"post":{"summary":"POST request for endpoint /api/changeStatus","operationId":"/api/changeStatus-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["id","activeStatus"],"properties":{"id":{"type":"integer","description":"ID of the custom webhook to update."},"activeStatus":{"type":"string","description":"New status. One of: ACTIVE, INACTIVE."}}}}}},"responses":{"200":{"description":"Webhook status updated successfully.","content":{"application/json":{"schema":{"type":"object","description":"Empty response body on success."}}}}}}}}}
```

## POST /api/runOnce

> POST request for endpoint /api/runOnce

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/runOnce":{"post":{"summary":"POST request for endpoint /api/runOnce","operationId":"/api/runOnce-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["id"],"properties":{"id":{"type":"integer","description":"ID of the custom webhook to execute."}}}}}},"responses":{"200":{"description":"Webhook execution triggered asynchronously.","content":{"application/json":{"schema":{"type":"object","description":"Empty response body; execution happens asynchronously."}}}}}}}}}
```

## POST /api/runTestOnboarding

> POST request for endpoint /api/runTestOnboarding

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/runTestOnboarding":{"post":{"summary":"POST request for endpoint /api/runTestOnboarding","operationId":"/api/runTestOnboarding-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"testType":{"type":"string"}}}}}},"responses":{"200":{"description":"Onboarding tests completed"}}}}}}
```

## POST /api/saveDefaultPayload

> POST request for endpoint /api/saveDefaultPayload

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/saveDefaultPayload":{"post":{"summary":"POST request for endpoint /api/saveDefaultPayload","operationId":"/api/saveDefaultPayload-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["domain","pattern"],"properties":{"domain":{"type":"string","description":"Domain name to associate the payload with."},"pattern":{"type":"string","description":"JSON or text payload pattern to save as the default for this domain."}}}}}},"responses":{"200":{"description":"Payload saved. Returns the updated DefaultPayload object.","content":{"application/json":{"schema":{"type":"object","properties":{"defaultPayload":{"type":"object","properties":{"domain":{"type":"string"},"pattern":{"type":"string"},"creator":{"type":"string"},"createdTs":{"type":"integer"},"updatedTs":{"type":"integer"}}}}}}}}}}}}}
```

## POST /api/saveReplaceDetails

> POST request for endpoint /api/saveReplaceDetails

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/saveReplaceDetails":{"post":{"summary":"POST request for endpoint /api/saveReplaceDetails","operationId":"/api/saveReplaceDetails-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["apiCollectionId","url","method","kvPairs"],"properties":{"apiCollectionId":{"type":"integer","description":"ID of the API collection containing the endpoint."},"url":{"type":"string","description":"URL path of the API endpoint."},"method":{"type":"string","description":"HTTP method of the endpoint."},"kvPairs":{"type":"array","description":"Key-value pairs specifying parameter replacements for this endpoint.","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}}}}}}}}},"responses":{"200":{"description":"Replacement details saved successfully.","content":{"application/json":{"schema":{"type":"object","description":"Empty response body on success."}}}}}}}}}
```

## POST /api/saveGlobalVars

> POST request for endpoint /api/saveGlobalVars

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/saveGlobalVars":{"post":{"summary":"POST request for endpoint /api/saveGlobalVars","operationId":"/api/saveGlobalVars-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["modifyHostDetails"],"properties":{"modifyHostDetails":{"type":"array","description":"List of host modification mappings.","items":{"type":"object","properties":{"currentHost":{"type":"string","description":"Original hostname."},"newHost":{"type":"string","description":"Replacement hostname."}}}}}}}}},"responses":{"200":{"description":"Global host variable mappings saved successfully.","content":{"application/json":{"schema":{"type":"object","description":"Empty response body on success."}}}}}}}}}
```

## POST /api/invokeDependencyTable

> POST request for endpoint /api/invokeDependencyTable

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/invokeDependencyTable":{"post":{"summary":"POST request for endpoint /api/invokeDependencyTable","operationId":"/api/invokeDependencyTable-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["apiCollectionIds"],"properties":{"apiCollectionIds":{"type":"array","description":"Collection IDs to invoke the dependency graph for.","items":{"type":"integer"}},"sourceCodeApis":{"type":"boolean","description":"If true, APIs are from source code analysis and the original collection is used instead of creating a temp one."}}}}}},"responses":{"200":{"description":"Dependency graph build job enqueued.","content":{"application/json":{"schema":{"type":"object","properties":{"newCollectionId":{"type":"integer","description":"ID of the temporary collection created to hold dependency flow data."}}}}}}}}}}}
```

## POST /api/createWorkflowTest

> POST request for endpoint /api/createWorkflowTest

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/createWorkflowTest":{"post":{"summary":"POST request for endpoint /api/createWorkflowTest","operationId":"/api/createWorkflowTest-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["mapNodeIdToWorkflowNodeDetails"],"properties":{"apiCollectionId":{"type":"integer","description":"ID of the API collection this workflow test belongs to"},"nodes":{"type":"array","description":"List of React Flow node IDs in the workflow graph","items":{"type":"string"}},"edges":{"type":"array","description":"List of React Flow edge IDs connecting workflow nodes","items":{"type":"string"}},"mapNodeIdToWorkflowNodeDetails":{"type":"object","description":"Map of node ID to WorkflowNodeDetails configuration. Each node describes an API call with optional overrides.","additionalProperties":{"type":"object","properties":{"apiInfoKey":{"type":"object","properties":{"apiCollectionId":{"type":"integer"},"url":{"type":"string"},"method":{"type":"string"}}},"type":{"type":"string","description":"Node type"},"overrideRedirectUri":{"type":"string"},"requestPayload":{"type":"string"},"testConfigStr":{"type":"string"}}}},"state":{"type":"string","description":"Initial workflow test state","enum":["DRAFT","PUBLISHED","INACTIVE"]}}}}}},"responses":{"200":{"description":"Workflow test created successfully","content":{"application/json":{"schema":{"type":"object","properties":{"workflowTests":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"apiCollectionId":{"type":"integer"},"author":{"type":"string"},"editor":{"type":"string"},"createdTimestamp":{"type":"integer"},"lastEdited":{"type":"integer"},"nodes":{"type":"array","items":{"type":"string"}},"edges":{"type":"array","items":{"type":"string"}},"state":{"type":"string"}}}}}}}}},"403":{"description":"Forbidden"},"422":{"description":"Unprocessable — nodes map is null or a node failed validation","content":{"application/json":{"schema":{"type":"object","properties":{"actionErrors":{"type":"array","items":{"type":"string"}}}}}}}}}}}}
```

## POST /api/editWorkflowTest

> POST request for endpoint /api/editWorkflowTest

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/editWorkflowTest":{"post":{"summary":"POST request for endpoint /api/editWorkflowTest","operationId":"/api/editWorkflowTest-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["id"],"properties":{"id":{"type":"integer","description":"Workflow test ID"},"nodes":{"type":"array","items":{"type":"string"}},"edges":{"type":"array","items":{"type":"string"}},"mapNodeIdToWorkflowNodeDetails":{"type":"object","additionalProperties":{"type":"object"}}}}}}},"responses":{"200":{"description":"Workflow test updated","content":{"application/json":{"schema":{"type":"object","properties":{"workflowTests":{"type":"array","items":{"type":"object"}}}}}}},"403":{"description":"Forbidden"},"422":{"description":"Unprocessable — workflow test not found"}}}}}}
```

## POST /api/setWorkflowTestState

> POST request for endpoint /api/setWorkflowTestState

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/setWorkflowTestState":{"post":{"summary":"POST request for endpoint /api/setWorkflowTestState","operationId":"/api/setWorkflowTestState-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["id","state"],"properties":{"id":{"type":"integer"},"state":{"type":"string","enum":["DRAFT","PUBLISHED","INACTIVE"]}}}}}},"responses":{"200":{"description":"State updated","content":{"application/json":{"schema":{"type":"object","properties":{"workflowTests":{"type":"array","items":{"type":"object"}}}}}}},"403":{"description":"Forbidden"},"422":{"description":"Unprocessable — workflow test not found"}}}}}}
```

## POST /api/editWorkflowNodeDetails

> POST request for endpoint /api/editWorkflowNodeDetails

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/editWorkflowNodeDetails":{"post":{"summary":"POST request for endpoint /api/editWorkflowNodeDetails","operationId":"/api/editWorkflowNodeDetails-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["id","mapNodeIdToWorkflowNodeDetails"],"properties":{"id":{"type":"integer","description":"Workflow test ID"},"mapNodeIdToWorkflowNodeDetails":{"type":"object","description":"Must contain exactly one entry: the node ID to update → updated WorkflowNodeDetails"}}}}}},"responses":{"200":{"description":"Node details updated","content":{"application/json":{"schema":{"type":"object","properties":{"workflowTests":{"type":"array","items":{"type":"object"}}}}}}},"403":{"description":"Forbidden"},"422":{"description":"Unprocessable — workflow test not found or node ID mismatch"}}}}}}
```

## POST /api/deleteScheduledWorkflowTests

> POST request for endpoint /api/deleteScheduledWorkflowTests

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/deleteScheduledWorkflowTests":{"post":{"summary":"POST request for endpoint /api/deleteScheduledWorkflowTests","operationId":"/api/deleteScheduledWorkflowTests-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["workflowTestId"],"properties":{"workflowTestId":{"type":"integer"}}}}}},"responses":{"200":{"description":"Scheduled/running tests stopped (state set to STOPPED)","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Forbidden"}}}}}}
```

## POST /api/uploadWorkflowJson

> POST request for endpoint /api/uploadWorkflowJson

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/uploadWorkflowJson":{"post":{"summary":"POST request for endpoint /api/uploadWorkflowJson","operationId":"/api/uploadWorkflowJson-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["workflowTestJson"],"properties":{"workflowTestJson":{"type":"string","description":"JSON string of a WorkflowTest (as produced by downloadWorkflowAsJson)"},"apiCollectionId":{"type":"integer","description":"Target API collection for the imported workflow"}}}}}},"responses":{"200":{"description":"Workflow test imported successfully","content":{"application/json":{"schema":{"type":"object","properties":{"workflowTests":{"type":"array","items":{"type":"object"}}}}}}},"422":{"description":"Unprocessable — invalid JSON","content":{"application/json":{"schema":{"type":"object","properties":{"actionErrors":{"type":"array","items":{"type":"string"}}}}}}}}}}}}
```

## POST /api/addTestLibrary

> POST request for endpoint /api/addTestLibrary

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/addTestLibrary":{"post":{"summary":"POST request for endpoint /api/addTestLibrary","operationId":"/api/addTestLibrary-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["repositoryUrl"],"properties":{"repositoryUrl":{"type":"string","description":"GitHub repository URL containing Akto YAML test templates"}}}}}},"responses":{"200":{"description":"Test library added and templates synced","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Forbidden"},"422":{"description":"Unprocessable — repository URL empty or library already exists","content":{"application/json":{"schema":{"type":"object","properties":{"actionErrors":{"type":"array","items":{"type":"string"}}}}}}}}}}}}
```

## POST /api/removeTestLibrary

> POST request for endpoint /api/removeTestLibrary

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/removeTestLibrary":{"post":{"summary":"POST request for endpoint /api/removeTestLibrary","operationId":"/api/removeTestLibrary-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["repositoryUrl"],"properties":{"repositoryUrl":{"type":"string"}}}}}},"responses":{"200":{"description":"Test library and its templates removed","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Forbidden"},"422":{"description":"Unprocessable — repository URL empty"}}}}}}
```

## POST /api/syncCustomLibrary

> POST request for endpoint /api/syncCustomLibrary

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/syncCustomLibrary":{"post":{"summary":"POST request for endpoint /api/syncCustomLibrary","operationId":"/api/syncCustomLibrary-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["repositoryUrl"],"properties":{"repositoryUrl":{"type":"string"}}}}}},"responses":{"200":{"description":"Custom library re-synced","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Forbidden"},"422":{"description":"Unprocessable — repository URL empty or library not found"}}}}}}
```

## POST /api/syncAllDefaultTestLibraries

> POST request for endpoint /api/syncAllDefaultTestLibraries

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/syncAllDefaultTestLibraries":{"post":{"summary":"POST request for endpoint /api/syncAllDefaultTestLibraries","operationId":"/api/syncAllDefaultTestLibraries-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Sync job scheduled asynchronously","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Forbidden"}}}}}}
```

## POST /api/saveTestEditorFile

> POST request for endpoint /api/saveTestEditorFile

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/saveTestEditorFile":{"post":{"summary":"POST request for endpoint /api/saveTestEditorFile","operationId":"/api/saveTestEditorFile-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["content"],"properties":{"content":{"type":"string","description":"Full YAML content of the test template"},"originalTestId":{"type":"string","description":"Existing test ID to update. If null or different from the content's id, a new template is inserted."}}}}}},"responses":{"200":{"description":"Test template saved","content":{"application/json":{"schema":{"type":"object","properties":{"finalTestId":{"type":"string","description":"The resolved unique test ID (may differ from content id if a conflict was found)"},"content":{"type":"string","description":"The normalized YAML content that was saved (with resolved id and name)"}}}}}},"403":{"description":"Forbidden"},"422":{"description":"Unprocessable — invalid YAML, missing info keys, or built-in template conflict","content":{"application/json":{"schema":{"type":"object","properties":{"actionErrors":{"type":"array","items":{"type":"string"}}}}}}}}}}}}
```

## POST /api/saveCommonTestTemplate

> POST request for endpoint /api/saveCommonTestTemplate

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/saveCommonTestTemplate":{"post":{"summary":"POST request for endpoint /api/saveCommonTestTemplate","operationId":"/api/saveCommonTestTemplate-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["content"],"properties":{"content":{"type":"string","description":"YAML content with wordLists definitions"}}}}}},"responses":{"200":{"description":"Common template saved","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Forbidden"},"422":{"description":"Unprocessable — invalid YAML or empty/null wordLists"}}}}}}
```

## POST /api/runTestForGivenTemplate

> POST request for endpoint /api/runTestForGivenTemplate

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/runTestForGivenTemplate":{"post":{"summary":"POST request for endpoint /api/runTestForGivenTemplate","operationId":"/api/runTestForGivenTemplate-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["content","apiInfoKey"],"properties":{"content":{"type":"string","description":"YAML content of the test template to run"},"apiInfoKey":{"type":"object","description":"Target API endpoint to test","properties":{"apiCollectionId":{"type":"integer"},"url":{"type":"string"},"method":{"type":"string"}}},"testingRunHexId":{"type":"string","description":"Optional hex ID of an existing testing run to use for context"},"testingRunConfig":{"type":"object","description":"Optional test run config overrides","properties":{"overriddenTestAppUrl":{"type":"string"},"testRoleId":{"type":"string"}}}}}}}},"responses":{"200":{"description":"Test executed; results returned","content":{"application/json":{"schema":{"type":"object","properties":{"testingRunHexId":{"type":"string"},"testingRunPlaygroundHexId":{"type":"string","description":"Use with fetchTestingRunPlaygroundStatus to poll for async results"},"testingRunResult":{"type":"object","description":"Test execution result","properties":{"vulnerable":{"type":"boolean"},"testResults":{"type":"array","items":{"type":"object"}}}},"testingRunIssues":{"type":"object","description":"Issue record created if test found a vulnerability"},"subCategoryMap":{"type":"object","description":"Map of test ID to subcategory info object"},"callbackUuids":{"type":"array","description":"Callback UUIDs for out-of-band detection tests","items":{"type":"string"}}}}}}},"403":{"description":"Forbidden"},"422":{"description":"Unprocessable — invalid YAML template","content":{"application/json":{"schema":{"type":"object","properties":{"actionErrors":{"type":"array","items":{"type":"string"}}}}}}}}}}}}
```

## POST /api/saveTestRoleMeta

> POST request for endpoint /api/saveTestRoleMeta

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/saveTestRoleMeta":{"post":{"summary":"POST request for endpoint /api/saveTestRoleMeta","operationId":"/api/saveTestRoleMeta-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["roleName","scopeRoles"],"properties":{"roleName":{"type":"string","description":"Name of the test role to update"},"scopeRoles":{"type":"array","description":"Akto user roles allowed to use this test role","items":{"type":"string"}}}}}}},"responses":{"200":{"description":"Test role meta saved","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Forbidden"},"422":{"description":"Unprocessable — test role not found or scope roles empty","content":{"application/json":{"schema":{"type":"object","properties":{"actionErrors":{"type":"array","items":{"type":"string"}}}}}}}}}}}}
```

## POST /api/deleteTestRole

> POST request for endpoint /api/deleteTestRole

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/deleteTestRole":{"post":{"summary":"POST request for endpoint /api/deleteTestRole","operationId":"/api/deleteTestRole-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["roleName"],"properties":{"roleName":{"type":"string"}}}}}},"responses":{"200":{"description":"Test role deleted","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Forbidden"},"422":{"description":"Unprocessable — role not found"}}}}}}
```

## POST /api/deleteAuthFromRole

> POST request for endpoint /api/deleteAuthFromRole

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/deleteAuthFromRole":{"post":{"summary":"POST request for endpoint /api/deleteAuthFromRole","operationId":"/api/deleteAuthFromRole-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["roleName","index"],"properties":{"roleName":{"type":"string"},"index":{"type":"integer","description":"0-based index of the auth entry to remove from authWithCondList"}}}}}},"responses":{"200":{"description":"Auth entry deleted; returns updated test role","content":{"application/json":{"schema":{"type":"object","properties":{"selectedRole":{"type":"object","description":"Updated TestRoles object after deletion"}}}}}},"403":{"description":"Forbidden"},"422":{"description":"Unprocessable — role not found"}}}}}}
```

## POST /api/updateAuthInRole

> POST request for endpoint /api/updateAuthInRole

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/updateAuthInRole":{"post":{"summary":"POST request for endpoint /api/updateAuthInRole","operationId":"/api/updateAuthInRole-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["roleName","index","authParamData"],"properties":{"roleName":{"type":"string"},"index":{"type":"integer","description":"0-based index of the auth entry to update"},"authParamData":{"type":"array","description":"Updated auth parameter definitions","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"where":{"type":"string","enum":["HEADER","PAYLOAD"]},"showHeader":{"type":"boolean"}}}},"urlRegex":{"type":"string","description":"Optional regex to restrict which URLs this auth applies to"}}}}}},"responses":{"200":{"description":"Auth entry updated; returns updated test role","content":{"application/json":{"schema":{"type":"object","properties":{"selectedRole":{"type":"object"}}}}}},"403":{"description":"Forbidden"},"422":{"description":"Unprocessable — role not found or invalid URL regex"}}}}}}
```

## POST /api/addAuthToRole

> POST request for endpoint /api/addAuthToRole

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/addAuthToRole":{"post":{"summary":"POST request for endpoint /api/addAuthToRole","operationId":"/api/addAuthToRole-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["roleName","authParamData"],"properties":{"roleName":{"type":"string"},"authParamData":{"type":"array","description":"New auth parameter definitions","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"where":{"type":"string","enum":["HEADER","PAYLOAD"]},"showHeader":{"type":"boolean"}}}},"urlRegex":{"type":"string","description":"Optional regex to restrict which URLs this auth applies to"}}}}}},"responses":{"200":{"description":"Auth entry added; returns updated test role","content":{"application/json":{"schema":{"type":"object","properties":{"selectedRole":{"type":"object","description":"Updated TestRoles object","properties":{"name":{"type":"string"},"authWithCondList":{"type":"array","items":{"type":"object"}}}}}}}}},"403":{"description":"Forbidden"},"422":{"description":"Unprocessable — role not found or invalid URL regex"}}}}}}
```

## POST /api/triggerSingleLoginFlow

> POST request for endpoint /api/triggerSingleLoginFlow

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/triggerSingleLoginFlow":{"post":{"summary":"POST request for endpoint /api/triggerSingleLoginFlow","operationId":"/api/triggerSingleLoginFlow-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["type","requestData"],"properties":{"type":{"type":"string","description":"Auth mechanism type. Must not be HARDCODED, SAMPLE_DATA, or TLS_AUTH.","enum":["LOGIN_FLOW","OTP_LOGIN_FLOW","API_TOKEN"]},"requestData":{"type":"array","description":"List of request steps to execute in the login flow","items":{"type":"object","properties":{"url":{"type":"string"},"method":{"type":"string"},"body":{"type":"string"},"headers":{"type":"object"}}}},"nodeId":{"type":"string","description":"Optional node ID for multi-step login flow"}}}}}},"responses":{"200":{"description":"Login flow step executed successfully","content":{"application/json":{"schema":{"type":"object","properties":{"responses":{"type":"array","description":"HTTP responses from each step of the login flow","items":{"type":"object","properties":{"statusCode":{"type":"integer"},"body":{"type":"string"},"headers":{"type":"object"}}}}}}}}},"403":{"description":"Forbidden"},"422":{"description":"Unprocessable — invalid type (HARDCODED/SAMPLE_DATA/TLS_AUTH) or login flow execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"actionErrors":{"type":"array","items":{"type":"string"}}}}}}}}}}}}
```

## POST /api/updateAccessMatrixTask

> POST request for endpoint /api/updateAccessMatrixTask

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/updateAccessMatrixTask":{"post":{"summary":"POST request for endpoint /api/updateAccessMatrixTask","operationId":"/api/updateAccessMatrixTask-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["hexId","roleName"],"properties":{"hexId":{"type":"string","description":"Hex ObjectId of the AccessMatrixTaskInfo document to update"},"roleName":{"type":"string","description":"Role name; stored as roleName + '_GROUP' in endpointLogicalGroupName"},"frequencyInSeconds":{"type":"integer","description":"Scan frequency. Values ≤ 0 default to 86400."}}}}}},"responses":{"200":{"description":"Task updated successfully","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid hexId or other error","content":{"application/json":{"schema":{"type":"object","properties":{"actionErrors":{"type":"array","items":{"type":"string"}}}}}}}}}}}}
```

## POST /api/createMultipleAccessMatrixTasks

> POST request for endpoint /api/createMultipleAccessMatrixTasks

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/createMultipleAccessMatrixTasks":{"post":{"summary":"POST request for endpoint /api/createMultipleAccessMatrixTasks","operationId":"/api/createMultipleAccessMatrixTasks-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["roleName"],"properties":{"roleName":{"type":"string"}}}}}},"responses":{"200":{"description":"Access matrix task created or updated successfully","content":{"application/json":{"schema":{"type":"object"}}}}}}}}}
```

## POST /api/deleteAccessMatrix

> POST request for endpoint /api/deleteAccessMatrix

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/deleteAccessMatrix":{"post":{"summary":"POST request for endpoint /api/deleteAccessMatrix","operationId":"/api/deleteAccessMatrix-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["roleName"],"properties":{"roleName":{"type":"string","description":"Role whose access matrix data should be deleted"}}}}}},"responses":{"200":{"description":"Access matrix data for the role deleted successfully","content":{"application/json":{"schema":{"type":"object"}}}}}}}}}
```

## POST /api/deleteAccessMatrixTask

> POST request for endpoint /api/deleteAccessMatrixTask

```json
{"openapi":"3.0.1","info":{"title":"AktoSwagger","version":"1.0.0"},"paths":{"/api/deleteAccessMatrixTask":{"post":{"summary":"POST request for endpoint /api/deleteAccessMatrixTask","operationId":"/api/deleteAccessMatrixTask-POST","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["hexId"],"properties":{"hexId":{"type":"string","description":"Hex ObjectId of the AccessMatrixTaskInfo document to delete"}}}}}},"responses":{"200":{"description":"Task deleted successfully","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Unable to delete — invalid hexId","content":{"application/json":{"schema":{"type":"object","properties":{"actionErrors":{"type":"array","items":{"type":"string"}}}}}}}}}}}}
```
