Sentio Data API

The Data API from Sentio — 25 operation(s) for data.

OpenAPI Specification

sentio-data-api-openapi.yml Raw ↑
openapi: 3.0.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"


        ![screenshot](https://media.githubusercontent.com/media/sentioxyz/docs/HEAD/assets/image%20(102).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**.


        ![screenshot](https://media.githubusercontent.com/media/sentioxyz/docs/HEAD/assets/image%20(101).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.Organization:
      properties:
        createdAt:
          format: int64
          type: string
        displayName:
          type: string
        id:
          type: string
        logoUrl:
          type: string
        members:
          items:
            $ref: '#/components/schemas/common.Organization.Member'
          type: array
        name:
          type: string
        oid:
          type: string
        projects:
          items:
            $ref: '#/components/schemas/common.ProjectInfo'
          type: array
        tier:
          $ref: '#/components/schemas/common.Tier'
        updatedAt:
          format: int64
          type: string
      type: object
    common.RichStruct:
      properties:
        fields:
          additionalProperties:
            $ref: '#/components/schemas/common.RichValue'
          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.ComputeStats.ClickhouseStats:
      properties:
        memoryUsage:
          format: uint64
          type: string
        queryDurationMs:
          format: uint64
          type: string
        readBytes:
          format: uint64
          type: string
        readRows:
          format: uint64
          type: string
        resultBytes:
          format: uint64
          type: string
        resultRows:
          format: uint64
          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
    analytic_service.ExecutionInfo:
      properties:
        computeStats:
          $ref: '#/compon

# --- 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