Accessing Reports results via API
This page describes how to access report results via API
Finding Query ID Via UI
Once the query is created in the UI editor interface, tested, and executed successfully. The query ID can be looked at via the web URL address.

The query can then be accessed via API's using the query ID.
Get Query By Id
GET
/api/queries/:queryid
Use this API to access the latest report result id
Path Parameters
queryid
number
Id of the query
{
'...' : '...",
'latest_query_data_id' : 123,
'...' : '...",
}
The query result can be extracted via API via the query ID after the API query.
Get Results by result_id
GET
/api/query_results/:result_id
Access the latest report results
Path Parameters
result_id
number
Latest report result Id
{
"query_result": {
"id": 612,
"query_hash": "e3a2707903f76a662079c4eb1376ecad",
"query": "...",
"data": {
"rows": [
{
"timestamp": 1616729294000,
"value": "39590",
"groupby_host": "host1",
},
{
"timestamp": 1616729294000,
"value": "28555",
"groupby_host": "host2",
},
{
"timestamp": 1616729294000,
"value": "2055",
"groupby_host": "host3",
}
],
"columns": [
{
"friendly_name": "timestamp",
"type": "datetime",
"name": "timestamp"
},
{
"friendly_name": "value",
"type": "float",
"name": "value"
},
{
"friendly_name": "groupby_host",
"type": "string",
"name": "groupby_host"
}
]
},
"data_source_id": 2,
"runtime": 20.210840940475464,
"retrieved_at": "2021-03-26T03:28:17.019Z"
}
}
Python Example I
import requests
import json
uri_query = 'https://logs.logiq.ai/api/queries/<query_id>'
uri_result = 'https://logs.logiq.ai/api/query_results/'
def post_query():
# Add api key to header
headers = {'Authorization': 'Key see_below_to_get_api_key'}
# GET Query API to get latest_query_data_id
r = requests.get(uri_query, headers=headers, verify=False)
r.raise_for_status()
# From the queries API extract the latest report id
latest_report_id = r.json()['latest_query_data_id']
# Construct the results url
uri_result_end = uri_result + str(latest_report_id)
# GET Results API
qr = requests.get(uri_result_end, headers=headers, verify=False)
qr.raise_for_status()
# Prints results
print(json.dumps(qr.json()['query_result']['data']['rows'], indent = 3))
post_query()
Obtain API Key
API key can be obtained via the UI.

Python Example II
Based on a similar method, this query API directly queries the internal Prometheus data using the Prometheus database access API logiq_proxy.
import requests
import simplejson as json
import time
api_key = "<API_KEY>"
uri_result = input("Enter Query Result URL: ")
json_data = json.loads(input("Enter Query JSON Data: "))
file_name = "output_" + str(time.time()) + ".json"
def post_results_query():
headers = {'Authorization': api_key}
r = requests.post(uri_result, headers=headers, json=json_data, verify=False)
r.raise_for_status()
with open(file_name, 'w') as output:
json.dump(r.json(), output, indent=3)
print("<QueryResults>")
print(json.dumps(r.json(), indent=3))
print("</QueryResults>")
print("JSON data saved in: " + file_name)
post_results_query()
#==========================================================
# Example for the logiq_proxy
# URL:
# https://lqnnn.logiq.ai/api/logiq_proxy
# Query Data:
# {"query": "(round(sum by (exported_namespace,app,severity)(increase(logiq_namespace_app_message_count{exported_namespace=~\"logiq:awesj\"}[3600s]))))&start=1700209381&end=1700212981","type": "query"}
#==========================================================
Last updated
Was this helpful?