The Script Debugger API provides endpoints to debug lines of server-side JavaScript code, such as business rules and script includes.

For more information about the Script Debugger, see Script Debugger and Session Log.

This API is available by default.

Script Debugger - GET /js/debugpoints/script/{tableName}/{sysId}/{fieldName}

Retrieve a list of breakpoints or logpoints in a server-side script, such as a business rule or script include.

URL format

Default URL: /api/now/js/debugpoints/script/{tableName}/{sysId}/{fieldName}

Supported request parameters

Table 1. Path parameters
Name Description
tableName Name of the table that contains the server-side script, such as sys_script or sys_script_include.

Data type: String

sysId Sys_id for the server-side script.

Data type: String

fieldName Name of the field that contains the server-side script content.

Data type: String

Table 2. Query parameters
Name Description
None
Table 3. Request body parameters (XML or JSON)
Name Description
None

Headers

The following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see Supported REST API headers.

Table 4. Request headers
Header Description
Accept Data format of the response body. Supported types: application/json or application/xml.

Default: application/json

Table 5. Response headers
Header Description
None

Status codes

The following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see REST API HTTP response codes.

Table 6. Status codes
Status code Description
200 Successful. The request was successfully processed.
403 User Not Authorized. The user who executed the request does not have permission to access breakpoint or log point information for the specified record.

Response body parameters (JSON or XML)

Example cURL request

Example: cURL request

Retrieves a list of logpoints and breakpoints for a server-side script. This script has a logpoint on line 2, a breakpoint on line 11, and a conditional breakpoint on line 18.

curl "https://instance.servicenow.com/api/now/js/debugpoints/script/sys_script_include/d65f78c40a0a0b6900196656f35913d3/script" \
--request GET \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--user 'username':'password'
{
  "result": {
    "canWrite": true,
    "debugpoints": {
      "LOGPOINT": {
        "2": {
          "evaluationString": "A log message",
          "sysId": "ba28b0fa739310101c233096fbf6a75e"
        }
      },
      "BREAKPOINT": {
        "11": {
          "evaluationString": "",
          "sysId": "dc5f5bf341256010f877587fbdf5ec1d"
        },
        "18": {
          "evaluationString": "a == true",
          "sysId": "3d4f5bf341256010f877587bdf5ecf6"
        }
      }
    },
    "script": "// script code",
    "name": "AbstractAjaxProcessor",
    "key": {
      "scriptType": "sys_script_include",
      "scriptId": "d65f78c40a0a0b6900196656f35913d3",
      "scriptField": "script",
      "value": "sys_script_include.d65f78c40a0a0b6900196656f35913d3.script"
    }
  }
}

Script Debugger - POST js/debugpoints/process

Add, update, or remove breakpoints or logpoints in a server-side script, such as a business rule or script include. Process several breakpoints or logpoints at a time.

URL format

Default URL: /api/now/js/debugpoints/process

Supported request parameters

Table 7. Path parameters
Name Description
None
Table 8. Query parameters
Name Description
fetchAll When true, returns a list of all the breakpoints or logpoints added or updated by the user.

Data type: Boolean

Default: false

fetchAllFilter

Returns a filtered list of all the breakpoints or logpoints added or updated by the user.

Valid values:
  • debugpointType. Set to either breakpoint or logpoint.
  • scriptId. Set to the sys_id of the script in which to search for debug points.
  • scope. Set to the name of the scope in which to search for debug points.

Use the caret (^) symbol as a separator for multiple properties. For example, fetchAllFilter=debugpointType=logpoint^scope=MyApp

Data type: String

Headers

The following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see Supported REST API headers.

Table 10. Request headers
Header Description
Accept Data format of the response body. Supported types: application/json or application/xml.

Default: application/json

Content-Type Data format of the request body. Supported types: application/json or application/xml.

Default: application/json

Table 11. Response headers
Header Description
None

Status codes

The following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see REST API HTTP response codes.

Table 12. Status codes
Status code Description
200 Successful. The request was successfully processed.

Response body parameters (JSON or XML)

Example: cURL request

This example adds a conditional breakpoint at line 12 in the script.

curl "https://instance.servicenow.com/api/now/js/debugpoints/process" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--data “[
{
\"tableName\": \"sys_script_include\",
\"scriptId\": \"d65f78c40a0a0b6900196656f35913d3\",
\"fieldname\": \"script\",
\"lineNumber\": 12,
\"evaluationString\": \"a == false\",
\"debugpointType\": \"breakpoint\",
\"operation\": \"add\"
}
]” \
--user 'username':'password'
{
  "result": {
    "requestedDebugpoints": [
      {
        "scriptId": "d65f78c40a0a0b6900196656f35913d3",
        "evaluationString": "a == false",
        "operation": "add",
        "tableName": "sys_script_include",
        "fieldName": "script",
        "status": "success",
        "lineNumber": 12,
        "debugpointType": "breakpoint"
      }
    ],
    "status": 200
  }
}