Sentio Data API
The Data API from Sentio — 25 operation(s) for data.
The Data API from Sentio — 25 operation(s) for data.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/sentio-data-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Sentio AI Data 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: Data
paths:
/v1/analytics/{owner}/{slug}/sql/cancel_query/{executionId}:
put:
description: Cancel a SQL query by execution_id.
operationId: CancelSQLQuery
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
- in: path
name: executionId
required: true
schema:
type: string
- description: use project id if project_owner and project_slug are not provided
in: query
name: projectId
required: false
schema:
type: string
- description: version of the datasource, default to the active version if not provided
in: query
name: version
required: false
schema:
type: integer
format: int32
responses:
'200':
description: A successful response.
content:
application/json:
schema:
properties: {}
type: object
summary: Cancel SQL Query
tags:
- Data
/v1/analytics/{owner}/{slug}/sql/refreshable_materialized_view/{name}:
delete:
description: Delete a refreshable materialized view in a project.
operationId: DeleteRefreshableMaterializedView
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
- in: path
name: name
required: true
schema:
type: string
- description: use project id if project_owner and project_slug are not provided
in: query
name: projectId
required: false
schema:
type: string
responses:
'200':
description: A successful response.
content:
application/json:
schema:
properties: {}
type: object
summary: Delete Refreshable Materialized View
tags:
- Data
get:
description: Get the status of a refreshable materialized view in a project.
operationId: GetRefreshableMaterializedStatus
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
- in: path
name: name
required: true
schema:
type: string
- description: use project id if project_owner and project_slug are not provided
in: query
name: projectId
required: false
schema:
type: string
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/analytic_service.GetRefreshableMaterializedViewStatusResponse'
summary: Get Refreshable Materialized View Status
tags:
- Data
/v1/analytics/{owner}/{slug}/sql/execute:
post:
description: 'Execute SQL in a project. Go to "Data Studio" -> "SQL Editor", write your query and then click "Export as cURL"
.png)
Find more: https://docs.sentio.xyz/reference/data#sql-api'
externalDocs:
description: find more information here
url: https://docs.sentio.xyz/reference/data#sql-api
operationId: ExecuteSQL
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
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/analytic_service.AnalyticService.ExecuteSQLBody'
required: true
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/analytic_service.SyncExecuteSQLResponse'
summary: Execute SQL
tags:
- Data
/v1/analytics/{owner}/{slug}/sql/execute/async:
post:
description: Execute SQL in a project asynchronously.
operationId: ExecuteSQLAsync
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
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/analytic_service.AnalyticService.ExecuteSQLAsyncBody'
required: true
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/analytic_service.AsyncExecuteSQLResponse'
summary: Execute SQL by Async
tags:
- Data
/v1/metrics:
get:
operationId: GetMetrics
parameters:
- in: query
name: projectId
required: false
schema:
type: string
- in: query
name: name
required: false
schema:
type: string
- in: query
name: version
required: false
schema:
type: integer
format: int32
- in: query
name: labelLimit
required: false
schema:
type: string
format: uint64
- in: query
name: labelSearchQuery
required: false
schema:
type: string
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/metrics_service.GetMetricsResponse'
summary: Get a list of metrics in a project
tags:
- Data
/v1/analytics/sql/sharing/{id}:
get:
description: Get sharing settings for a SQL query.
operationId: GetSharingSQL
parameters:
- in: path
name: id
required: true
schema:
type: string
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/analytic_service.GetSharingSQLResponse'
summary: Get Sharing SQL
tags:
- Data
/v1/insights/{owner}/{slug}/coins:
get:
description: Get a list of coins in a project.
operationId: ListCoins
parameters:
- in: path
name: owner
required: true
schema:
type: string
- in: path
name: slug
required: true
schema:
type: string
- in: query
name: projectId
required: false
schema:
type: string
- in: query
name: version
required: false
schema:
type: integer
format: int32
- in: query
name: limit
required: false
schema:
type: integer
format: int32
- in: query
name: offset
required: false
schema:
type: integer
format: int32
- in: query
name: searchQuery
required: false
schema:
type: string
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/insights_service.ListCoinsResponse'
summary: List coins
tags:
- Data
/v1/insights/coins:
get:
description: Get a list of coins in a project.
operationId: ListCoins2
parameters:
- in: query
name: projectOwner
required: false
schema:
type: string
- in: query
name: projectSlug
required: false
schema:
type: string
- in: query
name: projectId
required: false
schema:
type: string
- in: query
name: version
required: false
schema:
type: integer
format: int32
- in: query
name: limit
required: false
schema:
type: integer
format: int32
- in: query
name: offset
required: false
schema:
type: integer
format: int32
- in: query
name: searchQuery
required: false
schema:
type: string
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/insights_service.ListCoinsResponse'
summary: List coins
tags:
- Data
/v1/analytics/{owner}/{slug}/sql/refreshable_materialized_views:
get:
description: List all refreshable materialized views in a project.
operationId: ListRefreshableMaterializedViews
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: use project id if project_owner and project_slug are not provided
in: query
name: projectId
required: false
schema:
type: string
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/analytic_service.ListRefreshableMaterializedViewResponse'
summary: List Refreshable Materialized Views
tags:
- Data
/v1/sql/{owner}/{slug}/tables:
get:
operationId: ListTables
parameters:
- in: path
name: owner
required: true
schema:
type: string
- in: path
name: slug
required: true
schema:
type: string
- in: query
name: projectId
required: false
schema:
type: string
- in: query
name: version
required: false
schema:
type: integer
format: int32
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/analytic_service.ListTablesResponse'
summary: List Tables
tags:
- Data
/v1/sql/tables:
get:
operationId: ListTables2
parameters:
- in: query
name: projectOwner
required: false
schema:
type: string
- in: query
name: projectSlug
required: false
schema:
type: string
- in: query
name: projectId
required: false
schema:
type: string
- in: query
name: version
required: false
schema:
type: integer
format: int32
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/analytic_service.ListTablesResponse'
summary: List Tables
tags:
- Data
/v1/insights/{owner}/{slug}/query:
post:
description: Query for metrics,event logs and coin prices in a project.
operationId: Query
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
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/insights_service.InsightsService.QueryBody'
required: true
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/insights_service.QueryResponse'
summary: Insight Query
tags:
- Data
/v1/metrics/{owner}/{slug}/query:
post:
operationId: QueryInstant
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
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/metrics_service.ObservabilityService.QueryBody'
required: true
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/metrics_service.QueryValueResponse'
summary: Metric instant queries
tags:
- Data
/v1/eventlogs/{owner}/{slug}:
post:
operationId: QueryLog
parameters:
- in: path
name: owner
required: true
schema:
type: string
- in: path
name: slug
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/analytic_service.SearchService.QueryLogBody'
required: true
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/analytic_service.LogQueryResponse'
summary: Query event logs
tags:
- Data
/v1/eventlogs/{owner}/{slug}/query:
get:
operationId: QueryLog2
parameters:
- in: path
name: owner
required: true
schema:
type: string
- in: path
name: slug
required: true
schema:
type: string
- in: query
name: projectId
required: false
schema:
type: string
- in: query
name: query
required: false
schema:
type: string
- in: query
name: timeRange.start.relativeTime.unit
required: false
schema:
type: string
- in: query
name: timeRange.start.relativeTime.value
required: false
schema:
type: integer
format: int32
- in: query
name: timeRange.start.relativeTime.align
required: false
schema:
type: string
- in: query
name: timeRange.start.absoluteTime
required: false
schema:
type: string
format: int64
- in: query
name: timeRange.end.relativeTime.unit
required: false
schema:
type: string
- in: query
name: timeRange.end.relativeTime.value
required: false
schema:
type: integer
format: int32
- in: query
name: timeRange.end.relativeTime.align
required: false
schema:
type: string
- in: query
name: timeRange.end.absoluteTime
required: false
schema:
type: string
format: int64
- in: query
name: timeRange.step
required: false
schema:
type: string
format: int64
- in: query
name: timeRange.interval.value
required: false
schema:
type: number
format: double
- in: query
name: timeRange.interval.unit
required: false
schema:
type: string
- in: query
name: timeRange.timezone
required: false
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
- in: query
name: version
required: false
schema:
type: integer
format: int32
- in: query
name: source
required: false
schema:
type: string
- description: how long the cache will be stored before it is evicted
in: query
name: cachePolicy.cacheTtlSecs
required: false
schema:
type: integer
format: int32
- description: how long the cache will be refreshed in the background
in: query
name: cachePolicy.cacheRefreshTtlSecs
required: false
schema:
type: integer
format: int32
- description: force refresh the cache now
in: query
name: cachePolicy.forceRefresh
required: false
schema:
type: boolean
- description: do not use cache
in: query
name: cachePolicy.noCache
required: false
schema:
type: boolean
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/analytic_service.LogQueryResponse'
summary: Query event logs
tags:
- Data
/v1/metrics/{owner}/{slug}/query_range:
post:
description: 'The easiest way to build query is through UI, you could first create an insight chart, and then **Export as cURL**.
.png)'
operationId: QueryRange
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
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/metrics_service.ObservabilityService.QueryRangeBody'
required: true
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/metrics_service.MetricsQueryResponse'
summary: Metric range queries
tags:
- Data
/v1/analytics/{owner}/{slug}/sql/query_execution_detail/{executionId}:
get:
description: Query the execution detail of a SQL query by execution_id.
operationId: QuerySQLExecutionDetail
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
- in: path
name: executionId
required: true
schema:
type: string
- description: use project id if project_owner and project_slug are not provided
in: query
name: projectId
required: false
schema:
type: string
- description: version of the datasource, default to the active version if not provided
in: query
name: version
required: false
schema:
type: integer
format: int32
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/analytic_service.QuerySQLExecutionDetailResponse'
summary: Query SQL Execution Detail
tags:
- Data
/v1/analytics/{owner}/{slug}/sql/query_result/{executionId}:
get:
description: Query the result of a SQL query by execution_id.
operationId: QuerySQLResult
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
- in: path
name: executionId
required: true
schema:
type: string
- description: use project id if project_owner and project_slug are not provided
in: query
name: projectId
required: false
schema:
type: string
- description: version of the datasource, default to the active version if not provided
in: query
name: version
required: false
schema:
type: integer
format: int32
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/analytic_service.QuerySQLResultResponse'
summary: Query SQL Result
tags:
- Data
/v1/sql/{owner}/{slug}/table/{name}:
get:
description: Query table schema by name.
operationId: QueryTable
parameters:
- in: path
name: owner
required: true
schema:
type: string
- in: path
name: slug
required: true
schema:
type: string
- in: path
name: name
required: true
schema:
type: string
- in: query
name: projectId
required: false
schema:
type: string
- in: query
name: version
required: false
schema:
type: integer
format: int32
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/analytic_service.QueryTableResponse'
summary: Query Table By Name
tags:
- Data
/v1/sql/table:
get:
description: Query table schema by name.
operationId: QueryTable2
parameters:
- in: query
name: projectOwner
required: false
schema:
type: string
- in: query
name: projectSlug
required: false
schema:
type: string
- in: query
name: projectId
required: false
schema:
type: string
- in: query
name: version
required: false
schema:
type: integer
format: int32
- in: query
name: name
required: false
schema:
type: string
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/analytic_service.QueryTableResponse'
summary: Query Table By Name
tags:
- Data
/v1/analytics/{owner}/{slug}/sql/tables:
get:
description: Query tables in a project. use flag to control which type of tables to include.
operationId: QueryTables
parameters:
- in: path
name: owner
required: true
schema:
type: string
- in: path
name: slug
required: true
schema:
type: string
- in: query
name: projectId
required: false
schema:
type: string
- in: query
name: version
required: false
schema:
type: integer
format: int32
- in: query
name: includeChains
required: false
schema:
type: boolean
- in: query
name: includeViews
required: false
schema:
type: boolean
- in: query
name: includeExternals
required: false
schema:
type: boolean
- in: query
name: includeDash
required: false
schema:
type: boolean
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/analytic_service.QueryTablesResponse'
summary: Query Tables
tags:
- Data
/v1/analytics/sql/tables:
get:
description: Query tables in a project. use flag to control which type of tables to include.
operationId: QueryTables2
parameters:
- in: query
name: projectOwner
required: false
schema:
type: string
- in: query
name: projectSlug
required: false
schema:
type: string
- in: query
name: projectId
required: false
schema:
type: string
- in: query
name: version
required: false
schema:
type: integer
format: int32
- in: query
name: includeChains
required: false
schema:
type: boolean
- in: query
name: includeViews
required: false
schema:
type: boolean
- in: query
name: includeExternals
required: false
schema:
type: boolean
- in: query
name: includeDash
required: false
schema:
type: boolean
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/analytic_service.QueryTablesResponse'
summary: Query Tables
tags:
- Data
/v1/analytics/{owner}/{slug}/sql/refreshable_materialized_view:
post:
description: Save or update a refreshable materialized view in a project.
operationId: SaveRefreshableMaterializedView
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
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/analytic_service.AnalyticService.SaveRefreshableMaterializedViewBody'
required: true
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/analytic_service.SaveRefreshableMaterializedViewResponse'
summary: Save Refreshable Materialized View
tags:
- Data
/v1/analytics/sql/sharing:
post:
description: Save or update sharing settings for a SQL query.
operationId: SaveSharingSQL
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/analytic_service.SaveSharingSQLRequest'
required: true
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/analytic_service.SaveSharingSQLResponse'
summary: Save Sharing SQL
tags:
- Data
/v1/analytics/{owner}/{slug}/sql/save:
post:
description: Save or update a SQL query in a project.
operationId: SaveSQL
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
requestBody:
$ref: '#/components/requestBodies/analytic_service.AnalyticService.SaveSQLBody'
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/analytic_service.SaveSQLResponse'
summary: Save SQL
tags:
- Data
put:
description: Save or update a SQL query in a project.
operationId: SaveSQL2
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
requestBody:
$ref: '#/components/requestBodies/analytic_service.AnalyticService.SaveSQLBody'
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/analytic_service.SaveSQLResponse'
summary: Save SQL
tags:
- Data
components:
schemas:
common.TimeRange.TimeLike:
properties:
absoluteTime:
format: int64
type: string
relativeTime:
$ref: '#/components/schemas/common.TimeRange.RelativeTime'
type: object
common.Function:
properties:
arguments:
items:
$ref: '#/components/schemas/common.Argument'
type: array
name:
type: string
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
common.SegmentationQuery.Resource:
properties:
cohortsId:
type: string
cohortsQuery:
$ref: '#/components/schemas/common.CohortsQuery'
multipleNames:
items:
type: string
type: array
name:
type: string
type:
$ref: '#/components/schemas/common.SegmentationQuery.ResourceType'
type: object
common.CohortsFilter.Aggregation.AggregateProperties.AggregationType:
default: SUM
enum:
- SUM
- AVG
- MEDIAN
- MIN
- MAX
- DISTINCT_COUNT
- LAST
- FIRST
type: string
metrics_service.QueryValueResponse:
properties:
results:
items:
$ref: '#/components/schemas/metrics_service.QueryValueResponse.Result'
type: array
type: object
common.SegmentationQuery.Aggregation.Unique:
type: object
metrics_service.ObservabilityService.QueryRangeBody:
example:
formulas: []
queries:
- aggregate: null
alias: Mint (24 hours)
disabled: false
functions:
- arguments:
- durationValue:
unit: d
value: 1
name: rollup_sum
id: a
labelSelector: {}
query: mint_sum
- aggregate: null
alias: Burn (24 hours)
disabled: fa
# --- truncated at 32 KB (79 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/sentio/refs/heads/main/openapi/sentio-data-api-openapi.yml