Sentio Web API
The Web API from Sentio — 8 operation(s) for web.
The Web API from Sentio — 8 operation(s) for web.
openapi: 3.0.0
info:
title: Sentio AI Web API
description: 'Sentio Open API — REST access to Sentio''s Web3 observability platform: analytics (SQL/metrics/event logs), price data, processors, dashboards, alerts, debugging/simulation (forks), and AI chat. Harvested from Sentio''s published API reference at docs.sentio.xyz/reference.'
version: '1.0'
contact:
name: Sentio
url: https://www.sentio.xyz
servers:
- url: https://api.sentio.xyz
tags:
- name: Web
paths:
/v1/users/link:
get:
operationId: CreateLinkSession
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/web_service.LinkAccountSession'
tags:
- Web
/v1/dashboards/{dashboardId}:
delete:
operationId: DeleteDashboard
parameters:
- description: filter the dashboard by id
in: path
name: dashboardId
required: true
schema:
type: string
- description: filter the dashboard by project id
in: query
name: projectId
required: false
schema:
type: string
- description: username or organization name
in: query
name: ownerName
required: false
schema:
type: string
- description: project slug
in: query
name: slug
required: false
schema:
type: string
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/web_service.Dashboard'
summary: Delete a dashboard by id
tags:
- Web
get:
operationId: GetDashboard
parameters:
- description: filter the dashboard by id
in: path
name: dashboardId
required: true
schema:
type: string
- description: filter the dashboard by project id
in: query
name: projectId
required: false
schema:
type: string
- description: username or organization name
in: query
name: ownerName
required: false
schema:
type: string
- description: project slug
in: query
name: slug
required: false
schema:
type: string
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/web_service.GetDashboardResponse'
summary: Get a dashboard by id
tags:
- Web
/v1/dashboards/{dashboardId}/json:
get:
operationId: ExportDashboard
parameters:
- in: path
name: dashboardId
required: true
schema:
type: string
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/web_service.ExportDashboardResponse'
summary: Export a dashboard to json
tags:
- Web
/v1/projects/{owner}/{slug}/dashboards/{dashboardId}:
get:
operationId: GetDashboard2
parameters:
- description: username or organization name
in: path
name: owner
required: true
schema:
type: string
- description: project slug
in: path
name: slug
required: true
schema:
type: string
- description: filter the dashboard by id
in: path
name: dashboardId
required: true
schema:
type: string
- description: filter the dashboard by project id
in: query
name: projectId
required: false
schema:
type: string
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/web_service.GetDashboardResponse'
summary: Get a dashboard by id
tags:
- Web
/v1/dashboards/{dashboardId}/history:
get:
operationId: GetDashboardHistory
parameters:
- in: path
name: dashboardId
required: true
schema:
type: string
- in: query
name: limit
required: false
schema:
type: integer
format: int32
- in: query
name: offset
required: false
schema:
type: integer
format: int32
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/web_service.GetDashboardHistoryResponse'
summary: Get dashboard history by dashboard id
tags:
- Web
/v1/dashboards/json:
post:
operationId: ImportDashboard
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/web_service.ImportDashboardRequest'
required: true
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/web_service.ImportDashboardResponse'
summary: Import a dashboard
tags:
- Web
/v1/dashboards:
get:
operationId: ListDashboards
parameters:
- description: filter the dashboard by id
in: query
name: dashboardId
required: false
schema:
type: string
- description: filter the dashboard by project id
in: query
name: projectId
required: false
schema:
type: string
- description: username or organization name
in: query
name: ownerName
required: false
schema:
type: string
- description: project slug
in: query
name: slug
required: false
schema:
type: string
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/web_service.GetDashboardResponse'
summary: List all dashboards in a project
tags:
- Web
/v1/projects/{owner}/{slug}/dashboards:
get:
operationId: ListDashboards2
parameters:
- description: username or organization name
in: path
name: owner
required: true
schema:
type: string
- description: project slug
in: path
name: slug
required: true
schema:
type: string
- description: filter the dashboard by id
in: query
name: dashboardId
required: false
schema:
type: string
- description: filter the dashboard by project id
in: query
name: projectId
required: false
schema:
type: string
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/web_service.GetDashboardResponse'
summary: List all dashboards in a project
tags:
- Web
components:
schemas:
web_service.ChartConfig.SeriesConfig:
properties:
series:
additionalProperties:
$ref: '#/components/schemas/web_service.ChartConfig.SeriesConfig.Series'
type: object
type: object
common.Argument:
properties:
boolValue:
type: boolean
doubleValue:
format: double
type: number
durationValue:
$ref: '#/components/schemas/common.Duration'
intValue:
format: int32
type: integer
stringValue:
type: string
type: object
common.Selector:
properties:
key:
type: string
operator:
$ref: '#/components/schemas/common.Selector.OperatorType'
value:
items:
$ref: '#/components/schemas/common.Any'
type: array
title: TODO maybe MetricQuery should use this as well
type: object
common.SelectorExpr.LogicExpr:
properties:
expressions:
items:
$ref: '#/components/schemas/common.SelectorExpr'
type: array
operator:
$ref: '#/components/schemas/common.JoinOperator'
type: object
web_service.ChartConfig.ValueFormatter:
default: NumberFormatter
enum:
- NumberFormatter
- DateFormatter
- StringFormatter
type: string
web_service.Dashboard.Extra.TemplateVariable:
properties:
defaultValue:
type: string
field:
type: string
options:
items:
type: string
type: array
sourceName:
type: string
type: object
common.ColumnState:
properties:
columnOrder:
items:
type: string
type: array
columnSizing:
additionalProperties:
format: int32
type: integer
type: object
columnVisibility:
additionalProperties:
type: boolean
type: object
sorting:
items:
$ref: '#/components/schemas/common.ColumnState.Sort'
type: array
type: object
insights_service.QueryRequest.Query:
properties:
dataSource:
$ref: '#/components/schemas/insights_service.DataSource'
eventsQuery:
$ref: '#/components/schemas/common.SegmentationQuery'
metricsQuery:
$ref: '#/components/schemas/common.Query'
priceQuery:
$ref: '#/components/schemas/common.PriceSegmentationQuery'
sourceName:
title: source name for the query, used when data is from a external project
type: string
type: object
web_service.Note:
properties:
backgroundColor:
type: string
content:
type: string
fontSize:
$ref: '#/components/schemas/web_service.Note.FontSize'
textAlign:
$ref: '#/components/schemas/web_service.Note.Alignment'
textColor:
type: string
verticalAlign:
$ref: '#/components/schemas/web_service.Note.VerticalAlignment'
type: object
web_service.ChartConfig.LabelConfigColumn:
properties:
name:
type: string
showLabel:
type: boolean
showValue:
type: boolean
type: object
web_service.Chart:
properties:
config:
$ref: '#/components/schemas/web_service.ChartConfig'
datasourceType:
$ref: '#/components/schemas/web_service.Chart.DataSourceType'
enableExperimentalFeatures:
title: enable experimental_features
type: boolean
eventLogsConfig:
$ref: '#/components/schemas/web_service.EventLogsConfig'
formulas:
items:
$ref: '#/components/schemas/common.Formula'
type: array
group:
$ref: '#/components/schemas/web_service.Group'
insightsQueries:
items:
$ref: '#/components/schemas/insights_service.QueryRequest.Query'
type: array
note:
$ref: '#/components/schemas/web_service.Note'
overlayGraphs:
items:
$ref: '#/components/schemas/web_service.OverlayGraph'
title: Overlay graphs for multi-axis support (max 3)
type: array
queries:
items:
$ref: '#/components/schemas/common.Query'
type: array
retentionQuery:
$ref: '#/components/schemas/common.RetentionQuery'
segmentationQueries:
items:
$ref: '#/components/schemas/common.SegmentationQuery'
type: array
sqlExecuteEngine:
$ref: '#/components/schemas/analytic_service.ExecuteEngine'
sqlQuery:
type: string
sqlQueryId:
type: string
type:
$ref: '#/components/schemas/web_service.ChartType'
type: object
web_service.ImportDashboardRequest:
properties:
dashboardId:
description: The id of the target dashboard to import into.
type: string
dashboardJson:
$ref: '#/components/schemas/web_service.Dashboard'
overrideLayouts:
description: Override the layout of target dashboard.
type: boolean
required:
- dashboardId
- dashboardJson
type: object
common.CohortsFilter.Aggregation:
properties:
aggregateProperties:
$ref: '#/components/schemas/common.CohortsFilter.Aggregation.AggregateProperties'
operator:
$ref: '#/components/schemas/common.CohortsFilter.Aggregation.OperatorType'
total:
$ref: '#/components/schemas/common.CohortsFilter.Aggregation.Total'
value:
items:
$ref: '#/components/schemas/common.Any'
type: array
type: object
common.SegmentParameter:
properties:
allUsers:
type: boolean
cohortId:
type: string
type: object
insights_service.DataSource:
default: METRICS
enum:
- METRICS
- EVENTS
- PRICE
- FORMULA
- COHORTS
- SYSTEM_SQL
type: string
common.UserInfo:
description: The same to user but with sensitive data removed.
properties:
firstName:
type: string
id:
type: string
lastName:
type: string
nickname:
type: string
picture:
type: string
username:
type: string
type: object
common.RetentionQuery.Interval:
properties:
unit:
$ref: '#/components/schemas/common.RetentionQuery.Interval.Unit'
value:
format: int32
type: integer
type: object
common.TimeRange:
properties:
end:
$ref: '#/components/schemas/common.TimeRange.TimeLike'
interval:
$ref: '#/components/schemas/common.Duration'
start:
$ref: '#/components/schemas/common.TimeRange.TimeLike'
step:
format: int64
type: string
timezone:
type: string
type: object
web_service.Note.FontSize:
default: MD
enum:
- MD
- SM
- LG
- XL
- XXL
type: string
web_service.EventLogsConfig.TimeRangeOverride:
properties:
enabled:
type: boolean
timeRange:
$ref: '#/components/schemas/common.TimeRange'
type: object
web_service.ChartConfig.YAxisConfig:
properties:
column:
type: string
max:
type: string
min:
type: string
name:
type: string
scale:
type: boolean
stacked:
type: string
type: object
common.CoinID.AddressIdentifier:
properties:
address:
type: string
chain:
type: string
type: object
web_service.SharingConfig:
properties:
hideModifiers:
type: boolean
isReadonly:
type: boolean
type: object
common.CohortsGroup:
properties:
filters:
items:
$ref: '#/components/schemas/common.CohortsFilter'
type: array
joinOperator:
$ref: '#/components/schemas/common.JoinOperator'
type: object
web_service.ChartConfig.QueryValueConfig:
properties:
calculation:
$ref: '#/components/schemas/web_service.ChartConfig.Calculation'
colorTheme:
$ref: '#/components/schemas/web_service.ChartConfig.ColorTheme'
seriesCalculation:
$ref: '#/components/schemas/web_service.ChartConfig.Calculation'
showBackgroundChart:
type: boolean
type: object
common.SegmentationQuery.SelectorExpr.LogicExpr:
properties:
expressions:
items:
$ref: '#/components/schemas/common.SegmentationQuery.SelectorExpr'
type: array
operator:
$ref: '#/components/schemas/common.JoinOperator'
type: object
web_service.ChartConfig.PieConfig.PieType:
default: Pie
enum:
- Pie
- Donut
type: string
web_service.ExportDashboardResponse:
properties:
dashboardJson:
$ref: '#/components/schemas/web_service.Dashboard'
type: object
common.TimeRange.TimeLike:
properties:
absoluteTime:
format: int64
type: string
relativeTime:
$ref: '#/components/schemas/common.TimeRange.RelativeTime'
type: object
common.RetentionQuery.Criteria:
default: OnOrAfter
enum:
- OnOrAfter
- 'On'
type: string
common.RetentionQuery.Filter.TimeFilter:
properties:
type:
$ref: '#/components/schemas/common.RetentionQuery.Filter.TimeFilter.Type'
type: object
web_service.ChartConfig.ScatterConfig:
properties:
color:
type: string
maxSize:
format: int32
type: integer
minSize:
format: int32
type: integer
symbolSize:
type: string
type: object
web_service.ChartConfig.Sort:
properties:
orderDesc:
type: boolean
sortBy:
$ref: '#/components/schemas/web_service.ChartConfig.SortBy'
type: object
web_service.ChartConfig.LineConfig:
properties:
smooth:
type: boolean
style:
$ref: '#/components/schemas/web_service.ChartConfig.LineConfig.Style'
type: object
web_service.Dashboard.Layouts.Layout:
properties:
h:
format: int32
type: integer
i:
type: string
w:
format: int32
type: integer
x:
format: int32
type: integer
y:
format: int32
type: integer
type: object
web_service.Note.Alignment:
default: LEFT
enum:
- LEFT
- CENTER
- RIGHT
type: string
web_service.Dashboard.Layouts:
properties:
layouts:
items:
$ref: '#/components/schemas/web_service.Dashboard.Layouts.Layout'
type: array
type: object
common.ColumnState.Sort:
properties:
desc:
type: boolean
id:
type: string
type: object
web_service.ChartConfig.PieConfig:
properties:
absValue:
type: boolean
calculation:
$ref: '#/components/schemas/web_service.ChartConfig.Calculation'
pieType:
$ref: '#/components/schemas/web_service.ChartConfig.PieConfig.PieType'
showPercent:
type: boolean
showValue:
type: boolean
type: object
common.CohortsFilter.Aggregation.AggregateProperties:
properties:
propertyName:
type: string
type:
$ref: '#/components/schemas/common.CohortsFilter.Aggregation.AggregateProperties.AggregationType'
type: object
web_service.ChartConfig.ColorTheme:
properties:
backgroundColor:
type: string
textColor:
type: string
themeType:
type: string
type: object
web_service.Panel:
properties:
chart:
$ref: '#/components/schemas/web_service.Chart'
creator:
$ref: '#/components/schemas/common.UserInfo'
dashboardId:
type: string
groupId:
description: 'When non-empty, this panel renders inside the Group panel identified by group_id.
GROUP-typed panels must keep this field empty (groups cannot nest).'
type: string
id:
type: string
name:
type: string
updater:
$ref: '#/components/schemas/common.UserInfo'
type: object
web_service.OverlayGraph:
description: 'An additional graph overlaid on the primary chart, with its own queries
and Y-axis configuration. Chart type defaults to the parent chart type.'
properties:
chartType:
$ref: '#/components/schemas/web_service.ChartType'
dataConfig:
$ref: '#/components/schemas/web_service.ChartConfig.DataConfig'
formulas:
items:
$ref: '#/components/schemas/common.Formula'
type: array
insightsQueries:
items:
$ref: '#/components/schemas/insights_service.QueryRequest.Query'
title: Unified query format
type: array
lineConfig:
$ref: '#/components/schemas/web_service.ChartConfig.LineConfig'
name:
title: Y-axis label
type: string
sqlExecuteEngine:
$ref: '#/components/schemas/analytic_service.ExecuteEngine'
sqlQuery:
title: For SQL datasource
type: string
sqlQueryId:
title: For saved SQL queries
type: string
valueConfig:
$ref: '#/components/schemas/web_service.ChartConfig.ValueConfig'
yAxis:
$ref: '#/components/schemas/web_service.ChartConfig.YAxisConfig'
type: object
common.EventLogColumn:
properties:
accessorKey:
type: string
enableHiding:
type: boolean
enableResizing:
type: boolean
enableSorting:
type: boolean
id:
type: string
name:
type: string
size:
format: int32
type: integer
type: object
web_service.ChartType:
default: LINE
enum:
- LINE
- AREA
- BAR
- BAR_GAUGE
- TABLE
- QUERY_VALUE
- PIE
- NOTE
- SCATTER
- GROUP
type: string
common.TimeRangeLite:
description: 'start and end time of the time range, Find more: https://docs.sentio.xyz/reference/data#time-range-configuration-guide'
example:
end: now
start: now-1M
step: 86400
timezone: Europe/London
externalDocs:
description: Find more about time range here.
url: https://docs.sentio.xyz/reference/data#time-range-configuration-guide
properties:
end:
type: string
start:
type: string
step:
format: int32
title: interval in seconds between each data point
type: integer
timezone:
type: string
required:
- start
- end
- step
title: Time range
type: object
common.CoinID:
properties:
address:
$ref: '#/components/schemas/common.CoinID.AddressIdentifier'
symbol:
type: string
type: object
common.TimeRange.RelativeTime:
properties:
align:
type: string
unit:
type: string
value:
format: int32
type: integer
type: object
common.CohortsFilter:
properties:
aggregation:
$ref: '#/components/schemas/common.CohortsFilter.Aggregation'
name:
type: string
selectorExpr:
$ref: '#/components/schemas/common.SelectorExpr'
symbol:
type: boolean
timeRange:
$ref: '#/components/schemas/common.TimeRangeLite'
type: object
common.CohortsFilter.Aggregation.Total:
type: object
web_service.Dashboard.DashboardVisibility:
default: INTERNAL
enum:
- INTERNAL
- PRIVATE
- PUBLIC
type: string
web_service.ChartConfig.LineConfig.Style:
default: Solid
enum:
- Solid
- Dotted
type: string
web_service.Group.Style:
default: DEFAULT
description: 'Visual treatment for the Group''s header card. Default = plain border;
Emphasis = solid highlight_color tint behind the title row.'
enum:
- DEFAULT
- EMPHASIS
type: string
common.SegmentationQuery.Aggregation.AggregateProperties.AggregationType:
default: SUM
enum:
- SUM
- CUMULATIVE_SUM
- AVG
- MEDIAN
- MIN
- MAX
- DISTINCT_COUNT
- CUMULATIVE_DISTINCT_COUNT
- CUMULATIVE_COUNT
- LAST
- CUMULATIVE_LAST
- FIRST
- CUMULATIVE_FIRST
- PERCENTILE_25TH
- PERCENTILE_75TH
- PERCENTILE_90TH
- PERCENTILE_95TH
- PERCENTILE_99TH
type: string
web_service.DashboardSharing:
properties:
config:
$ref: '#/components/schemas/web_service.SharingConfig'
dashboardId:
type: string
id:
type: string
isPublic:
type: boolean
viewers:
items:
type: string
type: array
type: object
web_service.ChartConfig.TableConfig:
properties:
calculation:
$ref: '#/components/schemas/web_service.ChartConfig.Calculation'
calculations:
additionalProperties:
$ref: '#/components/schemas/web_service.ChartConfig.Calculation'
type: object
columnOrders:
items:
type: string
type: array
columnWidths:
additionalProperties:
format: int32
type: integer
type: object
rowLimit:
format: int32
type: integer
showColumns:
additionalProperties:
type: boolean
title: map<string, bool> sort_by = 2;
type: object
showPlainData:
type: boolean
sortColumns:
items:
$ref: '#/components/schemas/web_service.ChartConfig.ColumnSort'
type: array
valueConfigs:
additionalProperties:
$ref: '#/components/schemas/web_service.ChartConfig.ValueConfig'
type: object
type: object
common.EventLogConfig:
properties:
columns:
items:
$ref: '#/components/schemas/common.EventLogColumn'
type: array
state:
$ref: '#/components/schemas/common.ColumnState'
type: object
common.SegmentationQuery.Aggregation:
properties:
aggregateProperties:
$ref: '#/components/schemas/common.SegmentationQuery.Aggregation.AggregateProperties'
countUnique:
$ref: '#/components/schemas/common.SegmentationQuery.Aggregation.CountUnique'
total:
$ref: '#/components/schemas/common.SegmentationQuery.Aggregation.Total'
unique:
$ref: '#/components/schemas/common.SegmentationQuery.Aggregation.Unique'
type: object
common.RetentionQuery.Filter:
properties:
propertyFilter:
$ref: '#/components/schemas/common.SelectorExpr'
timeFilter:
$ref: '#/components/schemas/common.RetentionQuery.Filter.TimeFilter'
type: object
web_service.Note.VerticalAlignment:
default: TOP
enum:
- TOP
- MIDDLE
- BOTTOM
type: string
web_service.DashboardHistory:
properties:
createdAt:
format: date-time
type: string
createdById:
type: string
dashboardId:
type: string
default:
type: boolean
description:
type: string
extra:
$ref: '#/components/schemas/web_service.Dashboard.Extra'
id:
format: int64
type: integer
isPinned:
type: boolean
layouts:
$ref: '#/components/schemas/web_service.Dashboard.ResponsiveLayouts'
name:
type: string
ownerId:
type: string
projectId:
type: string
tags:
items:
type: string
type: array
url:
type: string
version:
format: int32
type: integer
visibility:
$ref: '#/components/schemas/web_service.Dashboard.DashboardVisibility'
type: object
common.RetentionQuery.Filter.TimeFilter.Type:
default: Disable
enum:
- Disable
- FirstInTimeRange
- FirstInGlobal
type: string
web_service.Group:
description: 'Configuration for a GROUP-typed Panel — a collapsible container that holds
other panels referencing it via Panel.group_id. Groups cannot nest.'
properties:
childLayouts:
$ref: '#/components/schemas/web_service.Dashboard.ResponsiveLayouts'
collapsed:
type: boolean
highlightColor:
description: 'Palette key (e.g. "green", "purple") used to derive the header
background. Empty string keeps the theme default.'
type: string
style:
$ref: '#/components/schemas/web_service.Group.Style'
title:
type: string
type: object
web_service.ChartConfig.MarkerType:
default: LINE
enum:
- LINE
- AREA
- LINEX
type: string
web_service.ChartConfig.ValueConfig:
properties:
currencySymbol:
type: string
dateFormat:
type: string
mappingRules:
items:
$ref: '#/components/schemas/web_service.ChartConfig.MappingRule'
type: array
maxFractionDigits:
format: int32
type: integer
maxSignificantDigits:
format: int32
type: integer
precision:
format: int32
type: integer
prefix:
type: string
showValueLabel:
type: boolean
style:
$ref: '#/components/schemas/web_service.ChartConfig.ValueConfig.Style'
suffix:
type: string
tooltipTotal:
type: boolean
valueFormatter:
$ref: '#/components/schemas/web_service.ChartConfig.ValueFormatter'
type: object
common.Selector.OperatorType:
default: EQ
enum:
- EQ
- NEQ
- EXISTS
- NOT_EXISTS
- GT
- GTE
- LT
- LTE
- BETWEEN
- NOT_BETWEEN
- CONTAINS
- NOT_CONTAINS
- IN
- NOT_IN
- IN_COHORTS
- NOT_IN_COHORTS
title: TODO add Date Value and List Value and its data type
type: string
common.Function:
properties:
arguments:
items:
$ref: '#/components/schemas/common.Argument'
type: array
name:
type: string
type: object
common.CohortsFilter.Aggregation.AggregateProperties.AggregationType:
default: SUM
enum:
- SUM
- AVG
- MEDIAN
- MIN
- MAX
- DISTINCT_COUNT
- LAST
- FIRST
type: string
common.Formula:
description: the formula to combine multiple queries
example:
expression: sum(a)+sum(b)
properties:
alias:
title: bool enabled = 2;
type: string
color:
type: string
disabled:
type: boolean
expression:
type: string
functions:
items:
$ref: '#/components/schemas/common.Function'
type: array
id:
type: string
title: formula
type: object
web_service.Chart.DataSourceType:
default: METRICS
enum:
- METRICS
- NOTES
- ANALYTICS
- INSIGHTS
- EVENTS
- RETENTION
- SQL
- GROUP
type: string
common.SegmentationQuery.SelectorExpr:
properties:
logicExpr:
$ref: '#/components/schemas/common.SegmentationQuery.SelectorExpr.LogicExpr'
selector:
$ref: '#/components/schemas/common.Selector'
type: object
common.Query:
description: the query to fetch metrics data, promql
example:
aggregate: null
alias: transfer (24h)
disabled: false
functions:
- arguments:
- durationValue:
unit: d
# --- truncated at 32 KB (46 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/sentio/refs/heads/main/openapi/sentio-web-api-openapi.yml