Sentio Data API

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

Operations 27

PUT /v1/analytics/{owner}/{slug}/sql/cancel_query/{executionId} Cancel SQL Query #
DELETE /v1/analytics/{owner}/{slug}/sql/refreshable_materialized_view/{name} Delete Refreshable Materialized View #
GET /v1/analytics/{owner}/{slug}/sql/refreshable_materialized_view/{name} Get Refreshable Materialized View Status #
POST /v1/analytics/{owner}/{slug}/sql/execute Execute SQL #
POST /v1/analytics/{owner}/{slug}/sql/execute/async Execute SQL by Async #
GET /v1/metrics Get a list of metrics in a project #
GET /v1/analytics/sql/sharing/{id} Get Sharing SQL #
GET /v1/insights/{owner}/{slug}/coins List coins #
GET /v1/insights/coins List coins #
GET /v1/analytics/{owner}/{slug}/sql/refreshable_materialized_views List Refreshable Materialized Views #
GET /v1/sql/{owner}/{slug}/tables List Tables #
GET /v1/sql/tables List Tables #
POST /v1/insights/{owner}/{slug}/query Insight Query #
POST /v1/metrics/{owner}/{slug}/query Metric instant queries #
POST /v1/eventlogs/{owner}/{slug} Query event logs #
GET /v1/eventlogs/{owner}/{slug}/query Query event logs #
POST /v1/metrics/{owner}/{slug}/query_range Metric range queries #
GET /v1/analytics/{owner}/{slug}/sql/query_execution_detail/{executionId} Query SQL Execution Detail #
GET /v1/analytics/{owner}/{slug}/sql/query_result/{executionId} Query SQL Result #
GET /v1/sql/{owner}/{slug}/table/{name} Query Table By Name #
GET /v1/sql/table Query Table By Name #
GET /v1/analytics/{owner}/{slug}/sql/tables Query Tables #
GET /v1/analytics/sql/tables Query Tables #
POST /v1/analytics/{owner}/{slug}/sql/refreshable_materialized_view Save Refreshable Materialized View #
POST /v1/analytics/sql/sharing Save Sharing SQL #
POST /v1/analytics/{owner}/{slug}/sql/save Save SQL #
PUT /v1/analytics/{owner}/{slug}/sql/save Save SQL #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/sentio-data-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

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


        ![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.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