Cockroach Labs Log Export API

The Log Export API from Cockroach Labs — 1 operation(s) for log export.

Operations 3

DELETE /api/v1/clusters/{cluster_id}/logexport Delete the Log Export configuration for a cluster #
GET /api/v1/clusters/{cluster_id}/logexport Get the Log Export configuration for a cluster #
POST /api/v1/clusters/{cluster_id}/logexport Create or update the Log Export configuration for a cluster #

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/cockroach-labs:cockroach-labs-log-export-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

cockroach-labs-log-export-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    email: support@cockroachlabs.com
    name: Cockroach Labs Support
    url: https://support.cockroachlabs.com
  description: An API for managing CockroachDB Cloud resources
  title: CockroachDB Cloud Log Export API
  version: '2026-09-15'
servers:
- url: https://cockroachlabs.cloud
security:
- Bearer: []
tags:
- name: Log Export
paths:
  /api/v1/clusters/{cluster_id}/logexport:
    delete:
      operationId: CockroachCloud_DeleteLogExport
      summary: Delete the Log Export configuration for a cluster
      description: 'Can be used by the following roles assigned at the organization, folder or cluster scope:

        - ORG_ADMIN

        - CLUSTER_ADMIN

        - CLUSTER_OPERATOR_WRITER'
      parameters:
      - name: cluster_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LogExportClusterInfo'
        '400':
          description: Returned when a request field is invalid.
          content:
            application/json:
              schema: {}
        '401':
          description: Returned when the token bearer cannot be authenticated.
          content:
            application/json:
              schema: {}
        '403':
          description: Returned when the user does not have permission to access the resource.
          content:
            application/json:
              schema: {}
        '404':
          description: Returned when the resource does not exist.
          content:
            application/json:
              schema: {}
        '500':
          description: Server error
          content:
            application/json:
              schema: {}
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
      tags:
      - Log Export
      x-badges:
      - color: blue
        label: PREVIEW
      x-codeSamples:
      - lang: Shell + Curl
        source: "curl --request DELETE \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/logexport \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
    get:
      operationId: CockroachCloud_GetLogExportInfo
      summary: Get the Log Export configuration for a cluster
      description: 'Can be used by the following roles assigned at the organization, folder or cluster scope:

        - ORG_ADMIN

        - CLUSTER_ADMIN

        - CLUSTER_OPERATOR_WRITER

        - METRICS_VIEWER

        - AUDITOR'
      parameters:
      - name: cluster_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LogExportClusterInfo'
        '400':
          description: Returned when a request field is invalid.
          content:
            application/json:
              schema: {}
        '401':
          description: Returned when the token bearer cannot be authenticated.
          content:
            application/json:
              schema: {}
        '403':
          description: Returned when the user does not have permission to access the resource.
          content:
            application/json:
              schema: {}
        '404':
          description: Returned when the resource does not exist.
          content:
            application/json:
              schema: {}
        '500':
          description: Server error
          content:
            application/json:
              schema: {}
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
      tags:
      - Log Export
      x-badges:
      - color: blue
        label: PREVIEW
      x-codeSamples:
      - lang: Shell + Curl
        source: "curl --request GET \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/logexport \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
    post:
      operationId: CockroachCloud_EnableLogExport
      summary: Create or update the Log Export configuration for a cluster
      description: 'Can be used by the following roles assigned at the organization, folder or cluster scope:

        - ORG_ADMIN

        - CLUSTER_ADMIN

        - CLUSTER_OPERATOR_WRITER'
      parameters:
      - name: cluster_id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnableLogExportBody'
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LogExportClusterInfo'
        '400':
          description: Returned when a request field is invalid.
          content:
            application/json:
              schema: {}
        '401':
          description: Returned when the token bearer cannot be authenticated.
          content:
            application/json:
              schema: {}
        '403':
          description: Returned when the user does not have permission to access the resource.
          content:
            application/json:
              schema: {}
        '404':
          description: Returned when the resource does not exist.
          content:
            application/json:
              schema: {}
        '500':
          description: Server error
          content:
            application/json:
              schema: {}
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
      tags:
      - Log Export
      x-badges:
      - color: blue
        label: PREVIEW
      x-codeSamples:
      - lang: Shell + Curl
        source: "curl --request POST \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/logexport \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --json '{\"auth_principal\":\"my-gcp-project-id\",\"groups\":[{\"channels\":[\"OPS\",\"HEALTH\"],\"log_name\":\"devops\",\"min_level\":\"WARNING\"}],\"log_name\":\"default\",\"omitted_channels\":[\"SESSIONS\",\"SQL_PERF\"],\"redact\":true,\"shared_key\":\"shared-key\",\"type\":\"GCP_CLOUD_LOGGING\"}'"
components:
  schemas:
    Any:
      description: "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nIn its binary encoding, an `Any` is an ordinary message; but in other wire\nforms like JSON, it has a special encoding. The format of the type URL is\ndescribed on the `type_url` field.\n\nProtobuf APIs provide utilities to interact with `Any` values:\n\n- A 'pack' operation accepts a message and constructs a generic `Any` wrapper\n  around it.\n- An 'unpack' operation reads the content of an `Any` message, either into an\n  existing message or a new one. Unpack operations must check the type of the\n  value they unpack against the declared `type_url`.\n- An 'is' operation decides whether an `Any` contains a message of the given\n  type, i.e. whether it can 'unpack' that type.\n\nThe JSON format representation of an `Any` follows one of these cases:\n\n- For types without special-cased JSON encodings, the JSON format\n  representation of the `Any` is the same as that of the message, with an\n  additional `@type` field which contains the type URL.\n- For types with special-cased JSON encodings (typically called 'well-known'\n  types, listed in https://protobuf.dev/programming-guides/json/#any), the\n  JSON format representation has a key `@type` which contains the type URL\n  and a key `value` which contains the JSON-serialized value.\n\nThe text format representation of an `Any` is like a message with one field\nwhose name is the type URL in brackets. For example, an `Any` containing a\n`foo.Bar` message may be written `[type.googleapis.com/foo.Bar] { a: 2 }`."
      type: object
      properties:
        '@type':
          description: 'Identifies the type of the serialized Protobuf message with a URI reference

            consisting of a prefix ending in a slash and the fully-qualified type name.


            Example: type.googleapis.com/google.protobuf.StringValue


            This string must contain at least one `/` character, and the content after

            the last `/` must be the fully-qualified name of the type in canonical

            form, without a leading dot. Do not write a scheme on these URI references

            so that clients do not attempt to contact them.


            The prefix is arbitrary and Protobuf implementations are expected to

            simply strip off everything up to and including the last `/` to identify

            the type. `type.googleapis.com/` is a common default prefix that some

            legacy implementations require. This prefix does not indicate the origin of

            the type, and URIs containing it are not expected to respond to any

            requests.


            All type URL strings must be legal URI references with the additional

            restriction (for the text format) that the content of the reference

            must consist only of alphanumeric characters, percent-encoded escapes, and

            characters in the following set (not including the outer backticks):

            `/-.~_!$&()*+,;=`. Despite our allowing percent encodings, implementations

            should not unescape them to prevent confusion with existing parsers. For

            example, `type.googleapis.com%2FFoo` should be rejected.


            In the original design of `Any`, the possibility of launching a type

            resolution service at these type URLs was considered but Protobuf never

            implemented one and considers contacting these URLs to be problematic and

            a potential security issue. Do not attempt to contact type URLs.'
          type: string
      additionalProperties: {}
    Status:
      type: object
      properties:
        code:
          type: integer
          format: int32
        details:
          type: array
          items:
            $ref: '#/components/schemas/Any'
        message:
          type: string
    LogExportStatus:
      description: 'LogExportStatus encodes the possible states that a configuration can

        be in as it is created, deployed, and disabled.'
      type: string
      enum:
      - DISABLED
      - DISABLING
      - DISABLE_FAILED
      - ENABLED
      - ENABLING
      - ENABLE_FAILED
      - CREDENTIALS_ERROR
    LogLevel.Type:
      description: " - UNSPECIFIED: The unspecified log level includes all logs.\n - WARNING: The WARNING severity is used for situations which may require\nspecial handling, where normal operation is expected to resume\nautomatically.\n - ERROR: The ERROR severity is used for situations that require special\nhandling, where normal operation could not proceed as expected.\nOther operations can continue mostly unaffected.\n - FATAL: The FATAL severity is used for situations that require an\nimmediate, hard server shutdown. A report is also sent to\ntelemetry if telemetry is enabled."
      type: string
      enum:
      - UNSPECIFIED
      - WARNING
      - ERROR
      - FATAL
    LogExportGroup:
      description: 'LogExportGroup contains an export configuration for a single

        log group which can route logs for a subset of CRDB channels.'
      type: object
      properties:
        channels:
          description: 'channels is a list of CRDB log channels to include in this

            group.'
          type: array
          items:
            type: string
        enable_sending_queue:
          description: 'enable_sending_queue enables the sending queue for logs in this

            group. Only one group can have enable_sending_queue enabled.'
          type: boolean
        log_name:
          description: 'log_name is the name of the group, reflected in the log sink. For

            AZURE_LOG_ANALYTICS_V2, it must start with a letter and contain only

            letters, digits, and underscores.'
          type: string
        min_level:
          $ref: '#/components/schemas/LogLevel.Type'
        redact:
          description: 'redact is a boolean that governs whether this log group

            should aggregate redacted logs. Redaction settings will

            inherit from the cluster log export defaults if unset.'
          type: boolean
      required:
      - log_name
      - channels
    LogExportClusterInfo:
      description: 'LogExportClusterInfo contains a package of information that fully

        describes both the intended state of the log export configuration for

        a specific cluster but also some metadata around its deployment

        status, any error messages, and some timestamps.'
      type: object
      properties:
        cluster_id:
          type: string
        created_at:
          type: string
          format: date-time
        delivery_status:
          $ref: '#/components/schemas/LogExportDeliveryStatus'
        delivery_status_message:
          description: 'Descriptive error message when delivery_status is DELIVERY_UNHEALTHY.

            Only populated for OTLP_HTTP sinks.'
          type: string
        spec:
          $ref: '#/components/schemas/LogExportClusterSpecification'
        status:
          $ref: '#/components/schemas/LogExportStatus'
        updated_at:
          type: string
          format: date-time
        user_message:
          type: string
    LogExportType:
      description: "LogExportType identifies the destination used for exported logs.\nCloud-native destinations use their provider's logging service, while\nOTLP_HTTP sends logs to a customer-configured OTLP/HTTP endpoint.\n\n - AZURE_LOG_ANALYTICS: AZURE_LOG_ANALYTICS is the legacy Azure export path via the HTTP Data\nCollector API (retiring 2026-09-14). Deprecated: use\nAZURE_LOG_ANALYTICS_V2 instead.\n - AZURE_LOG_ANALYTICS_V2: AZURE_LOG_ANALYTICS_V2 exports to Azure Monitor via the Logs Ingestion API\nand DCR-based ingestion, replacing the deprecated AZURE_LOG_ANALYTICS path\nthat uses the HTTP Data Collector API (retiring 2026-09-14). V2 authenticates\nwith a tenant/client/secret + DCR endpoint and rule, whereas the legacy type\nuses a workspace ID + shared key."
      type: string
      enum:
      - AWS_CLOUDWATCH
      - GCP_CLOUD_LOGGING
      - AZURE_LOG_ANALYTICS
      - AZURE_LOG_ANALYTICS_V2
      - OTLP_HTTP
    LogExportClusterSpecification:
      description: 'LogExportClusterSpecification contains all the data necessary to

        configure log export for an individual cluster. Users would supply

        this data via the API and also receive it back when inspecting the

        state of their log export configuration.'
      type: object
      properties:
        auth_principal:
          description: 'auth_principal is used in different contexts based on integration.

            CloudWatch: AWS Role ARN that identifies a role

            that the cluster account can assume to write to CloudWatch

            GCP Cloud Logging: GCP Project ID that the cluster service account

            has permissions to write to for cloud logging.

            Azure Log Analytics (AZURE_LOG_ANALYTICS): CustomerID or WorkspaceID.

            This field is empty for AZURE_LOG_ANALYTICS_V2 and OTLP_HTTP. OTLP_HTTP

            authenticates using the headers supplied when the integration is enabled.'
          type: string
        aws_external_id:
          description: 'aws_external_id, if set, is included when assuming the IAM role. Supported for

            Advanced clusters on AWS only.'
          type: string
        azure_client_id:
          description: Azure client ID for the app registration used by the Logs Ingestion API.
          type: string
        azure_client_secret:
          description: Azure client secret for the app registration used by the Logs Ingestion API.
          type: string
        azure_dce_endpoint:
          description: 'Logs ingestion endpoint of the Azure Data Collection Endpoint (DCE). For

            example, https://{dce-name}.{region}.ingest.monitor.azure.com.'
          type: string
        azure_dcr_immutable_id:
          description: Immutable ID of the Azure Data Collection Rule (DCR), for example dcr-...
          type: string
        azure_dcr_resource_id:
          description: 'Full ARM resource ID of the Azure Data Collection Rule (DCR). Cockroach

            Cloud reads and updates this DCR to add streams for each configured log

            group. For example,

            /subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.Insights/dataCollectionRules/{dcr-name}.'
          type: string
        azure_shared_key:
          description: 'The primary or the secondary connected sources client authentication key.

            This is used to export logs to Azure Log Analytics via the legacy

            HTTP Data Collector API. Deprecated: use azure_client_secret instead.'
          type: string
        azure_tenant_id:
          description: Azure tenant ID for the app registration used by the Logs Ingestion API.
          type: string
        azure_workspace_resource_id:
          description: 'Full ARM resource ID of the Log Analytics workspace. Cockroach Cloud creates

            or updates the required custom tables for each configured log group. For

            example, /subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.OperationalInsights/workspaces/{workspace-name}.'
          type: string
        groups:
          description: 'groups is a collection of log group configurations to customize

            which CRDB channels get aggregated into different groups at the

            target sink. Unconfigured channels will be sent to the default

            locations using the top-level log export settings.'
          type: array
          items:
            $ref: '#/components/schemas/LogExportGroup'
        log_name:
          description: 'log_name is an identifier for the logs in the customer''s log sink. For

            AZURE_LOG_ANALYTICS_V2, it must start with a letter and contain only

            letters, digits, and underscores.'
          type: string
        omitted_channels:
          description: 'omitted_channels is a list of channels that the user does not want to

            export logs for.'
          type: array
          items:
            type: string
        otlp_endpoint:
          description: 'otlp_endpoint is the OTLP/HTTP URL for the OTLP_HTTP sink type.

            This field accepts either a base endpoint or a full /v1/logs endpoint.'
          type: string
        otlp_header_names:
          description: 'otlp_header_names lists the configured OTLP auth header names; values are

            never returned.'
          type: array
          items:
            type: string
        redact:
          description: 'redact controls whether logs are redacted before forwarding to

            customer sinks. By default they are not redacted.'
          type: boolean
        region:
          description: 'region controls whether all logs are sent to a specific region in

            the customer sink. By default, logs will remain their region of

            origin depending on the cluster node''s region.'
          type: string
        type:
          $ref: '#/components/schemas/LogExportType'
    LogExportDeliveryStatus:
      description: "LogExportDeliveryStatus reports whether logs are reaching the customer's\ndestination. This is independent of LogExportStatus, which reports whether\nthe integration is configured and running. Delivery health is currently\nreported only for OTLP_HTTP sinks.\n\n - DELIVERY_HEALTHY: The destination is receiving log records normally.\n - DELIVERY_UNHEALTHY: The destination is rejecting or failing to receive a substantial fraction\nof log records. The cause is intentionally not distinguished — it may be\ninvalid credentials, a wrong endpoint, or a transient outage."
      type: string
      enum:
      - DELIVERY_HEALTHY
      - DELIVERY_UNHEALTHY
    EnableLogExportBody:
      type: object
      properties:
        auth_principal:
          description: 'auth_principal is used in different contexts based on integration.

            CloudWatch: AWS Role ARN that identifies a role

            that the cluster account can assume to write to CloudWatch

            GCP Cloud Logging: GCP Project ID that the cluster service account

            has permissions to write to for cloud logging.

            Azure Log Analytics (AZURE_LOG_ANALYTICS): CustomerID or WorkspaceID.

            Required for AWS_CLOUDWATCH, GCP_CLOUD_LOGGING, and AZURE_LOG_ANALYTICS.

            Not used for AZURE_LOG_ANALYTICS_V2 or OTLP_HTTP. OTLP_HTTP authenticates

            via otlp_headers (see otlp_endpoint / otlp_headers).'
          type: string
        aws_external_id:
          description: 'aws_external_id to include when assuming the IAM role specified by role_arn.

            Optional. A specific value may be required by the role''s trust policy.

            Only supported for Advanced clusters on AWS. If provided for a Standard cluster,

            the request is rejected.'
          type: string
        azure_client_id:
          description: 'Azure client ID for the app registration used by the Logs Ingestion API.

            Required when type is AZURE_LOG_ANALYTICS_V2.'
          type: string
        azure_client_secret:
          description: 'Azure client secret for the app registration used by the Logs Ingestion API.

            Required when type is AZURE_LOG_ANALYTICS_V2.'
          type: string
        azure_dce_endpoint:
          description: 'Logs ingestion endpoint of the Azure Data Collection Endpoint (DCE). For

            example, https://{dce-name}.{region}.ingest.monitor.azure.com.

            Required when type is AZURE_LOG_ANALYTICS_V2.'
          type: string
        azure_dcr_immutable_id:
          description: 'Immutable ID of the Azure Data Collection Rule (DCR), for example dcr-...

            Required when type is AZURE_LOG_ANALYTICS_V2.'
          type: string
        azure_dcr_resource_id:
          description: 'Full ARM resource ID of the Azure Data Collection Rule (DCR). Cockroach

            Cloud reads and updates this DCR to add streams for each configured log

            group. For example,

            /subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.Insights/dataCollectionRules/{dcr-name}.

            Required when type is AZURE_LOG_ANALYTICS_V2.'
          type: string
        azure_shared_key:
          description: 'The primary or the secondary connected sources client authentication key.

            This is used to export logs to Azure Log Analytics via the legacy

            HTTP Data Collector API. Deprecated: use azure_client_secret instead.'
          type: string
        azure_tenant_id:
          description: 'Azure tenant ID for the app registration used by the Logs Ingestion API.

            Required when type is AZURE_LOG_ANALYTICS_V2.'
          type: string
        azure_workspace_resource_id:
          description: 'Full ARM resource ID of the Log Analytics workspace. Cockroach Cloud creates

            or updates the required custom tables for each configured log group. For

            example, /subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.OperationalInsights/workspaces/{workspace-name}.

            Required when type is AZURE_LOG_ANALYTICS_V2.'
          type: string
        groups:
          description: 'groups is a collection of log group configurations that allows the

            customer to define collections of CRDB log channels that are aggregated

            separately at the target sink.'
          type: array
          items:
            $ref: '#/components/schemas/LogExportGroup'
        log_name:
          description: 'log_name is an identifier for the logs in the customer''s log sink. For

            AZURE_LOG_ANALYTICS_V2, it must start with a letter and contain only

            letters, digits, and underscores.'
          type: string
        omitted_channels:
          description: 'omitted_channels is a list of channels that the user does not want to

            export logs for.'
          type: array
          items:
            type: string
        otlp_endpoint:
          description: 'otlp_endpoint is the OTLP/HTTP URL for the OTLP_HTTP sink type. Customers

            may provide either a base endpoint or a full /v1/logs endpoint. Required

            when type is OTLP_HTTP.'
          type: string
        otlp_headers:
          description: 'otlp_headers are auth headers (name->value) for the OTLP_HTTP sink, e.g.

            {"authorization": "Bearer ..."}. Write-only: values are stored securely and

            never returned. For existing OTLP_HTTP configurations, omitting this field

            or sending an empty map preserves the stored headers; sending a non-empty map

            replaces them.'
          type: object
          additionalProperties:
            type: string
        redact:
          description: 'redact allows the customer to set a default redaction policy for

            logs before they are exported to the target sink. If a group config

            omits a redact flag and this one is set to `true`, then that group

            will receive redacted logs.'
          type: boolean
        region:
          description: 'region allows the customer to override the destination region for

            all logs for a cluster.'
          type: string
        type:
          $ref: '#/components/schemas/LogExportType'
      example:
        auth_principal: my-gcp-project-id
        groups:
        - channels:
          - OPS
          - HEALTH
          log_name: devops
          min_level: WARNING
        log_name: default
        omitted_channels:
        - SESSIONS
        - SQL_PERF
        redact: true
        shared_key: shared-key
        type: GCP_CLOUD_LOGGING
      required:
      - type
      - log_name
      title: EnableLogExportRequest
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer
externalDocs:
  description: Use the CockroachDB Cloud API
  url: https://www.cockroachlabs.com/docs/cockroachcloud/cloud-api.html