Preview digest summary markdown
curl --request POST \
--url https://app-api.costory.io/report-previews/digest-summary \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"widget": {
"type": "TOP_FLOP",
"topN": 1,
"flopN": 1,
"advancedExplorerRequest": {
"period": {
"startDate": "2023-11-07T05:31:56Z",
"endDate": "2023-11-07T05:31:56Z",
"forecastDays": 1
},
"queries": [
{
"type": "condition",
"expression": "<string>",
"name": "<string>",
"colorIndex": 123,
"alias": "<string>",
"visible": true
}
],
"eventsFilter": {
"githubSourceRepos": [],
"enableAllGithubRepos": true,
"customBusinessEvents": true,
"customTechnicalEvents": true,
"labels": [],
"commitments": false,
"reservations": false,
"marketplacePurchases": false,
"skuPriceChanges": false,
"sources": []
},
"bookmarkedEvents": [
"<string>"
],
"scopeId": "<string>",
"limitOverride": 500
},
"id": "<string>",
"title": "",
"description": "",
"cutOff": 10,
"comparison": {
"kind": "PREVIOUS_PERIOD"
}
},
"context": {}
}
'import requests
url = "https://app-api.costory.io/report-previews/digest-summary"
payload = {
"widget": {
"type": "TOP_FLOP",
"topN": 1,
"flopN": 1,
"advancedExplorerRequest": {
"period": {
"startDate": "2023-11-07T05:31:56Z",
"endDate": "2023-11-07T05:31:56Z",
"forecastDays": 1
},
"queries": [
{
"type": "condition",
"expression": "<string>",
"name": "<string>",
"colorIndex": 123,
"alias": "<string>",
"visible": True
}
],
"eventsFilter": {
"githubSourceRepos": [],
"enableAllGithubRepos": True,
"customBusinessEvents": True,
"customTechnicalEvents": True,
"labels": [],
"commitments": False,
"reservations": False,
"marketplacePurchases": False,
"skuPriceChanges": False,
"sources": []
},
"bookmarkedEvents": ["<string>"],
"scopeId": "<string>",
"limitOverride": 500
},
"id": "<string>",
"title": "",
"description": "",
"cutOff": 10,
"comparison": { "kind": "PREVIOUS_PERIOD" }
},
"context": {}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
widget: {
type: 'TOP_FLOP',
topN: 1,
flopN: 1,
advancedExplorerRequest: {
period: {
startDate: '2023-11-07T05:31:56Z',
endDate: '2023-11-07T05:31:56Z',
forecastDays: 1
},
queries: [
{
type: 'condition',
expression: '<string>',
name: '<string>',
colorIndex: 123,
alias: '<string>',
visible: true
}
],
eventsFilter: {
githubSourceRepos: [],
enableAllGithubRepos: true,
customBusinessEvents: true,
customTechnicalEvents: true,
labels: [],
commitments: false,
reservations: false,
marketplacePurchases: false,
skuPriceChanges: false,
sources: []
},
bookmarkedEvents: ['<string>'],
scopeId: '<string>',
limitOverride: 500
},
id: '<string>',
title: '',
description: '',
cutOff: 10,
comparison: {kind: 'PREVIOUS_PERIOD'}
},
context: {}
})
};
fetch('https://app-api.costory.io/report-previews/digest-summary', 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://app-api.costory.io/report-previews/digest-summary",
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' => [
'type' => 'TOP_FLOP',
'topN' => 1,
'flopN' => 1,
'advancedExplorerRequest' => [
'period' => [
'startDate' => '2023-11-07T05:31:56Z',
'endDate' => '2023-11-07T05:31:56Z',
'forecastDays' => 1
],
'queries' => [
[
'type' => 'condition',
'expression' => '<string>',
'name' => '<string>',
'colorIndex' => 123,
'alias' => '<string>',
'visible' => true
]
],
'eventsFilter' => [
'githubSourceRepos' => [
],
'enableAllGithubRepos' => true,
'customBusinessEvents' => true,
'customTechnicalEvents' => true,
'labels' => [
],
'commitments' => false,
'reservations' => false,
'marketplacePurchases' => false,
'skuPriceChanges' => false,
'sources' => [
]
],
'bookmarkedEvents' => [
'<string>'
],
'scopeId' => '<string>',
'limitOverride' => 500
],
'id' => '<string>',
'title' => '',
'description' => '',
'cutOff' => 10,
'comparison' => [
'kind' => 'PREVIOUS_PERIOD'
]
],
'context' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://app-api.costory.io/report-previews/digest-summary"
payload := strings.NewReader("{\n \"widget\": {\n \"type\": \"TOP_FLOP\",\n \"topN\": 1,\n \"flopN\": 1,\n \"advancedExplorerRequest\": {\n \"period\": {\n \"startDate\": \"2023-11-07T05:31:56Z\",\n \"endDate\": \"2023-11-07T05:31:56Z\",\n \"forecastDays\": 1\n },\n \"queries\": [\n {\n \"type\": \"condition\",\n \"expression\": \"<string>\",\n \"name\": \"<string>\",\n \"colorIndex\": 123,\n \"alias\": \"<string>\",\n \"visible\": true\n }\n ],\n \"eventsFilter\": {\n \"githubSourceRepos\": [],\n \"enableAllGithubRepos\": true,\n \"customBusinessEvents\": true,\n \"customTechnicalEvents\": true,\n \"labels\": [],\n \"commitments\": false,\n \"reservations\": false,\n \"marketplacePurchases\": false,\n \"skuPriceChanges\": false,\n \"sources\": []\n },\n \"bookmarkedEvents\": [\n \"<string>\"\n ],\n \"scopeId\": \"<string>\",\n \"limitOverride\": 500\n },\n \"id\": \"<string>\",\n \"title\": \"\",\n \"description\": \"\",\n \"cutOff\": 10,\n \"comparison\": {\n \"kind\": \"PREVIOUS_PERIOD\"\n }\n },\n \"context\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://app-api.costory.io/report-previews/digest-summary")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"widget\": {\n \"type\": \"TOP_FLOP\",\n \"topN\": 1,\n \"flopN\": 1,\n \"advancedExplorerRequest\": {\n \"period\": {\n \"startDate\": \"2023-11-07T05:31:56Z\",\n \"endDate\": \"2023-11-07T05:31:56Z\",\n \"forecastDays\": 1\n },\n \"queries\": [\n {\n \"type\": \"condition\",\n \"expression\": \"<string>\",\n \"name\": \"<string>\",\n \"colorIndex\": 123,\n \"alias\": \"<string>\",\n \"visible\": true\n }\n ],\n \"eventsFilter\": {\n \"githubSourceRepos\": [],\n \"enableAllGithubRepos\": true,\n \"customBusinessEvents\": true,\n \"customTechnicalEvents\": true,\n \"labels\": [],\n \"commitments\": false,\n \"reservations\": false,\n \"marketplacePurchases\": false,\n \"skuPriceChanges\": false,\n \"sources\": []\n },\n \"bookmarkedEvents\": [\n \"<string>\"\n ],\n \"scopeId\": \"<string>\",\n \"limitOverride\": 500\n },\n \"id\": \"<string>\",\n \"title\": \"\",\n \"description\": \"\",\n \"cutOff\": 10,\n \"comparison\": {\n \"kind\": \"PREVIOUS_PERIOD\"\n }\n },\n \"context\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app-api.costory.io/report-previews/digest-summary")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"widget\": {\n \"type\": \"TOP_FLOP\",\n \"topN\": 1,\n \"flopN\": 1,\n \"advancedExplorerRequest\": {\n \"period\": {\n \"startDate\": \"2023-11-07T05:31:56Z\",\n \"endDate\": \"2023-11-07T05:31:56Z\",\n \"forecastDays\": 1\n },\n \"queries\": [\n {\n \"type\": \"condition\",\n \"expression\": \"<string>\",\n \"name\": \"<string>\",\n \"colorIndex\": 123,\n \"alias\": \"<string>\",\n \"visible\": true\n }\n ],\n \"eventsFilter\": {\n \"githubSourceRepos\": [],\n \"enableAllGithubRepos\": true,\n \"customBusinessEvents\": true,\n \"customTechnicalEvents\": true,\n \"labels\": [],\n \"commitments\": false,\n \"reservations\": false,\n \"marketplacePurchases\": false,\n \"skuPriceChanges\": false,\n \"sources\": []\n },\n \"bookmarkedEvents\": [\n \"<string>\"\n ],\n \"scopeId\": \"<string>\",\n \"limitOverride\": 500\n },\n \"id\": \"<string>\",\n \"title\": \"\",\n \"description\": \"\",\n \"cutOff\": 10,\n \"comparison\": {\n \"kind\": \"PREVIOUS_PERIOD\"\n }\n },\n \"context\": {}\n}"
response = http.request(request)
puts response.read_body{
"markdown": "<string>"
}{
"error": "VALIDATION_ERROR",
"details": "<string>",
"reason": "<string>"
}{
"error": "<string>"
}Reports
Preview digest summary markdown
POST
/
report-previews
/
digest-summary
Preview digest summary markdown
curl --request POST \
--url https://app-api.costory.io/report-previews/digest-summary \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"widget": {
"type": "TOP_FLOP",
"topN": 1,
"flopN": 1,
"advancedExplorerRequest": {
"period": {
"startDate": "2023-11-07T05:31:56Z",
"endDate": "2023-11-07T05:31:56Z",
"forecastDays": 1
},
"queries": [
{
"type": "condition",
"expression": "<string>",
"name": "<string>",
"colorIndex": 123,
"alias": "<string>",
"visible": true
}
],
"eventsFilter": {
"githubSourceRepos": [],
"enableAllGithubRepos": true,
"customBusinessEvents": true,
"customTechnicalEvents": true,
"labels": [],
"commitments": false,
"reservations": false,
"marketplacePurchases": false,
"skuPriceChanges": false,
"sources": []
},
"bookmarkedEvents": [
"<string>"
],
"scopeId": "<string>",
"limitOverride": 500
},
"id": "<string>",
"title": "",
"description": "",
"cutOff": 10,
"comparison": {
"kind": "PREVIOUS_PERIOD"
}
},
"context": {}
}
'import requests
url = "https://app-api.costory.io/report-previews/digest-summary"
payload = {
"widget": {
"type": "TOP_FLOP",
"topN": 1,
"flopN": 1,
"advancedExplorerRequest": {
"period": {
"startDate": "2023-11-07T05:31:56Z",
"endDate": "2023-11-07T05:31:56Z",
"forecastDays": 1
},
"queries": [
{
"type": "condition",
"expression": "<string>",
"name": "<string>",
"colorIndex": 123,
"alias": "<string>",
"visible": True
}
],
"eventsFilter": {
"githubSourceRepos": [],
"enableAllGithubRepos": True,
"customBusinessEvents": True,
"customTechnicalEvents": True,
"labels": [],
"commitments": False,
"reservations": False,
"marketplacePurchases": False,
"skuPriceChanges": False,
"sources": []
},
"bookmarkedEvents": ["<string>"],
"scopeId": "<string>",
"limitOverride": 500
},
"id": "<string>",
"title": "",
"description": "",
"cutOff": 10,
"comparison": { "kind": "PREVIOUS_PERIOD" }
},
"context": {}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
widget: {
type: 'TOP_FLOP',
topN: 1,
flopN: 1,
advancedExplorerRequest: {
period: {
startDate: '2023-11-07T05:31:56Z',
endDate: '2023-11-07T05:31:56Z',
forecastDays: 1
},
queries: [
{
type: 'condition',
expression: '<string>',
name: '<string>',
colorIndex: 123,
alias: '<string>',
visible: true
}
],
eventsFilter: {
githubSourceRepos: [],
enableAllGithubRepos: true,
customBusinessEvents: true,
customTechnicalEvents: true,
labels: [],
commitments: false,
reservations: false,
marketplacePurchases: false,
skuPriceChanges: false,
sources: []
},
bookmarkedEvents: ['<string>'],
scopeId: '<string>',
limitOverride: 500
},
id: '<string>',
title: '',
description: '',
cutOff: 10,
comparison: {kind: 'PREVIOUS_PERIOD'}
},
context: {}
})
};
fetch('https://app-api.costory.io/report-previews/digest-summary', 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://app-api.costory.io/report-previews/digest-summary",
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' => [
'type' => 'TOP_FLOP',
'topN' => 1,
'flopN' => 1,
'advancedExplorerRequest' => [
'period' => [
'startDate' => '2023-11-07T05:31:56Z',
'endDate' => '2023-11-07T05:31:56Z',
'forecastDays' => 1
],
'queries' => [
[
'type' => 'condition',
'expression' => '<string>',
'name' => '<string>',
'colorIndex' => 123,
'alias' => '<string>',
'visible' => true
]
],
'eventsFilter' => [
'githubSourceRepos' => [
],
'enableAllGithubRepos' => true,
'customBusinessEvents' => true,
'customTechnicalEvents' => true,
'labels' => [
],
'commitments' => false,
'reservations' => false,
'marketplacePurchases' => false,
'skuPriceChanges' => false,
'sources' => [
]
],
'bookmarkedEvents' => [
'<string>'
],
'scopeId' => '<string>',
'limitOverride' => 500
],
'id' => '<string>',
'title' => '',
'description' => '',
'cutOff' => 10,
'comparison' => [
'kind' => 'PREVIOUS_PERIOD'
]
],
'context' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://app-api.costory.io/report-previews/digest-summary"
payload := strings.NewReader("{\n \"widget\": {\n \"type\": \"TOP_FLOP\",\n \"topN\": 1,\n \"flopN\": 1,\n \"advancedExplorerRequest\": {\n \"period\": {\n \"startDate\": \"2023-11-07T05:31:56Z\",\n \"endDate\": \"2023-11-07T05:31:56Z\",\n \"forecastDays\": 1\n },\n \"queries\": [\n {\n \"type\": \"condition\",\n \"expression\": \"<string>\",\n \"name\": \"<string>\",\n \"colorIndex\": 123,\n \"alias\": \"<string>\",\n \"visible\": true\n }\n ],\n \"eventsFilter\": {\n \"githubSourceRepos\": [],\n \"enableAllGithubRepos\": true,\n \"customBusinessEvents\": true,\n \"customTechnicalEvents\": true,\n \"labels\": [],\n \"commitments\": false,\n \"reservations\": false,\n \"marketplacePurchases\": false,\n \"skuPriceChanges\": false,\n \"sources\": []\n },\n \"bookmarkedEvents\": [\n \"<string>\"\n ],\n \"scopeId\": \"<string>\",\n \"limitOverride\": 500\n },\n \"id\": \"<string>\",\n \"title\": \"\",\n \"description\": \"\",\n \"cutOff\": 10,\n \"comparison\": {\n \"kind\": \"PREVIOUS_PERIOD\"\n }\n },\n \"context\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://app-api.costory.io/report-previews/digest-summary")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"widget\": {\n \"type\": \"TOP_FLOP\",\n \"topN\": 1,\n \"flopN\": 1,\n \"advancedExplorerRequest\": {\n \"period\": {\n \"startDate\": \"2023-11-07T05:31:56Z\",\n \"endDate\": \"2023-11-07T05:31:56Z\",\n \"forecastDays\": 1\n },\n \"queries\": [\n {\n \"type\": \"condition\",\n \"expression\": \"<string>\",\n \"name\": \"<string>\",\n \"colorIndex\": 123,\n \"alias\": \"<string>\",\n \"visible\": true\n }\n ],\n \"eventsFilter\": {\n \"githubSourceRepos\": [],\n \"enableAllGithubRepos\": true,\n \"customBusinessEvents\": true,\n \"customTechnicalEvents\": true,\n \"labels\": [],\n \"commitments\": false,\n \"reservations\": false,\n \"marketplacePurchases\": false,\n \"skuPriceChanges\": false,\n \"sources\": []\n },\n \"bookmarkedEvents\": [\n \"<string>\"\n ],\n \"scopeId\": \"<string>\",\n \"limitOverride\": 500\n },\n \"id\": \"<string>\",\n \"title\": \"\",\n \"description\": \"\",\n \"cutOff\": 10,\n \"comparison\": {\n \"kind\": \"PREVIOUS_PERIOD\"\n }\n },\n \"context\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app-api.costory.io/report-previews/digest-summary")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"widget\": {\n \"type\": \"TOP_FLOP\",\n \"topN\": 1,\n \"flopN\": 1,\n \"advancedExplorerRequest\": {\n \"period\": {\n \"startDate\": \"2023-11-07T05:31:56Z\",\n \"endDate\": \"2023-11-07T05:31:56Z\",\n \"forecastDays\": 1\n },\n \"queries\": [\n {\n \"type\": \"condition\",\n \"expression\": \"<string>\",\n \"name\": \"<string>\",\n \"colorIndex\": 123,\n \"alias\": \"<string>\",\n \"visible\": true\n }\n ],\n \"eventsFilter\": {\n \"githubSourceRepos\": [],\n \"enableAllGithubRepos\": true,\n \"customBusinessEvents\": true,\n \"customTechnicalEvents\": true,\n \"labels\": [],\n \"commitments\": false,\n \"reservations\": false,\n \"marketplacePurchases\": false,\n \"skuPriceChanges\": false,\n \"sources\": []\n },\n \"bookmarkedEvents\": [\n \"<string>\"\n ],\n \"scopeId\": \"<string>\",\n \"limitOverride\": 500\n },\n \"id\": \"<string>\",\n \"title\": \"\",\n \"description\": \"\",\n \"cutOff\": 10,\n \"comparison\": {\n \"kind\": \"PREVIOUS_PERIOD\"\n }\n },\n \"context\": {}\n}"
response = http.request(request)
puts response.read_body{
"markdown": "<string>"
}{
"error": "VALIDATION_ERROR",
"details": "<string>",
"reason": "<string>"
}{
"error": "<string>"
}Authorizations
Send Authorization: Bearer <credential> using either a Clerk session JWT or a Clerk API key (ak_*). API keys may identify a user (user_*) or organization (org_*) principal and are generated in the Clerk Dashboard under API keys.
Body
application/json
Response
Generated digest summary markdown
Last modified on July 24, 2026
Was this page helpful?
⌘I
