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