cURL
curl --request POST \
--url https://api.cekura.ai/dashboards/widgets/bulk_data/ \
--header 'Content-Type: application/json' \
--header 'X-CEKURA-API-KEY: <api-key>' \
--data '
{
"widget_ids": [
123
],
"filters": {
"field": "<string>",
"value": "<unknown>",
"conditions": [
"<unknown>"
]
}
}
'import requests
url = "https://api.cekura.ai/dashboards/widgets/bulk_data/"
payload = {
"widget_ids": [123],
"filters": {
"field": "<string>",
"value": "<unknown>",
"conditions": ["<unknown>"]
}
}
headers = {
"X-CEKURA-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-CEKURA-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
widget_ids: [123],
filters: {field: '<string>', value: '<unknown>', conditions: ['<unknown>']}
})
};
fetch('https://api.cekura.ai/dashboards/widgets/bulk_data/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.cekura.ai/dashboards/widgets/bulk_data/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'widget_ids' => [
123
],
'filters' => [
'field' => '<string>',
'value' => '<unknown>',
'conditions' => [
'<unknown>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-CEKURA-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.cekura.ai/dashboards/widgets/bulk_data/"
payload := strings.NewReader("{\n \"widget_ids\": [\n 123\n ],\n \"filters\": {\n \"field\": \"<string>\",\n \"value\": \"<unknown>\",\n \"conditions\": [\n \"<unknown>\"\n ]\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-CEKURA-API-KEY", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.cekura.ai/dashboards/widgets/bulk_data/")
.header("X-CEKURA-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"widget_ids\": [\n 123\n ],\n \"filters\": {\n \"field\": \"<string>\",\n \"value\": \"<unknown>\",\n \"conditions\": [\n \"<unknown>\"\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cekura.ai/dashboards/widgets/bulk_data/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-CEKURA-API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"widget_ids\": [\n 123\n ],\n \"filters\": {\n \"field\": \"<string>\",\n \"value\": \"<unknown>\",\n \"conditions\": [\n \"<unknown>\"\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"count": 123,
"results": [
{
"widget_id": 123,
"field_name": "<string>",
"chart_type": "<string>",
"data": [
{}
],
"aggregation_function": "<string>",
"time_period": "<string>",
"group_by": null,
"metadata": {
"display_name": "<string>",
"filter_value": "<unknown>"
},
"can_group_by": false
}
],
"next": "https://api.cekura.ai/example/v1/example-external/?page=4",
"previous": "https://api.cekura.ai/example/v1/example-external/?page=3"
}Widgets
Bulk Widget Data
Fetch chart data for multiple widgets in one request — useful for refreshing a dashboard view in a single round-trip.
POST
/
dashboards
/
widgets
/
bulk_data
/
cURL
curl --request POST \
--url https://api.cekura.ai/dashboards/widgets/bulk_data/ \
--header 'Content-Type: application/json' \
--header 'X-CEKURA-API-KEY: <api-key>' \
--data '
{
"widget_ids": [
123
],
"filters": {
"field": "<string>",
"value": "<unknown>",
"conditions": [
"<unknown>"
]
}
}
'import requests
url = "https://api.cekura.ai/dashboards/widgets/bulk_data/"
payload = {
"widget_ids": [123],
"filters": {
"field": "<string>",
"value": "<unknown>",
"conditions": ["<unknown>"]
}
}
headers = {
"X-CEKURA-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-CEKURA-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
widget_ids: [123],
filters: {field: '<string>', value: '<unknown>', conditions: ['<unknown>']}
})
};
fetch('https://api.cekura.ai/dashboards/widgets/bulk_data/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.cekura.ai/dashboards/widgets/bulk_data/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'widget_ids' => [
123
],
'filters' => [
'field' => '<string>',
'value' => '<unknown>',
'conditions' => [
'<unknown>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-CEKURA-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.cekura.ai/dashboards/widgets/bulk_data/"
payload := strings.NewReader("{\n \"widget_ids\": [\n 123\n ],\n \"filters\": {\n \"field\": \"<string>\",\n \"value\": \"<unknown>\",\n \"conditions\": [\n \"<unknown>\"\n ]\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-CEKURA-API-KEY", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.cekura.ai/dashboards/widgets/bulk_data/")
.header("X-CEKURA-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"widget_ids\": [\n 123\n ],\n \"filters\": {\n \"field\": \"<string>\",\n \"value\": \"<unknown>\",\n \"conditions\": [\n \"<unknown>\"\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cekura.ai/dashboards/widgets/bulk_data/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-CEKURA-API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"widget_ids\": [\n 123\n ],\n \"filters\": {\n \"field\": \"<string>\",\n \"value\": \"<unknown>\",\n \"conditions\": [\n \"<unknown>\"\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"count": 123,
"results": [
{
"widget_id": 123,
"field_name": "<string>",
"chart_type": "<string>",
"data": [
{}
],
"aggregation_function": "<string>",
"time_period": "<string>",
"group_by": null,
"metadata": {
"display_name": "<string>",
"filter_value": "<unknown>"
},
"can_group_by": false
}
],
"next": "https://api.cekura.ai/example/v1/example-external/?page=4",
"previous": "https://api.cekura.ai/example/v1/example-external/?page=3"
}Authorizations
API Key Authentication. It should be included in the header of each request.
Query Parameters
A page number within the paginated result set.
Number of results to return per page.
Body
application/jsonapplication/x-www-form-urlencodedmultipart/form-data
List of widget IDs to get data for
Optional override filters for all widgets. Filter conditions to scope the data. See the Dashboards guide for supported fields, operators, and syntax.
Show child attributes
Show child attributes
Examples:
{ "field": "success", "op": "eq", "value": true }
{ "operator": "and", "conditions": [ { "field": "timestamp", "op": "gte", "value": "today-7d" }, { "field": "duration", "op": "gte", "value": 60 } ] }
⌘I