Execute a SQL SELECT query and return the result data with column metadata

Open in ChatGPT Open in ChatGPT to ask questions about this page
Open in Claude Open in Claude to ask questions about this page
Copy as MarkdownCopy this page as markdown to use with AI assistants
View as Markdown Open this page as markdown in a new tab

Executes a user-supplied SQL SELECT query and returns the result data along with column metadata. This endpoint does not save the report — it only runs the query and returns the results. The reportName is echoed back in the response for identification purposes.

Request URL

https://{server-hostname}:8383/dcapi/reports/queryReports/data

Scope

QueryReport.CREATECopied!

Header

Authorization: d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Request Headers

Content-TypestringMandatory
application/queryReport.v1+jsonapplication/queryReport.v1+jsonCopied!
AcceptstringMandatory
application/queryResult.v1+jsonapplication/queryResult.v1+jsonCopied!

- Request Body

application/json
JSON object
Hide Sub-Attributes
reportNamestringMandatory

Name for the query report. Used for identification in the response and when saving. Allows word characters, hyphens, spaces, and non-Basic-Latin Unicode characters. Max 100 characters

querystringMandatory

SQL SELECT query to execute. Only SELECT statements are allowed; DML, DDL, system catalog access (pg_, sys.), and injection patterns (xp_cmdshell, EXEC, WAITFOR, sp_) are blocked. Max 500,000 characters

Sample Request

Curl
Java
Python
Deluge
PowerShell
Copied!
curl --request POST \
  --url https://appdomain/dcapi/reports/queryReports/data \
  --header 'Accept: application/queryResult.v1+json' \
  --header 'Authorization:  d92d4xxxxxxxxxxxxx15f52' \
  --header 'Content-Type: application/queryReport.v1+json' \
  --data '{"reportName":"All technicians report","query":"select * from Table"}'
Show full

Sample Request Body

Execute a SELECT query on the given table

Copied!
  {
    "reportName": "All technicians report",
    "query": "select * from Table"
  }
                
Show full

Response Parameters

- HTTP code 200

Response Body - application/json
JSON object
Hide Sub-Attributes
reportNamestring

The report name echoed back from the request for identification

dataJSON array

Array of row objects where each key is a column name and each value is the column value as a string

Show Sub-Attributes
JSON object
Show Sub-Attributes
user_idstring

Example column value. Actual keys vary based on the SQL query provided in the request

first_namestring

Example column value. Actual keys vary based on the SQL query provided in the request

middle_namestring

Example column value. Actual keys vary based on the SQL query provided in the request

last_namestring

Example column value. Actual keys vary based on the SQL query provided in the request

createdtimestring

Example column value. Actual keys vary based on the SQL query provided in the request

descriptionstring

Example column value. Actual keys vary based on the SQL query provided in the request

columnDetailsJSON array

Array of column metadata objects describing the result set columns including name and JDBC data type

Show Sub-Attributes
JSON object
Show Sub-Attributes
columnNamestring

Name of the column in the result set as returned by the database

columnDataTypestring

JDBC java.sql.Types constant for the column. Common values: -5 (BIGINT), 4 (INTEGER), 12 (VARCHAR), 93 (TIMESTAMP)

- HTTP code 400

Response Body - application/json
JSON object
Hide Sub-Attributes
errorCodestring

Error code identifying the failure reason. INVALID_QUERY = the SQL query is syntactically invalid or fails construction; REP_NAME_EXISTS = a query report with the same name already exists for this user

errorMessagestring

Human-readable message describing the specific validation failure

- HTTP code 417

Response Body - application/json
JSON object
Hide Sub-Attributes
errorCodestring

Error code for unauthorized MSP access. REPORT_UNAUTHORIZED = MSP non-admin user attempting to access query reports

errorMessagestring

Human-readable message indicating the user is not authorized as an MSP admin

- HTTP code 500

Response Body - application/json
JSON object
Hide Sub-Attributes
errorCodestring

Error code for server-side failure. INTERNAL_ERROR = an unexpected error occurred during query execution (e.g., SQLException)

errorMessagestring

Human-readable message describing the internal server error encountered during query execution

Possible Response Codes

200HTTP code
400HTTP code
417HTTP code
500HTTP code

Sample Response: HTTP 200

Result of executing the given query

Copied!
  {
    "reportName": "All Technician report",
    "data": [
      {
        "user_id": "1",
        "last_name": "null",
        "description": "No Description",
        "middle_name": "null",
        "first_name": "admin",
        "createdtime": "1774255689700"
      },
      {
        "user_id": "2",
        "last_name": "null",
        "description": "No Description",
        "middle_name": "null",
        "first_name": "guest",
        "createdtime": "1774255689700"
      }
    ],
    "columnDetails": [
      {
        "columnDataType": -5,
        "columnName": "user_id"
      },
      {
        "columnDataType": 12,
        "columnName": "first_name"
      },
      {
        "columnDataType": 12,
        "columnName": "middle_name"
      },
      {
        "columnDataType": 12,
        "columnName": "last_name"
      },
      {
        "columnDataType": -5,
        "columnName": "createdtime"
      },
      {
        "columnDataType": 12,
        "columnName": "description"
      }
    ]
  }
                
Show full

Sample Response: HTTP 400

SQL query is syntactically invalid or fails construction

Copied!
  {
    "errorMessage": "Invalid query syntax or unsupported statement",
    "errorCode": "INVALID_QUERY"
  }
                
Show full

A query report with the same name already exists for this user

Copied!
  {
    "errorMessage": "Report name already exists",
    "errorCode": "REP_NAME_EXISTS"
  }
                
Show full

Sample Response: HTTP 417

MSP non-admin user attempting to access query reports

Copied!
  {
    "errorMessage": "You are not authorized to access this resource",
    "errorCode": "REPORT_UNAUTHORIZED"
  }
                
Show full

Sample Response: HTTP 500

Unexpected error during SQL query execution

Copied!
  {
    "errorMessage": "An internal server error occurred while executing the query report",
    "errorCode": "INTERNAL_ERROR"
  }
                
Show full

Duration: 1 minute | Threshold: 30 | Lock period: 5 minutes

Duration - Time window for the threshold.
Threshold - Number of API calls allowed within the specified duration.
Lock Period - Wait time before consecutive API requests.