Cast AI Telemetry API

TelemetryAPI provides APIs for ingesting and listing database telemetry events

Operations 2

POST /database-optimizer/telemetry/v1alpha/organizations/{organizationId}/events Ingest telemetry events #
GET /database-optimizer/telemetry/v1alpha/organizations/{organizationId}/events List telemetry events #

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/kimchi:kimchi-telemetryapi-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

kimchi-telemetryapi-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Database Optimizer Telemetry API
  version: 0.0.1
  description: TelemetryAPI provides APIs for ingesting and listing database telemetry events
servers:
- url: https://api.cast.ai/
  description: US endpoint
- url: https://api.eu.cast.ai/
  description: EU endpoint
security:
- BearerAuth: []
- ApiKeyAuth: []
tags:
- name: TelemetryAPI
  description: TelemetryAPI provides APIs for ingesting and listing database telemetry events
paths:
  /database-optimizer/telemetry/v1alpha/organizations/{organizationId}/events:
    post:
      tags:
      - TelemetryAPI
      summary: Ingest telemetry events
      description: IngestTelemetryEvents ingests a batch of telemetry events reported by the agent and/or proxy
      operationId: TelemetryAPI_IngestTelemetryEvents
      parameters:
      - name: organizationId
        in: path
        description: Organization identifier
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IngestTelemetryEventsRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IngestTelemetryEventsResponse'
        default:
          description: Default error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
    get:
      tags:
      - TelemetryAPI
      summary: List telemetry events
      description: ListTelemetryEvents lists previously ingested telemetry events
      operationId: TelemetryAPI_ListTelemetryEvents
      parameters:
      - name: organizationId
        in: path
        description: Organization identifier
        required: true
        schema:
          type: string
      - name: databaseInstanceId
        in: query
        description: 'Optional filter: only return events for the given database instance'
        schema:
          type: string
      - name: component
        in: query
        description: 'Optional filter: only return events emitted by the given component'
        schema:
          type: string
      - name: issueId
        in: query
        description: 'Optional filter: only return events for the given issue id'
        schema:
          type: string
      - name: status
        in: query
        description: 'Optional filter: only return events with the given status'
        schema:
          enum:
          - TELEMETRY_STATUS_UNSPECIFIED
          - TELEMETRY_STATUS_FAILED
          - TELEMETRY_STATUS_WARNING
          - TELEMETRY_STATUS_OK
          type: string
          format: enum
      - name: page.limit
        in: query
        description: Defines the number of items that should be returned
        schema:
          type: string
      - name: page.cursor
        in: query
        description: "Cursor that defines token indicating where to start the next page.\n Empty value indicates to start from beginning of the dataset."
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListTelemetryEventsResponse'
        default:
          description: Default error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
components:
  schemas:
    Status:
      type: object
      properties:
        code:
          type: integer
          description: The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
          format: int32
        message:
          type: string
          description: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
        details:
          type: array
          items:
            $ref: '#/components/schemas/GoogleProtobufAny'
          description: A list of messages that carry the error details.  There is a common set of message types for APIs to use.
      description: 'The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).'
    IngestTelemetryEventsResponse:
      type: object
      properties: {}
      description: Response from ingesting telemetry events
    TelemetryEvent:
      type: object
      properties:
        id:
          readOnly: true
          type: string
          description: Identifier of the event
        organizationId:
          readOnly: true
          type: string
          description: Organization identifier
        databaseInstanceId:
          readOnly: true
          type: string
          description: Identifier of the database instance the event is associated with
        component:
          readOnly: true
          enum:
          - COMPONENT_UNSPECIFIED
          - COMPONENT_DB_AGENT
          - COMPONENT_DB_PROXY
          type: string
          description: Component that emitted the event
          format: enum
        issueId:
          readOnly: true
          type: string
          description: Stable identifier of the underlying issue
        status:
          readOnly: true
          enum:
          - TELEMETRY_STATUS_UNSPECIFIED
          - TELEMETRY_STATUS_FAILED
          - TELEMETRY_STATUS_WARNING
          - TELEMETRY_STATUS_OK
          type: string
          description: Status of the telemetry event / issue check
          format: enum
        databaseId:
          readOnly: true
          type: string
          description: Identifier of the database the event is associated with, if any
        databaseName:
          readOnly: true
          type: string
          description: Human readable name of the database the event is associated with, if any
        message:
          readOnly: true
          type: string
          description: Optional detailed event message
        createTime:
          readOnly: true
          type: string
          description: Time the event was ingested
          format: date-time
      description: TelemetryEvent is a stored telemetry event returned by the listing API
    ListTelemetryEventsResponse:
      required:
      - events
      type: object
      properties:
        events:
          type: array
          items:
            $ref: '#/components/schemas/TelemetryEvent'
          description: Telemetry events matching the request
        nextPage:
          allOf:
          - $ref: '#/components/schemas/Page'
          description: Next page cursor for pagination; null when there are no more results
      description: Response from listing telemetry events
    TelemetryEventRequest:
      required:
      - issueId
      - status
      type: object
      properties:
        issueId:
          type: string
          description: Stable identifier of the underlying issue
        status:
          enum:
          - TELEMETRY_STATUS_UNSPECIFIED
          - TELEMETRY_STATUS_FAILED
          - TELEMETRY_STATUS_WARNING
          - TELEMETRY_STATUS_OK
          type: string
          description: Status of the telemetry event / issue check
          format: enum
        databaseName:
          type: string
          description: "Human readable name of the database the event is associated with. Optional when the\n event is scoped to a specific database instance"
        message:
          type: string
          description: Optional detailed event message supplied by the client
      description: "TelemetryEventRequest is a single event payload supplied by the agent when\n ingesting a new telemetry event"
    Page:
      type: object
      properties:
        limit:
          type: string
          description: Defines the number of items that should be returned
        cursor:
          type: string
          description: "Cursor that defines token indicating where to start the next page.\n Empty value indicates to start from beginning of the dataset."
      description: Page defines how many and which fields should be returned.
    IngestTelemetryEventsRequest:
      required:
      - organizationId
      - databaseInstanceId
      - component
      - events
      type: object
      properties:
        organizationId:
          type: string
          description: Organization identifier
        databaseInstanceId:
          type: string
          description: Identifier of the database instance the events are associated with
        component:
          enum:
          - COMPONENT_UNSPECIFIED
          - COMPONENT_DB_AGENT
          - COMPONENT_DB_PROXY
          type: string
          description: Component that emitted the events
          format: enum
        events:
          type: array
          items:
            $ref: '#/components/schemas/TelemetryEventRequest'
          description: Telemetry events to ingest
      description: Request to ingest one or more telemetry events
    GoogleProtobufAny:
      type: object
      properties:
        '@type':
          type: string
          description: The type of the serialized message.
      additionalProperties: true
      description: Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
x-provenance:
  method: searched
  source: https://docs.cast.ai/reference
  harvested: '2026-10-20'
  tool: harvest-readme-openapi.py
  note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored.
  assembled_from:
  - https://docs.cast.ai/reference/advisorapi_batchgetadvisordatabasestats.md
  - https://docs.cast.ai/reference/advisorapi_closeadvisorrecommendation.md
  - https://docs.cast.ai/reference/advisorapi_getadvisorcachegroup.md
  - https://docs.cast.ai/reference/advisorapi_getadvisordatabase.md
  - https://docs.cast.ai/reference/advisorapi_getadvisordatabaseinstance.md
  - https://docs.cast.ai/reference/advisorapi_getadvisorrecommendationdetail.md
  - https://docs.cast.ai/reference/advisorapi_listadvisorcachegroups.md
  - https://docs.cast.ai/reference/advisorapi_listadvisordatabaseinstances.md
  - https://docs.cast.ai/reference/advisorapi_listadvisordatabases.md
  - https://docs.cast.ai/reference/advisorapi_listadvisorrecommendations.md
  - https://docs.cast.ai/reference/advisorapi_listtoprecommendations.md
  - https://docs.cast.ai/reference/advisorapi_markadvisordbagentuninstalled.md
  - https://docs.cast.ai/reference/advisorapi_reopenadvisorrecommendation.md
  - https://docs.cast.ai/reference/advisorapi_resendadvisorvalidationrequest.md
  - https://docs.cast.ai/reference/advisorapi_resetadvisorrecommendations.md
  - https://docs.cast.ai/reference/cachegroupsapi_getindexadvisorcachegroup.md
  - https://docs.cast.ai/reference/cachegroupsapi_listindexadvisorcachegroups.md
  - https://docs.cast.ai/reference/cachegroupsapi_sendagentheartbeat.md
  - https://docs.cast.ai/reference/cachingapi_createcacherule.md
  - https://docs.cast.ai/reference/cachingapi_createproxy.md
  - https://docs.cast.ai/reference/cachingapi_deletecacherule.md
  - https://docs.cast.ai/reference/cachingapi_exchangeproxystate.md
  - https://docs.cast.ai/reference/cachingapi_getinstanceproxycachemetrics.md
  - https://docs.cast.ai/reference/cachingapi_getproxycachemetrics.md
  - https://docs.cast.ai/reference/cachingapi_getproxycachequeryinsights.md
  - https://docs.cast.ai/reference/cachingapi_getproxycachequerytemplate.md
  - https://docs.cast.ai/reference/cachingapi_getproxycachesummary.md
  - https://docs.cast.ai/reference/cachingapi_getproxyconnectionsmetrics.md
  - https://docs.cast.ai/reference/cachingapi_getproxyperformancemetrics.md
  - https://docs.cast.ai/reference/cachingapi_getproxyqueries.md
  - https://docs.cast.ai/reference/cachingapi_listcacherules.md
  - https://docs.cast.ai/reference/cachingapi_reportoperationalmetrics.md
  - https://docs.cast.ai/reference/cachingapi_reportpoolingmetrics.md
  - https://docs.cast.ai/reference/cachingapi_reportquerymetrics.md
  - https://docs.cast.ai/reference/cachingapi_updatecacherule.md
  - https://docs.cast.ai/reference/cachingapi_updateproxydatabase.md
  - https://docs.cast.ai/reference/databaseinstanceconfigapi_reportdatabaseinstanceconfig.md
  - https://docs.cast.ai/reference/databaseinstancesapi_createdatabase.md
  - https://docs.cast.ai/reference/databaseinstancesapi_createdatabaseinstance.md
  - https://docs.cast.ai/reference/databaseinstancesapi_deletedatabase.md
  - https://docs.cast.ai/reference/databaseinstancesapi_deletedatabaseinstance.md
  - https://docs.cast.ai/reference/databaseinstancesapi_getcloudsyncstatus.md
  - https://docs.cast.ai/reference/databaseinstancesapi_getdatabase.md
  - https://docs.cast.ai/reference/databaseinstancesapi_getdatabaseinstancecachingsummary.md
  - https://docs.cast.ai/reference/databaseinstancesapi_getdatabaseinstancedetails.md
  - https://docs.cast.ai/reference/databaseinstancesapi_getdatabaseinstancehealthmetrics.md
  - https://docs.cast.ai/reference/databaseinstancesapi_getdatabaseinstancemetricsfilteroptions.md
  - https://docs.cast.ai/reference/databaseinstancesapi_getdatabaseinstancescloudintegrationsummary.md
  - https://docs.cast.ai/reference/databaseinstancesapi_listcachingpotentialdatabases.md
  - https://docs.cast.ai/reference/databaseinstancesapi_listcloudoptimizationcandidates.md
  - https://docs.cast.ai/reference/databaseinstancesapi_listconnectionpoolingcandidates.md
  - https://docs.cast.ai/reference/databaseinstancesapi_listdatabaseinstancemembers.md
  - https://docs.cast.ai/reference/databaseinstancesapi_listdatabaseinstances.md
  - https://docs.cast.ai/reference/databaseinstancesapi_listtopqueryrecommendations.md
  - https://docs.cast.ai/reference/databaseinstancesapi_updatedatabaseinstance.md
  - https://docs.cast.ai/reference/databasesapi_getcachedatabase.md
  - https://docs.cast.ai/reference/databasesapi_listcachedatabases.md
  - https://docs.cast.ai/reference/dbagentapi_ingestagentheartbeat.md
  - https://docs.cast.ai/reference/dbagentapi_ingestmysqlindexsnapshots.md
  - https://docs.cast.ai/reference/dbagentapi_ingestmysqlquerystats.md
  - https://docs.cast.ai/reference/dbagentapi_ingestmysqltablesmetadata.md
  - https://docs.cast.ai/reference/dbagentapi_ingestpostgresindexsnapshots.md
  - https://docs.cast.ai/reference/dbagentapi_ingestpostgresquerystats.md
  - https://docs.cast.ai/reference/dbagentapi_ingestpostgrestablesmetadata.md
  - https://docs.cast.ai/reference/indexrecommendationsapi_listindexrecommendations.md
  - https://docs.cast.ai/reference/indexsnapshotsapi_batchcreateindexsnapshots.md
  - https://docs.cast.ai/reference/indexsnapshotsapi_batchcreatemysqlindexsnapshots.md
  - https://docs.cast.ai/reference/querystatsapi_batchcreatemysqlquerystats.md
  - https://docs.cast.ai/reference/querystatsapi_batchcreatepgquerystats.md
  - https://docs.cast.ai/reference/querystatsapi_batchcreatequerystats.md
  - https://docs.cast.ai/reference/tablemetadataapi_batchcreatemysqltablesmetadata.md
  - https://docs.cast.ai/reference/tablemetadataapi_batchcreatetablesmetadata.md
  - https://docs.cast.ai/reference/telemetryapi_ingesttelemetryevents.md
  - https://docs.cast.ai/reference/telemetryapi_listtelemetryevents.md
  merge:
    pages: 74
    deduped: 412
    conflicts_kept_first: 0