Management API request and response JSON
Complete request and response JSON contracts for every ReportPlane Management API v1 endpoint.
This reference shows the JSON sent to and returned from every endpoint under https://app.reportplane.com/management/v1. It documents the public wire contract—not a language-specific SDK type and not the private session endpoints used by the Dashboard.
Contract conventions
- JSON request bodies use
Content-Type: application/json. - Collection routes use
project_id, except project listing, which usesworkspace_id. - IDs are UUID strings.
- Timestamps are RFC 3339 strings.
- Collection responses currently return arrays and are not paginated.
- Stored warehouse credentials, authentication secrets, and encrypted
auth_configvalues are never returned. - One-time secrets appear only in the response that creates or generates them.
Projects
List projects
/projectsprojects:read. Success status: 200.Query parameters
{
"workspace_id": "WORKSPACE_ID"
}Request JSON
No request body.
Response JSON
{
"error": false,
"data": [
{
"id": "PROJECT_ID",
"workspace_id": "WORKSPACE_ID",
"name": "Production",
"description": "Production telemetry resources",
"access_mode": "inherited",
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
]
}Create a project
/projectsprojects:write. Success status: 201.Request JSON
{
"workspace_id": "WORKSPACE_ID",
"name": "Production",
"description": "Production telemetry resources"
}Response JSON
{
"error": false,
"data": {
"id": "PROJECT_ID",
"workspace_id": "WORKSPACE_ID",
"name": "Production",
"description": "Production telemetry resources",
"access_mode": "inherited",
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
}Get a project
/projects/{id}projects:read. Success status: 200.Request JSON
No request body.
Response JSON
{
"error": false,
"data": {
"id": "PROJECT_ID",
"workspace_id": "WORKSPACE_ID",
"name": "Production",
"description": "Production telemetry resources",
"access_mode": "inherited",
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
}Update a project
/projects/{id}projects:write. Success status: 200.Request JSON
{
"name": "Production",
"description": "Updated description"
}Response JSON
{
"error": false,
"data": {
"id": "PROJECT_ID",
"workspace_id": "WORKSPACE_ID",
"name": "Production",
"description": "Production telemetry resources",
"access_mode": "inherited",
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
}Data models
List models
/modelsmodels:read. Success status: 200.Query parameters
{
"project_id": "PROJECT_ID"
}Request JSON
No request body.
Response JSON
{
"error": false,
"data": [
{
"id": "MODEL_ID",
"project_id": "PROJECT_ID",
"name": "HTTP Requests",
"key": "http_requests",
"description": "One record per HTTP request",
"time_field": "timestamp",
"enabled": true,
"fields": [
{
"id": "FIELD_ID",
"schema_id": "MODEL_ID",
"name": "timestamp",
"type": "timestamp",
"required": true,
"nullable": false,
"source": "payload",
"system_key": "",
"default_value": "",
"description": "Time at which the event occurred",
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
],
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
]
}Create a model
/modelsmodels:write. Success status: 201.Request JSON
{
"project_id": "PROJECT_ID",
"destination_ids": [
"WAREHOUSE_ID"
],
"name": "HTTP Requests",
"key": "http_requests",
"description": "One record per HTTP request",
"time_field": "timestamp",
"fields": [
{
"name": "timestamp",
"type": "timestamp",
"required": true,
"nullable": false,
"source": "payload",
"system_key": "",
"default_value": "",
"description": "Time at which the event occurred"
}
]
}Accepted values
{
"fields[].type": [
"string",
"int",
"integer",
"float",
"double",
"number",
"numeric",
"bool",
"boolean",
"timestamp",
"datetime",
"date",
"json",
"object",
"string_array",
"int_array",
"integer_array",
"object_array"
],
"fields[].source": [
"payload",
"system",
"derived"
]
}Response JSON
{
"error": false,
"data": {
"id": "MODEL_ID",
"project_id": "PROJECT_ID",
"name": "HTTP Requests",
"key": "http_requests",
"description": "One record per HTTP request",
"time_field": "timestamp",
"enabled": true,
"fields": [
{
"id": "FIELD_ID",
"schema_id": "MODEL_ID",
"name": "timestamp",
"type": "timestamp",
"required": true,
"nullable": false,
"source": "payload",
"system_key": "",
"default_value": "",
"description": "Time at which the event occurred",
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
],
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
}Get a model
/models/{id}models:read. Success status: 200.Request JSON
No request body.
Response JSON
{
"error": false,
"data": {
"id": "MODEL_ID",
"project_id": "PROJECT_ID",
"name": "HTTP Requests",
"key": "http_requests",
"description": "One record per HTTP request",
"time_field": "timestamp",
"enabled": true,
"fields": [
{
"id": "FIELD_ID",
"schema_id": "MODEL_ID",
"name": "timestamp",
"type": "timestamp",
"required": true,
"nullable": false,
"source": "payload",
"system_key": "",
"default_value": "",
"description": "Time at which the event occurred",
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
],
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
}Update a model
/models/{id}models:write. Success status: 200.Request JSON
{
"name": "HTTP Requests",
"description": "Updated contract description",
"time_field": "timestamp",
"destination_ids": [
"WAREHOUSE_ID"
],
"fields": [
{
"name": "timestamp",
"type": "timestamp",
"required": true,
"nullable": false,
"source": "payload",
"system_key": "",
"default_value": "",
"description": "Time at which the event occurred"
}
]
}Accepted values
{
"fields[].type": [
"string",
"int",
"integer",
"float",
"double",
"number",
"numeric",
"bool",
"boolean",
"timestamp",
"datetime",
"date",
"json",
"object",
"string_array",
"int_array",
"integer_array",
"object_array"
],
"fields[].source": [
"payload",
"system",
"derived"
]
}Response JSON
{
"error": false,
"data": {
"id": "MODEL_ID",
"project_id": "PROJECT_ID",
"name": "HTTP Requests",
"key": "http_requests",
"description": "One record per HTTP request",
"time_field": "timestamp",
"enabled": true,
"fields": [
{
"id": "FIELD_ID",
"schema_id": "MODEL_ID",
"name": "timestamp",
"type": "timestamp",
"required": true,
"nullable": false,
"source": "payload",
"system_key": "",
"default_value": "",
"description": "Time at which the event occurred",
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
],
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
}Archive a model
/models/{id}models:write. Success status: 200.Request JSON
No request body.
Response JSON
{
"error": false,
"data": {
"archived": true
}
}Warehouses and credentials
List warehouses
/warehouseswarehouses:read. Success status: 200.Query parameters
{
"project_id": "PROJECT_ID"
}Request JSON
No request body.
Response JSON
{
"error": false,
"data": [
{
"id": "WAREHOUSE_ID",
"project_id": "PROJECT_ID",
"name": "Production BigQuery",
"type": "bigquery",
"credential_id": "CREDENTIAL_ID",
"config": {
"project_id": "gcp-project",
"dataset": "reportplane"
},
"enabled": true,
"schema_ids": [
"MODEL_ID"
]
}
]
}Create a warehouse
/warehouseswarehouses:write. Success status: 201.Request JSON
{
"project_id": "PROJECT_ID",
"name": "Production BigQuery",
"type": "bigquery",
"credential_id": "BIGQUERY_CREDENTIAL_ID",
"config": {
"warehouse_mode": "customer",
"dataset": "analytics",
"location": "EU",
"table_strategy": "schema_key",
"ensure_dataset": true,
"auto_add_columns": true
},
"schema_ids": [
"MODEL_ID"
]
}Accepted values
{
"type": [
"managed",
"bigquery",
"clickhouse",
"snowflake",
"elasticsearch",
"opensearch"
],
"config.warehouse_mode": [
"managed",
"customer"
]
}Supported request variants
Managed warehouse
ReportPlane selects and provisions the managed BigQuery backend. Do not supply a credential ID.
{
"project_id": "PROJECT_ID",
"name": "Managed Warehouse",
"type": "managed",
"credential_id": "",
"config": {
"warehouse_mode": "managed"
},
"schema_ids": [
"MODEL_ID"
]
}Customer-owned BigQuery
{
"project_id": "PROJECT_ID",
"name": "Production BigQuery",
"type": "bigquery",
"credential_id": "BIGQUERY_CREDENTIAL_ID",
"config": {
"warehouse_mode": "customer",
"dataset": "analytics",
"location": "EU",
"table_strategy": "schema_key",
"ensure_dataset": true,
"auto_add_columns": true
},
"schema_ids": [
"MODEL_ID"
]
}ClickHouse
{
"project_id": "PROJECT_ID",
"name": "Production ClickHouse",
"type": "clickhouse",
"credential_id": "CLICKHOUSE_CREDENTIAL_ID",
"config": {
"warehouse_mode": "customer",
"database": "default",
"table_strategy": "schema_key",
"auto_create_table": true,
"auto_add_columns": true,
"engine": "MergeTree ORDER BY tuple()"
},
"schema_ids": [
"MODEL_ID"
]
}Snowflake
{
"project_id": "PROJECT_ID",
"name": "Production Snowflake",
"type": "snowflake",
"credential_id": "SNOWFLAKE_CREDENTIAL_ID",
"config": {
"warehouse_mode": "customer",
"database": "REPORTPLANE",
"schema": "PUBLIC",
"table_strategy": "schema_key",
"auto_create_table": true,
"auto_add_columns": true
},
"schema_ids": [
"MODEL_ID"
]
}Elasticsearch
{
"project_id": "PROJECT_ID",
"name": "Production Elasticsearch",
"type": "elasticsearch",
"credential_id": "ELASTICSEARCH_CREDENTIAL_ID",
"config": {
"warehouse_mode": "customer",
"url": "https://elastic.example.com:9200",
"index_strategy": "schema_key",
"pipeline": "reportplane-pipeline",
"auto_create_index": true
},
"schema_ids": [
"MODEL_ID"
]
}OpenSearch
{
"project_id": "PROJECT_ID",
"name": "Production OpenSearch",
"type": "opensearch",
"credential_id": "OPENSEARCH_CREDENTIAL_ID",
"config": {
"warehouse_mode": "customer",
"url": "https://opensearch.example.com:9200",
"index_strategy": "schema_key",
"pipeline": "reportplane-pipeline",
"auto_create_index": true,
"opensearch": true
},
"schema_ids": [
"MODEL_ID"
]
}Response JSON
{
"error": false,
"data": {
"id": "WAREHOUSE_ID",
"project_id": "PROJECT_ID",
"name": "Production BigQuery",
"type": "bigquery",
"credential_id": "CREDENTIAL_ID",
"config": {
"project_id": "gcp-project",
"dataset": "reportplane"
},
"enabled": true,
"schema_ids": [
"MODEL_ID"
]
}
}Get a warehouse
/warehouses/{id}warehouses:read. Success status: 200.Request JSON
No request body.
Response JSON
{
"error": false,
"data": {
"id": "WAREHOUSE_ID",
"project_id": "PROJECT_ID",
"name": "Production BigQuery",
"type": "bigquery",
"credential_id": "CREDENTIAL_ID",
"config": {
"project_id": "gcp-project",
"dataset": "reportplane"
},
"enabled": true,
"schema_ids": [
"MODEL_ID"
],
"schemas": [
{
"id": "MODEL_ID",
"name": "HTTP Requests",
"key": "http_requests",
"time_field": "timestamp",
"enabled": true
}
]
}
}List warehouse credentials
/warehouse-credentialswarehouses:read. Success status: 200.Query parameters
{
"project_id": "PROJECT_ID"
}Request JSON
No request body.
Response JSON
{
"error": false,
"data": [
{
"id": "CREDENTIAL_ID",
"project_id": "PROJECT_ID",
"name": "BigQuery writer",
"description": "Production identity",
"type": "bigquery_service_account",
"config": "",
"enabled": true,
"workspace_shared": false,
"system": false,
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
]
}Create warehouse credentials
/warehouse-credentialswarehouses:write. Success status: 201.Request JSON
{
"project_id": "PROJECT_ID",
"name": "BigQuery writer",
"type": "bigquery",
"workspace_shared": false,
"config": {
"bigquery": {
"service_account_json": {
"type": "service_account",
"project_id": "gcp-project",
"private_key": "SECRET",
"client_email": "writer@example.iam.gserviceaccount.com"
}
}
}
}Accepted values
{
"type": [
"bigquery",
"clickhouse",
"snowflake",
"elasticsearch",
"elasticsearch_basic_auth",
"elasticsearch_api_key",
"opensearch"
],
"workspace_shared": [
false,
true
]
}Supported request variants
BigQuery service account
{
"project_id": "PROJECT_ID",
"name": "BigQuery writer",
"type": "bigquery",
"workspace_shared": false,
"config": {
"bigquery": {
"service_account_json": {
"type": "service_account",
"project_id": "gcp-project",
"private_key": "SECRET",
"client_email": "writer@example.iam.gserviceaccount.com"
}
}
}
}ClickHouse host credentials
Use host/username/password or provide dsn instead of host.
{
"project_id": "PROJECT_ID",
"name": "ClickHouse writer",
"type": "clickhouse",
"workspace_shared": false,
"config": {
"clickhouse": {
"host": "clickhouse.example.com:8443",
"username": "default",
"password": "SECRET",
"database": "default",
"secure": true
}
}
}Snowflake username and password
{
"project_id": "PROJECT_ID",
"name": "Snowflake writer",
"type": "snowflake",
"workspace_shared": false,
"config": {
"snowflake": {
"account": "ORG-ACCOUNT",
"username": "REPORTPLANE",
"password": "SECRET",
"warehouse": "COMPUTE_WH",
"role": "REPORTPLANE_WRITER"
}
}
}Elasticsearch basic authentication
{
"project_id": "PROJECT_ID",
"name": "Elasticsearch writer",
"type": "elasticsearch",
"workspace_shared": false,
"config": {
"elasticsearch": {
"username": "elastic",
"password": "SECRET"
}
}
}Elasticsearch API key
{
"project_id": "PROJECT_ID",
"name": "Elasticsearch API key",
"type": "elasticsearch_api_key",
"workspace_shared": false,
"config": {
"elasticsearch": {
"api_key": "SECRET"
}
}
}OpenSearch basic authentication
{
"project_id": "PROJECT_ID",
"name": "OpenSearch writer",
"type": "opensearch",
"workspace_shared": false,
"config": {
"opensearch": {
"username": "admin",
"password": "SECRET"
}
}
}Response JSON
{
"error": false,
"data": {
"id": "CREDENTIAL_ID",
"project_id": "PROJECT_ID",
"name": "BigQuery writer",
"description": "Production identity",
"type": "bigquery_service_account",
"config": "",
"enabled": true,
"workspace_shared": false,
"system": false,
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
}workspace_shared: true requires workspace owner/admin access.
Get warehouse credentials
/warehouse-credentials/{id}warehouses:read. Success status: 200.Request JSON
No request body.
Response JSON
{
"error": false,
"data": {
"id": "CREDENTIAL_ID",
"project_id": "PROJECT_ID",
"name": "BigQuery writer",
"description": "Production identity",
"type": "bigquery_service_account",
"config": "",
"enabled": true,
"workspace_shared": false,
"system": false,
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
}Update warehouse credentials
/warehouse-credentials/{id}warehouses:write. Success status: 200.Request JSON
{
"name": "BigQuery writer",
"type": "bigquery",
"config": {
"bigquery": {
"service_account_json": {
"type": "service_account",
"project_id": "gcp-project",
"private_key": "SECRET",
"client_email": "writer@example.iam.gserviceaccount.com"
}
}
},
"description": "Updated credential",
"enabled": true
}Accepted values
{
"type": [
"bigquery",
"clickhouse",
"snowflake",
"elasticsearch",
"elasticsearch_basic_auth",
"elasticsearch_api_key",
"opensearch"
]
}Supported request variants
BigQuery service account
{
"name": "BigQuery writer",
"type": "bigquery",
"config": {
"bigquery": {
"service_account_json": {
"type": "service_account",
"project_id": "gcp-project",
"private_key": "SECRET",
"client_email": "writer@example.iam.gserviceaccount.com"
}
}
},
"description": "Updated credential",
"enabled": true
}ClickHouse host credentials
Use host/username/password or provide dsn instead of host.
{
"name": "ClickHouse writer",
"type": "clickhouse",
"config": {
"clickhouse": {
"host": "clickhouse.example.com:8443",
"username": "default",
"password": "SECRET",
"database": "default",
"secure": true
}
},
"description": "Updated credential",
"enabled": true
}Snowflake username and password
{
"name": "Snowflake writer",
"type": "snowflake",
"config": {
"snowflake": {
"account": "ORG-ACCOUNT",
"username": "REPORTPLANE",
"password": "SECRET",
"warehouse": "COMPUTE_WH",
"role": "REPORTPLANE_WRITER"
}
},
"description": "Updated credential",
"enabled": true
}Elasticsearch basic authentication
{
"name": "Elasticsearch writer",
"type": "elasticsearch",
"config": {
"elasticsearch": {
"username": "elastic",
"password": "SECRET"
}
},
"description": "Updated credential",
"enabled": true
}Elasticsearch API key
{
"name": "Elasticsearch API key",
"type": "elasticsearch_api_key",
"config": {
"elasticsearch": {
"api_key": "SECRET"
}
},
"description": "Updated credential",
"enabled": true
}OpenSearch basic authentication
{
"name": "OpenSearch writer",
"type": "opensearch",
"config": {
"opensearch": {
"username": "admin",
"password": "SECRET"
}
},
"description": "Updated credential",
"enabled": true
}Response JSON
{
"error": false,
"data": {
"id": "CREDENTIAL_ID",
"project_id": "PROJECT_ID",
"name": "BigQuery writer",
"description": "Production identity",
"type": "bigquery_service_account",
"config": "",
"enabled": true,
"workspace_shared": false,
"system": false,
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
}Omit config to keep the existing encrypted credential material.
Runtime clients and keys
List ingest clients
/ingest-clientsclients:read. Success status: 200.Query parameters
{
"project_id": "PROJECT_ID"
}Request JSON
No request body.
Response JSON
{
"error": false,
"data": [
{
"id": "INGEST_CLIENT_ID",
"project_id": "PROJECT_ID",
"name": "Web application",
"description": "Production HTTP events",
"attributes": {
"source_type": "http"
},
"allowed_schemas": [
"MODEL_ID"
],
"enabled": true,
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
]
}Create an ingest client
/ingest-clientsclients:write. Success status: 201.Request JSON
{
"project_id": "PROJECT_ID",
"name": "Web application",
"description": "Production HTTP events",
"attributes": {
"source_type": "http"
},
"allowed_schemas": [
"MODEL_ID"
],
"enabled": true
}Response JSON
{
"error": false,
"data": {
"id": "INGEST_CLIENT_ID",
"project_id": "PROJECT_ID",
"name": "Web application",
"description": "Production HTTP events",
"attributes": {
"source_type": "http"
},
"allowed_schemas": [
"MODEL_ID"
],
"enabled": true,
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
}Get an ingest client
/ingest-clients/{id}clients:read. Success status: 200.Request JSON
No request body.
Response JSON
{
"error": false,
"data": {
"client": {
"id": "INGEST_CLIENT_ID",
"project_id": "PROJECT_ID",
"name": "Web application",
"description": "Production HTTP events",
"attributes": {
"source_type": "http"
},
"allowed_schemas": [
"MODEL_ID"
],
"enabled": true,
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
},
"authentication": {
"jwt": {
"secret_source": "generated"
},
"mtls": {
"ca_id": "CLIENT_CA_ID",
"identity_source": "uri_san",
"identity_prefix": "spiffe://example.com/"
},
"cidr": {
"allowed": [
"203.0.113.0/24"
]
},
"identity_binding": {
"mode": "jwt_mtls",
"jwt_claim": "sub"
}
},
"schemas": [
{
"id": "MODEL_ID",
"name": "HTTP Requests",
"key": "http_requests"
}
]
}
}Update an ingest client
/ingest-clients/{id}clients:write. Success status: 200.Request JSON
{
"name": "Web application",
"description": "Production HTTP events",
"attributes": {
"source_type": "http"
},
"allowed_schemas": [
"MODEL_ID"
],
"enabled": true
}Response JSON
{
"error": false,
"data": {
"id": "INGEST_CLIENT_ID",
"project_id": "PROJECT_ID",
"name": "Web application",
"description": "Production HTTP events",
"attributes": {
"source_type": "http"
},
"allowed_schemas": [
"MODEL_ID"
],
"enabled": true,
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
}Delete an ingest client
/ingest-clients/{id}clients:write. Success status: 200.Request JSON
No request body.
Response JSON
{
"error": false,
"data": {
"deleted": true
}
}Configure ingest authentication
/ingest-clients/{id}/authenticationclients:write. Success status: 200.Request JSON
{
"config": {
"jwt": {
"secret_source": "generated",
"secret": ""
},
"mtls": {
"ca_id": "CLIENT_CA_ID",
"identity_source": "uri_san",
"identity_prefix": "spiffe://example.com/"
},
"cidr": {
"allowed": [
"203.0.113.0/24"
]
},
"identity_binding": {
"mode": "jwt_mtls",
"jwt_claim": "sub"
}
}
}Accepted values
{
"config.jwt.secret_source": [
"generated",
"customer"
],
"config.mtls.identity_source": [
"uri_san"
],
"config.identity_binding.mode": [
"none",
"jwt_payload",
"jwt_payload_mtls",
"jwt_mtls"
]
}Supported request variants
Generated JWT secret
The generated secret is returned once in data.generated_secret.
{
"config": {
"jwt": {
"secret_source": "generated",
"secret": ""
}
}
}Customer-provided JWT secret
{
"config": {
"jwt": {
"secret_source": "customer",
"secret": "CUSTOMER_SECRET"
}
}
}mTLS with CIDR restriction
{
"config": {
"mtls": {
"ca_id": "CLIENT_CA_ID",
"identity_source": "uri_san",
"identity_prefix": "spiffe://example.com/"
},
"cidr": {
"allowed": [
"203.0.113.0/24"
]
}
}
}JWT payload binding
{
"config": {
"jwt": {
"secret_source": "customer",
"secret": "CUSTOMER_SECRET"
},
"identity_binding": {
"mode": "jwt_payload",
"jwt_claim": "sub",
"payload_field": "customer_id"
}
}
}JWT and mTLS identity binding
{
"config": {
"jwt": {
"secret_source": "customer",
"secret": "CUSTOMER_SECRET"
},
"mtls": {
"ca_id": "CLIENT_CA_ID",
"identity_source": "uri_san",
"identity_prefix": "spiffe://example.com/"
},
"identity_binding": {
"mode": "jwt_mtls",
"jwt_claim": "sub"
}
}
}Response JSON
{
"error": false,
"data": {
"generated_secret": "ONE_TIME_SECRET"
}
}generated_secret is omitted when no secret was generated and is never returned again.
List query clients
/query-clientsclients:read. Success status: 200.Query parameters
{
"project_id": "PROJECT_ID"
}Request JSON
No request body.
Response JSON
{
"error": false,
"data": [
{
"id": "QUERY_CLIENT_ID",
"project_id": "PROJECT_ID",
"name": "Customer dashboard",
"description": "Read identity for the customer dashboard",
"allowed_analytics": [
"ANALYTICS_API_ID"
],
"access_filters": [],
"max_range_days": 30,
"max_rps": 10,
"allow_delegation": false,
"delegation_ttl_seconds": 3600,
"time_restriction_enabled": false,
"allowed_time_windows": "Mon-Fri 09:00-18:00",
"timezone": "UTC",
"enabled": true,
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
]
}Create a query client
/query-clientsclients:write. Success status: 201.Request JSON
{
"project_id": "PROJECT_ID",
"name": "Customer dashboard",
"description": "Read identity for the customer dashboard",
"allowed_analytics": [
"ANALYTICS_API_ID"
],
"access_filters": [],
"max_range_days": 30,
"max_rps": 10,
"allow_delegation": false,
"delegation_ttl_seconds": 3600,
"time_restriction_enabled": false,
"allowed_time_windows": "Mon-Fri 09:00-18:00",
"timezone": "UTC",
"enabled": true
}Accepted values
{
"access_filters[].operator": [
"equals",
"not_equals",
"contains",
"not_contains",
"in",
"not_in",
"between",
"gt",
"gte",
"lt",
"lte",
"exists",
"contains_any",
"contains_all"
],
"timezone": [
"IANA timezone, for example UTC or Europe/Istanbul"
]
}Response JSON
{
"error": false,
"data": {
"id": "QUERY_CLIENT_ID",
"project_id": "PROJECT_ID",
"name": "Customer dashboard",
"description": "Read identity for the customer dashboard",
"allowed_analytics": [
"ANALYTICS_API_ID"
],
"access_filters": [],
"max_range_days": 30,
"max_rps": 10,
"allow_delegation": false,
"delegation_ttl_seconds": 3600,
"time_restriction_enabled": false,
"allowed_time_windows": "Mon-Fri 09:00-18:00",
"timezone": "UTC",
"enabled": true,
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
}Get a query client
/query-clients/{id}clients:read. Success status: 200.Request JSON
No request body.
Response JSON
{
"error": false,
"data": {
"client": {
"id": "QUERY_CLIENT_ID",
"project_id": "PROJECT_ID",
"name": "Customer dashboard",
"description": "Read identity for the customer dashboard",
"allowed_analytics": [
"ANALYTICS_API_ID"
],
"access_filters": [],
"max_range_days": 30,
"max_rps": 10,
"allow_delegation": false,
"delegation_ttl_seconds": 3600,
"time_restriction_enabled": false,
"allowed_time_windows": "Mon-Fri 09:00-18:00",
"timezone": "UTC",
"enabled": true,
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
},
"authentication": {
"jwt": {
"secret_source": "generated"
},
"mtls": {
"ca_id": "CLIENT_CA_ID",
"identity_source": "uri_san",
"identity_prefix": "spiffe://example.com/"
},
"cidr": {
"allowed": [
"203.0.113.0/24"
]
},
"identity_binding": {
"mode": "jwt_mtls",
"jwt_claim": "sub"
}
},
"analytics": [
{
"id": "ANALYTICS_API_ID",
"name": "Requests by status",
"key": "requests_by_status"
}
]
}
}Update a query client
/query-clients/{id}clients:write. Success status: 200.Request JSON
{
"name": "Customer dashboard",
"description": "Read identity for the customer dashboard",
"allowed_analytics": [
"ANALYTICS_API_ID"
],
"access_filters": [],
"max_range_days": 30,
"max_rps": 10,
"allow_delegation": false,
"delegation_ttl_seconds": 3600,
"time_restriction_enabled": false,
"allowed_time_windows": "Mon-Fri 09:00-18:00",
"timezone": "UTC",
"enabled": true
}Accepted values
{
"access_filters[].operator": [
"equals",
"not_equals",
"contains",
"not_contains",
"in",
"not_in",
"between",
"gt",
"gte",
"lt",
"lte",
"exists",
"contains_any",
"contains_all"
],
"timezone": [
"IANA timezone, for example UTC or Europe/Istanbul"
]
}Response JSON
{
"error": false,
"data": {
"id": "QUERY_CLIENT_ID",
"project_id": "PROJECT_ID",
"name": "Customer dashboard",
"description": "Read identity for the customer dashboard",
"allowed_analytics": [
"ANALYTICS_API_ID"
],
"access_filters": [],
"max_range_days": 30,
"max_rps": 10,
"allow_delegation": false,
"delegation_ttl_seconds": 3600,
"time_restriction_enabled": false,
"allowed_time_windows": "Mon-Fri 09:00-18:00",
"timezone": "UTC",
"enabled": true,
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
}Delete a query client
/query-clients/{id}clients:write. Success status: 200.Request JSON
No request body.
Response JSON
{
"error": false,
"data": {
"deleted": true
}
}Configure query authentication
/query-clients/{id}/authenticationclients:write. Success status: 200.Request JSON
{
"config": {
"jwt": {
"secret_source": "generated",
"secret": ""
},
"mtls": {
"ca_id": "CLIENT_CA_ID",
"identity_source": "uri_san",
"identity_prefix": "spiffe://example.com/"
},
"cidr": {
"allowed": [
"203.0.113.0/24"
]
},
"identity_binding": {
"mode": "jwt_mtls",
"jwt_claim": "sub"
}
}
}Accepted values
{
"config.jwt.secret_source": [
"generated",
"customer"
],
"config.mtls.identity_source": [
"uri_san"
],
"config.identity_binding.mode": [
"none",
"jwt_payload",
"jwt_payload_mtls",
"jwt_mtls"
]
}Supported request variants
Generated JWT secret
The generated secret is returned once in data.generated_secret.
{
"config": {
"jwt": {
"secret_source": "generated",
"secret": ""
}
}
}Customer-provided JWT secret
{
"config": {
"jwt": {
"secret_source": "customer",
"secret": "CUSTOMER_SECRET"
}
}
}mTLS with CIDR restriction
{
"config": {
"mtls": {
"ca_id": "CLIENT_CA_ID",
"identity_source": "uri_san",
"identity_prefix": "spiffe://example.com/"
},
"cidr": {
"allowed": [
"203.0.113.0/24"
]
}
}
}JWT payload binding
{
"config": {
"jwt": {
"secret_source": "customer",
"secret": "CUSTOMER_SECRET"
},
"identity_binding": {
"mode": "jwt_payload",
"jwt_claim": "sub",
"payload_field": "customer_id"
}
}
}JWT and mTLS identity binding
{
"config": {
"jwt": {
"secret_source": "customer",
"secret": "CUSTOMER_SECRET"
},
"mtls": {
"ca_id": "CLIENT_CA_ID",
"identity_source": "uri_san",
"identity_prefix": "spiffe://example.com/"
},
"identity_binding": {
"mode": "jwt_mtls",
"jwt_claim": "sub"
}
}
}Response JSON
{
"error": false,
"data": {
"generated_secret": "ONE_TIME_SECRET"
}
}generated_secret is omitted when no secret was generated and is never returned again.
List Runtime API Keys
/runtime-api-keysclients:read. Success status: 200.Query parameters
{
"project_id": "PROJECT_ID"
}Request JSON
No request body.
Response JSON
{
"error": false,
"data": [
{
"id": "RUNTIME_API_KEY_ID",
"project_id": "PROJECT_ID",
"name": "Application runtime key",
"description": "Ingest-only production credential",
"allow_ingest": true,
"allow_query": false,
"allowed_schemas": [
"MODEL_ID"
],
"allowed_analytics": [],
"allowed_ips": [
"203.0.113.0/24"
],
"key_prefix": "rp_ak_abcd1234",
"enabled": true,
"created_by_user_id": "USER_ID",
"last_used_at": null,
"last_used_ip": "",
"revoked_at": null,
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
]
}Create a Runtime API Key
/runtime-api-keysclients:write. Success status: 201.Request JSON
{
"project_id": "PROJECT_ID",
"name": "Application runtime key",
"description": "Ingest-only production credential",
"allow_ingest": true,
"allow_query": false,
"allowed_schemas": [
"MODEL_ID"
],
"allowed_analytics": [],
"allowed_ips": [
"203.0.113.0/24"
],
"enabled": true
}Supported request variants
Ingest only
{
"project_id": "PROJECT_ID",
"name": "Application runtime key",
"description": "Ingest-only production credential",
"allow_ingest": true,
"allow_query": false,
"allowed_schemas": [
"MODEL_ID"
],
"allowed_analytics": [],
"allowed_ips": [
"203.0.113.0/24"
],
"enabled": true
}Query only
{
"project_id": "PROJECT_ID",
"name": "Application runtime key",
"description": "Ingest-only production credential",
"allow_ingest": false,
"allow_query": true,
"allowed_schemas": [],
"allowed_analytics": [
"ANALYTICS_API_ID"
],
"allowed_ips": [
"203.0.113.0/24"
],
"enabled": true
}Ingest and query
{
"project_id": "PROJECT_ID",
"name": "Application runtime key",
"description": "Ingest-only production credential",
"allow_ingest": true,
"allow_query": true,
"allowed_schemas": [
"MODEL_ID"
],
"allowed_analytics": [
"ANALYTICS_API_ID"
],
"allowed_ips": [
"203.0.113.0/24"
],
"enabled": true
}Response JSON
{
"error": false,
"data": {
"api_key": {
"id": "RUNTIME_API_KEY_ID",
"project_id": "PROJECT_ID",
"name": "Application runtime key",
"description": "Ingest-only production credential",
"allow_ingest": true,
"allow_query": false,
"allowed_schemas": [
"MODEL_ID"
],
"allowed_analytics": [],
"allowed_ips": [
"203.0.113.0/24"
],
"key_prefix": "rp_ak_abcd1234",
"enabled": true,
"created_by_user_id": "USER_ID",
"last_used_at": null,
"last_used_ip": "",
"revoked_at": null,
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
},
"secret": "rp_ak_abcd1234.ONE_TIME_SECRET"
}
}secret is returned once.
Get a Runtime API Key
/runtime-api-keys/{id}clients:read. Success status: 200.Request JSON
No request body.
Response JSON
{
"error": false,
"data": {
"api_key": {
"id": "RUNTIME_API_KEY_ID",
"project_id": "PROJECT_ID",
"name": "Application runtime key",
"description": "Ingest-only production credential",
"allow_ingest": true,
"allow_query": false,
"allowed_schemas": [
"MODEL_ID"
],
"allowed_analytics": [],
"allowed_ips": [
"203.0.113.0/24"
],
"key_prefix": "rp_ak_abcd1234",
"enabled": true,
"created_by_user_id": "USER_ID",
"last_used_at": null,
"last_used_ip": "",
"revoked_at": null,
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
}
}Update a Runtime API Key
/runtime-api-keys/{id}clients:write. Success status: 200.Request JSON
{
"name": "Application runtime key",
"description": "Ingest-only production credential",
"allow_ingest": true,
"allow_query": false,
"allowed_schemas": [
"MODEL_ID"
],
"allowed_analytics": [],
"allowed_ips": [
"203.0.113.0/24"
],
"enabled": true
}Supported request variants
Ingest only
{
"name": "Application runtime key",
"description": "Ingest-only production credential",
"allow_ingest": true,
"allow_query": false,
"allowed_schemas": [
"MODEL_ID"
],
"allowed_analytics": [],
"allowed_ips": [
"203.0.113.0/24"
],
"enabled": true
}Query only
{
"name": "Application runtime key",
"description": "Ingest-only production credential",
"allow_ingest": false,
"allow_query": true,
"allowed_schemas": [],
"allowed_analytics": [
"ANALYTICS_API_ID"
],
"allowed_ips": [
"203.0.113.0/24"
],
"enabled": true
}Ingest and query
{
"name": "Application runtime key",
"description": "Ingest-only production credential",
"allow_ingest": true,
"allow_query": true,
"allowed_schemas": [
"MODEL_ID"
],
"allowed_analytics": [
"ANALYTICS_API_ID"
],
"allowed_ips": [
"203.0.113.0/24"
],
"enabled": true
}Response JSON
{
"error": false,
"data": {
"id": "RUNTIME_API_KEY_ID",
"project_id": "PROJECT_ID",
"name": "Application runtime key",
"description": "Ingest-only production credential",
"allow_ingest": true,
"allow_query": false,
"allowed_schemas": [
"MODEL_ID"
],
"allowed_analytics": [],
"allowed_ips": [
"203.0.113.0/24"
],
"key_prefix": "rp_ak_abcd1234",
"enabled": true,
"created_by_user_id": "USER_ID",
"last_used_at": null,
"last_used_ip": "",
"revoked_at": null,
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
}Revoke a Runtime API Key
/runtime-api-keys/{id}clients:write. Success status: 200.Request JSON
No request body.
Response JSON
{
"error": false,
"data": {
"revoked": true
}
}Analytics APIs and bindings
List Analytics APIs
/analytics-apisanalytics:read. Success status: 200.Query parameters
{
"project_id": "PROJECT_ID"
}Request JSON
No request body.
Response JSON
{
"error": false,
"data": [
{
"id": "ANALYTICS_API_ID",
"project_id": "PROJECT_ID",
"schema_id": "MODEL_ID",
"name": "Requests by status",
"key": "requests_by_status",
"description": "Count requests grouped by status code",
"definition": {
"parameters": [],
"dimensions": [
{
"field": "status_code",
"alias": "status_code"
}
],
"metrics": [
{
"aggregation": "count",
"alias": "request_count"
}
],
"fixed_filters": [],
"allowed_filters": [
{
"field": "timestamp",
"operators": [
"between",
"gte",
"lte"
]
}
],
"latest_by": {
"partition_by": [
"request_id"
],
"order_by": [
{
"field": "timestamp",
"direction": "desc"
}
]
},
"order_by": [
{
"field": "request_count",
"direction": "desc"
}
],
"limit": 100,
"visualization": {
"x_key": "status_code",
"y_keys": [
"request_count"
]
}
},
"chart_type": "bar",
"published": true,
"enabled": true,
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z",
"schema": {
"id": "MODEL_ID",
"name": "HTTP Requests",
"key": "http_requests"
},
"usage": {
"requests_today": 0,
"avg_latency_ms": 0,
"cache_hits": 0,
"cache_misses": 0,
"cost_today_usd": 0
},
"bindings": [
{
"id": "BINDING_ID",
"project_id": "PROJECT_ID",
"analytics_id": "ANALYTICS_API_ID",
"destination_id": "WAREHOUSE_ID",
"backend_type": "bigquery",
"preferred": true,
"enabled": true,
"cache_ttl_seconds": 300,
"max_rows": 10000,
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
]
}
]
}Create an Analytics API
/analytics-apisanalytics:write. Success status: 201.Request JSON
{
"project_id": "PROJECT_ID",
"schema_id": "MODEL_ID",
"name": "Requests by status",
"key": "requests_by_status",
"description": "Count requests grouped by status code",
"definition": {
"parameters": [],
"dimensions": [
{
"field": "status_code",
"alias": "status_code"
}
],
"metrics": [
{
"aggregation": "count",
"alias": "request_count"
}
],
"fixed_filters": [],
"allowed_filters": [
{
"field": "timestamp",
"operators": [
"between",
"gte",
"lte"
]
}
],
"latest_by": {
"partition_by": [
"request_id"
],
"order_by": [
{
"field": "timestamp",
"direction": "desc"
}
]
},
"order_by": [
{
"field": "request_count",
"direction": "desc"
}
],
"limit": 100,
"visualization": {
"x_key": "status_code",
"y_keys": [
"request_count"
]
}
},
"chart_type": "bar",
"published": true
}Accepted values
{
"chart_type": [
"table",
"number",
"line",
"area",
"bar",
"horizontal_bar",
"stacked_bar",
"pie",
"doughnut",
"scatter",
"map",
"histogram",
"funnel",
"cohort_heatmap",
"combo_bar_line"
],
"definition.parameters[].type": [
"string",
"int",
"integer",
"float",
"double",
"bool",
"boolean",
"datetime",
"timestamp"
],
"definition.dimensions[].bucket": [
"minute",
"hour",
"day",
"week",
"month"
],
"definition.dimensions[].array_format": [
"array",
"join"
],
"definition.metrics[].aggregation": [
"count",
"sum",
"avg",
"min",
"max",
"distinct_count"
],
"definition.fixed_filters[].operator": [
"equals",
"not_equals",
"contains",
"not_contains",
"in",
"not_in",
"between",
"gt",
"gte",
"lt",
"lte",
"exists",
"contains_any",
"contains_all"
],
"definition.order_by[].direction": [
"asc",
"desc"
],
"definition.latest_by.order_by[].direction": [
"asc",
"desc"
],
"definition.visualization.stack_mode": [
"none",
"normal",
"percent"
]
}Response JSON
{
"error": false,
"data": {
"id": "ANALYTICS_API_ID",
"project_id": "PROJECT_ID",
"schema_id": "MODEL_ID",
"name": "Requests by status",
"key": "requests_by_status",
"description": "Count requests grouped by status code",
"definition": {
"parameters": [],
"dimensions": [
{
"field": "status_code",
"alias": "status_code"
}
],
"metrics": [
{
"aggregation": "count",
"alias": "request_count"
}
],
"fixed_filters": [],
"allowed_filters": [
{
"field": "timestamp",
"operators": [
"between",
"gte",
"lte"
]
}
],
"latest_by": {
"partition_by": [
"request_id"
],
"order_by": [
{
"field": "timestamp",
"direction": "desc"
}
]
},
"order_by": [
{
"field": "request_count",
"direction": "desc"
}
],
"limit": 100,
"visualization": {
"x_key": "status_code",
"y_keys": [
"request_count"
]
}
},
"chart_type": "bar",
"published": true,
"enabled": true,
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
}Get an Analytics API
/analytics-apis/{id}analytics:read. Success status: 200.Request JSON
No request body.
Response JSON
{
"error": false,
"data": {
"id": "ANALYTICS_API_ID",
"project_id": "PROJECT_ID",
"schema_id": "MODEL_ID",
"name": "Requests by status",
"key": "requests_by_status",
"description": "Count requests grouped by status code",
"definition": {
"parameters": [],
"dimensions": [
{
"field": "status_code",
"alias": "status_code"
}
],
"metrics": [
{
"aggregation": "count",
"alias": "request_count"
}
],
"fixed_filters": [],
"allowed_filters": [
{
"field": "timestamp",
"operators": [
"between",
"gte",
"lte"
]
}
],
"latest_by": {
"partition_by": [
"request_id"
],
"order_by": [
{
"field": "timestamp",
"direction": "desc"
}
]
},
"order_by": [
{
"field": "request_count",
"direction": "desc"
}
],
"limit": 100,
"visualization": {
"x_key": "status_code",
"y_keys": [
"request_count"
]
}
},
"chart_type": "bar",
"published": true,
"enabled": true,
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z",
"schema": {
"id": "MODEL_ID",
"name": "HTTP Requests",
"key": "http_requests"
},
"usage": {
"requests_today": 0,
"avg_latency_ms": 0,
"cache_hits": 0,
"cache_misses": 0,
"cost_today_usd": 0
},
"bindings": [
{
"id": "BINDING_ID",
"project_id": "PROJECT_ID",
"analytics_id": "ANALYTICS_API_ID",
"destination_id": "WAREHOUSE_ID",
"backend_type": "bigquery",
"preferred": true,
"enabled": true,
"cache_ttl_seconds": 300,
"max_rows": 10000,
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
]
}
}Update an Analytics API
/analytics-apis/{id}analytics:write. Success status: 200.Request JSON
{
"name": "Requests by status",
"description": "Count requests grouped by status code",
"definition": {
"parameters": [],
"dimensions": [
{
"field": "status_code",
"alias": "status_code"
}
],
"metrics": [
{
"aggregation": "count",
"alias": "request_count"
}
],
"fixed_filters": [],
"allowed_filters": [
{
"field": "timestamp",
"operators": [
"between",
"gte",
"lte"
]
}
],
"latest_by": {
"partition_by": [
"request_id"
],
"order_by": [
{
"field": "timestamp",
"direction": "desc"
}
]
},
"order_by": [
{
"field": "request_count",
"direction": "desc"
}
],
"limit": 100,
"visualization": {
"x_key": "status_code",
"y_keys": [
"request_count"
]
}
},
"chart_type": "bar",
"published": true
}Accepted values
{
"chart_type": [
"table",
"number",
"line",
"area",
"bar",
"horizontal_bar",
"stacked_bar",
"pie",
"doughnut",
"scatter",
"map",
"histogram",
"funnel",
"cohort_heatmap",
"combo_bar_line"
],
"definition.parameters[].type": [
"string",
"int",
"integer",
"float",
"double",
"bool",
"boolean",
"datetime",
"timestamp"
],
"definition.dimensions[].bucket": [
"minute",
"hour",
"day",
"week",
"month"
],
"definition.dimensions[].array_format": [
"array",
"join"
],
"definition.metrics[].aggregation": [
"count",
"sum",
"avg",
"min",
"max",
"distinct_count"
],
"definition.fixed_filters[].operator": [
"equals",
"not_equals",
"contains",
"not_contains",
"in",
"not_in",
"between",
"gt",
"gte",
"lt",
"lte",
"exists",
"contains_any",
"contains_all"
],
"definition.order_by[].direction": [
"asc",
"desc"
],
"definition.latest_by.order_by[].direction": [
"asc",
"desc"
],
"definition.visualization.stack_mode": [
"none",
"normal",
"percent"
]
}Response JSON
{
"error": false,
"data": {
"id": "ANALYTICS_API_ID",
"project_id": "PROJECT_ID",
"schema_id": "MODEL_ID",
"name": "Requests by status",
"key": "requests_by_status",
"description": "Count requests grouped by status code",
"definition": {
"parameters": [],
"dimensions": [
{
"field": "status_code",
"alias": "status_code"
}
],
"metrics": [
{
"aggregation": "count",
"alias": "request_count"
}
],
"fixed_filters": [],
"allowed_filters": [
{
"field": "timestamp",
"operators": [
"between",
"gte",
"lte"
]
}
],
"latest_by": {
"partition_by": [
"request_id"
],
"order_by": [
{
"field": "timestamp",
"direction": "desc"
}
]
},
"order_by": [
{
"field": "request_count",
"direction": "desc"
}
],
"limit": 100,
"visualization": {
"x_key": "status_code",
"y_keys": [
"request_count"
]
}
},
"chart_type": "bar",
"published": true,
"enabled": true,
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z",
"schema": {
"id": "MODEL_ID",
"name": "HTTP Requests",
"key": "http_requests"
},
"usage": {
"requests_today": 0,
"avg_latency_ms": 0,
"cache_hits": 0,
"cache_misses": 0,
"cost_today_usd": 0
},
"bindings": [
{
"id": "BINDING_ID",
"project_id": "PROJECT_ID",
"analytics_id": "ANALYTICS_API_ID",
"destination_id": "WAREHOUSE_ID",
"backend_type": "bigquery",
"preferred": true,
"enabled": true,
"cache_ttl_seconds": 300,
"max_rows": 10000,
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
]
}
}Archive an Analytics API
/analytics-apis/{id}analytics:write. Success status: 200.Request JSON
No request body.
Response JSON
{
"error": false,
"data": {
"archived": true
}
}List analytics bindings
/analytics-bindingsanalytics:read. Success status: 200.Query parameters
{
"project_id": "PROJECT_ID"
}Request JSON
No request body.
Response JSON
{
"error": false,
"data": [
{
"id": "BINDING_ID",
"project_id": "PROJECT_ID",
"analytics_id": "ANALYTICS_API_ID",
"destination_id": "WAREHOUSE_ID",
"backend_type": "bigquery",
"preferred": true,
"enabled": true,
"cache_ttl_seconds": 300,
"max_rows": 10000,
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
]
}Create an analytics binding
/analytics-bindingsanalytics:write. Success status: 201.Request JSON
{
"project_id": "PROJECT_ID",
"analytics_id": "ANALYTICS_API_ID",
"destination_id": "WAREHOUSE_ID",
"backend_type": "bigquery",
"preferred": true,
"cache_ttl_seconds": 300,
"max_rows": 10000
}Accepted values
{
"backend_type": [
"bigquery",
"clickhouse",
"snowflake",
"elasticsearch",
"opensearch"
]
}Response JSON
{
"error": false,
"data": {
"id": "BINDING_ID",
"project_id": "PROJECT_ID",
"analytics_id": "ANALYTICS_API_ID",
"destination_id": "WAREHOUSE_ID",
"backend_type": "bigquery",
"preferred": true,
"enabled": true,
"cache_ttl_seconds": 300,
"max_rows": 10000,
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
}Promote an analytics binding
/analytics-bindings/{id}/promoteanalytics:write. Success status: 200.Request JSON
{
"project_id": "PROJECT_ID"
}Response JSON
{
"error": false,
"data": {
"id": "BINDING_ID",
"project_id": "PROJECT_ID",
"analytics_id": "ANALYTICS_API_ID",
"destination_id": "WAREHOUSE_ID",
"backend_type": "bigquery",
"preferred": true,
"enabled": true,
"cache_ttl_seconds": 300,
"max_rows": 10000,
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
}Atomically clears preferred on the Analytics API's other bindings, then enables and promotes this binding. Existing bindings are retained for rollback.
Shared datasets
List shared datasets
/datasetsdatasets:read. Success status: 200.Query parameters
{
"project_id": "PROJECT_ID",
"destination_id": "WAREHOUSE_ID"
}Request JSON
No request body.
Response JSON
{
"error": false,
"data": [
{
"id": "DATASET_ID",
"project_id": "PROJECT_ID",
"destination_id": "WAREHOUSE_ID",
"name": "Global Cloud Reliability",
"slug": "cloud-service-reliability",
"description": "Public cloud service incidents and component health.",
"status": "draft",
"visibility": "unlisted",
"catalog_status": "not_submitted",
"source_name": "Public provider status APIs",
"source_url": "https://example.com/status",
"license_name": "Source terms",
"license_url": "https://example.com/terms",
"attribution": "Public provider status APIs",
"warehouse": {
"id": "WAREHOUSE_ID",
"name": "Public Data · cloud-service-reliability",
"type": "bigquery",
"enabled": true
},
"models": [
{
"id": "MODEL_ID",
"name": "Cloud incidents",
"key": "cloud_service_incidents",
"time_field": "observed_at",
"enabled": true,
"fields": []
}
],
"charts": [
{
"id": "ANALYTICS_API_ID",
"key": "cloud_incidents_daily",
"name": "Cloud incidents by day",
"description": "Incident flow by day",
"chart_type": "line",
"updated_at": "2026-08-02T10:00:00Z"
}
],
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
]
}Create a shared dataset
/datasetsdatasets:write. Success status: 201.Request JSON
{
"project_id": "PROJECT_ID",
"destination_id": "WAREHOUSE_ID",
"name": "Global Cloud Reliability",
"slug": "cloud-service-reliability",
"description": "Public cloud service incidents and component health.",
"status": "draft",
"visibility": "unlisted",
"schema_ids": [
"MODEL_ID"
],
"analytics_ids": [
"ANALYTICS_API_ID"
],
"source_name": "Public provider status APIs",
"source_url": "https://example.com/status",
"license_name": "Source terms",
"license_url": "https://example.com/terms",
"attribution": "Public provider status APIs"
}Accepted values
{
"status": [
"draft",
"published",
"disabled"
],
"visibility": [
"unlisted",
"public"
]
}Response JSON
{
"error": false,
"data": {
"id": "DATASET_ID",
"project_id": "PROJECT_ID",
"destination_id": "WAREHOUSE_ID",
"name": "Global Cloud Reliability",
"slug": "cloud-service-reliability",
"description": "Public cloud service incidents and component health.",
"status": "draft",
"visibility": "unlisted",
"catalog_status": "not_submitted",
"source_name": "Public provider status APIs",
"source_url": "https://example.com/status",
"license_name": "Source terms",
"license_url": "https://example.com/terms",
"attribution": "Public provider status APIs",
"warehouse": {
"id": "WAREHOUSE_ID",
"name": "Public Data · cloud-service-reliability",
"type": "bigquery",
"enabled": true
},
"models": [
{
"id": "MODEL_ID",
"name": "Cloud incidents",
"key": "cloud_service_incidents",
"time_field": "observed_at",
"enabled": true,
"fields": []
}
],
"charts": [
{
"id": "ANALYTICS_API_ID",
"key": "cloud_incidents_daily",
"name": "Cloud incidents by day",
"description": "Incident flow by day",
"chart_type": "line",
"updated_at": "2026-08-02T10:00:00Z"
}
],
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
}Automation should create draft/unlisted records. Catalog approval is not exposed through the Management API.
Get a shared dataset
/datasets/{id}datasets:read. Success status: 200.Request JSON
No request body.
Response JSON
{
"error": false,
"data": {
"id": "DATASET_ID",
"project_id": "PROJECT_ID",
"destination_id": "WAREHOUSE_ID",
"name": "Global Cloud Reliability",
"slug": "cloud-service-reliability",
"description": "Public cloud service incidents and component health.",
"status": "draft",
"visibility": "unlisted",
"catalog_status": "not_submitted",
"source_name": "Public provider status APIs",
"source_url": "https://example.com/status",
"license_name": "Source terms",
"license_url": "https://example.com/terms",
"attribution": "Public provider status APIs",
"warehouse": {
"id": "WAREHOUSE_ID",
"name": "Public Data · cloud-service-reliability",
"type": "bigquery",
"enabled": true
},
"models": [
{
"id": "MODEL_ID",
"name": "Cloud incidents",
"key": "cloud_service_incidents",
"time_field": "observed_at",
"enabled": true,
"fields": []
}
],
"charts": [
{
"id": "ANALYTICS_API_ID",
"key": "cloud_incidents_daily",
"name": "Cloud incidents by day",
"description": "Incident flow by day",
"chart_type": "line",
"updated_at": "2026-08-02T10:00:00Z"
}
],
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
}Update a shared dataset
/datasets/{id}datasets:write. Success status: 200.Request JSON
{
"project_id": "PROJECT_ID",
"destination_id": "WAREHOUSE_ID",
"name": "Global Cloud Reliability",
"slug": "cloud-service-reliability",
"description": "Public cloud service incidents and component health.",
"status": "draft",
"visibility": "unlisted",
"schema_ids": [
"MODEL_ID"
],
"analytics_ids": [
"ANALYTICS_API_ID"
],
"source_name": "Public provider status APIs",
"source_url": "https://example.com/status",
"license_name": "Source terms",
"license_url": "https://example.com/terms",
"attribution": "Public provider status APIs"
}Accepted values
{
"status": [
"draft",
"published",
"disabled"
],
"visibility": [
"unlisted",
"public"
]
}Response JSON
{
"error": false,
"data": {
"id": "DATASET_ID",
"project_id": "PROJECT_ID",
"destination_id": "WAREHOUSE_ID",
"name": "Global Cloud Reliability",
"slug": "cloud-service-reliability",
"description": "Public cloud service incidents and component health.",
"status": "draft",
"visibility": "unlisted",
"catalog_status": "not_submitted",
"source_name": "Public provider status APIs",
"source_url": "https://example.com/status",
"license_name": "Source terms",
"license_url": "https://example.com/terms",
"attribution": "Public provider status APIs",
"warehouse": {
"id": "WAREHOUSE_ID",
"name": "Public Data · cloud-service-reliability",
"type": "bigquery",
"enabled": true
},
"models": [
{
"id": "MODEL_ID",
"name": "Cloud incidents",
"key": "cloud_service_incidents",
"time_field": "observed_at",
"enabled": true,
"fields": []
}
],
"charts": [
{
"id": "ANALYTICS_API_ID",
"key": "cloud_incidents_daily",
"name": "Cloud incidents by day",
"description": "Incident flow by day",
"chart_type": "line",
"updated_at": "2026-08-02T10:00:00Z"
}
],
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
}Archive a shared dataset
/datasets/{id}datasets:write. Success status: 200.Request JSON
No request body.
Response JSON
{
"error": false,
"data": {
"archived": true
}
}Security resources
List Client CAs
/client-cassecurity:read. Success status: 200.Query parameters
{
"project_id": "PROJECT_ID"
}Request JSON
No request body.
Response JSON
{
"error": false,
"data": [
{
"id": "CLIENT_CA_ID",
"project_id": "PROJECT_ID",
"name": "Production client CA",
"subject": "CN=Production Client CA",
"issuer": "CN=Production Client CA",
"serial_number": "1234567890",
"fingerprint_sha256": "SHA256_FINGERPRINT",
"not_before": "2026-08-01T00:00:00Z",
"not_after": "2027-08-01T00:00:00Z",
"enabled": true,
"workspace_shared": false,
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
]
}Create a Client CA
/client-cassecurity:write. Success status: 201.Request JSON
{
"project_id": "PROJECT_ID",
"name": "Production client CA",
"workspace_shared": false,
"certificate_pem": "-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----"
}Accepted values
{
"workspace_shared": [
false,
true
],
"certificate_pem": [
"PEM-encoded public CA certificate; never a private key"
]
}Response JSON
{
"error": false,
"data": {
"id": "CLIENT_CA_ID",
"project_id": "PROJECT_ID",
"name": "Production client CA",
"subject": "CN=Production Client CA",
"issuer": "CN=Production Client CA",
"serial_number": "1234567890",
"fingerprint_sha256": "SHA256_FINGERPRINT",
"not_before": "2026-08-01T00:00:00Z",
"not_after": "2027-08-01T00:00:00Z",
"enabled": true,
"workspace_shared": false,
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
}workspace_shared: true requires workspace owner/admin access.
Get a Client CA
/client-cas/{id}security:read. Success status: 200.Request JSON
No request body.
Response JSON
{
"error": false,
"data": {
"id": "CLIENT_CA_ID",
"project_id": "PROJECT_ID",
"name": "Production client CA",
"subject": "CN=Production Client CA",
"issuer": "CN=Production Client CA",
"serial_number": "1234567890",
"fingerprint_sha256": "SHA256_FINGERPRINT",
"not_before": "2026-08-01T00:00:00Z",
"not_after": "2027-08-01T00:00:00Z",
"enabled": true,
"workspace_shared": false,
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
}Delete a Client CA
/client-cas/{id}security:write. Success status: 200.Request JSON
No request body.
Response JSON
{
"error": false,
"data": {
"deleted": true
}
}Alerts, Incidents, and Notification Channels
List Alerts
/alertsalerts:read. Success status: 200.Query parameters
{
"project_id": "PROJECT_ID",
"trigger_type": "event",
"enabled": true
}Request JSON
No request body.
Response JSON
{
"error": false,
"data": {
"items": [
{
"id": "ALERT_ID",
"project_id": "PROJECT_ID",
"name": "Repeated failed login",
"description": "Ten failures from one source IP",
"enabled": true,
"severity": "critical",
"trigger_type": "event",
"schema_id": "MODEL_ID",
"conditions": {
"combinator": "and",
"conditions": [
{
"field": "outcome",
"operator": "equals",
"value": "failed"
}
]
},
"group_by": [
"source_ip"
],
"selected_fields": [
"source_ip",
"user_id"
],
"trigger_mode": "threshold",
"threshold": 10,
"window_seconds": 300,
"cooldown_seconds": 900,
"absence_seconds": 0,
"channel_ids": [
"CHANNEL_ID"
],
"evaluation_interval_seconds": 300,
"consecutive_evaluations": 1,
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
],
"total": 1,
"limit": 50,
"offset": 0
}
}Create an Alert
/alertsalerts:write. Success status: 201.Request JSON
{
"id": "ALERT_ID",
"project_id": "PROJECT_ID",
"name": "Repeated failed login",
"description": "Ten failures from one source IP",
"enabled": true,
"severity": "critical",
"trigger_type": "event",
"schema_id": "MODEL_ID",
"conditions": {
"combinator": "and",
"conditions": [
{
"field": "outcome",
"operator": "equals",
"value": "failed"
}
]
},
"group_by": [
"source_ip"
],
"selected_fields": [
"source_ip",
"user_id"
],
"trigger_mode": "threshold",
"threshold": 10,
"window_seconds": 300,
"cooldown_seconds": 900,
"absence_seconds": 0,
"channel_ids": [
"CHANNEL_ID"
],
"evaluation_interval_seconds": 300,
"consecutive_evaluations": 1,
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}Response JSON
{
"error": false,
"data": {
"id": "ALERT_ID",
"project_id": "PROJECT_ID",
"name": "Repeated failed login",
"description": "Ten failures from one source IP",
"enabled": true,
"severity": "critical",
"trigger_type": "event",
"schema_id": "MODEL_ID",
"conditions": {
"combinator": "and",
"conditions": [
{
"field": "outcome",
"operator": "equals",
"value": "failed"
}
]
},
"group_by": [
"source_ip"
],
"selected_fields": [
"source_ip",
"user_id"
],
"trigger_mode": "threshold",
"threshold": 10,
"window_seconds": 300,
"cooldown_seconds": 900,
"absence_seconds": 0,
"channel_ids": [
"CHANNEL_ID"
],
"evaluation_interval_seconds": 300,
"consecutive_evaluations": 1,
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
}Get an Alert
/alerts/{id}alerts:read. Success status: 200.Request JSON
No request body.
Response JSON
{
"error": false,
"data": {
"id": "ALERT_ID",
"project_id": "PROJECT_ID",
"name": "Repeated failed login",
"description": "Ten failures from one source IP",
"enabled": true,
"severity": "critical",
"trigger_type": "event",
"schema_id": "MODEL_ID",
"conditions": {
"combinator": "and",
"conditions": [
{
"field": "outcome",
"operator": "equals",
"value": "failed"
}
]
},
"group_by": [
"source_ip"
],
"selected_fields": [
"source_ip",
"user_id"
],
"trigger_mode": "threshold",
"threshold": 10,
"window_seconds": 300,
"cooldown_seconds": 900,
"absence_seconds": 0,
"channel_ids": [
"CHANNEL_ID"
],
"evaluation_interval_seconds": 300,
"consecutive_evaluations": 1,
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
}Update an Alert
/alerts/{id}alerts:write. Success status: 200.Request JSON
{
"id": "ALERT_ID",
"project_id": "PROJECT_ID",
"name": "Repeated failed login",
"description": "Ten failures from one source IP",
"enabled": true,
"severity": "critical",
"trigger_type": "event",
"schema_id": "MODEL_ID",
"conditions": {
"combinator": "and",
"conditions": [
{
"field": "outcome",
"operator": "equals",
"value": "failed"
}
]
},
"group_by": [
"source_ip"
],
"selected_fields": [
"source_ip",
"user_id"
],
"trigger_mode": "threshold",
"threshold": 10,
"window_seconds": 300,
"cooldown_seconds": 900,
"absence_seconds": 0,
"channel_ids": [
"CHANNEL_ID"
],
"evaluation_interval_seconds": 300,
"consecutive_evaluations": 1,
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}Response JSON
{
"error": false,
"data": {
"id": "ALERT_ID",
"project_id": "PROJECT_ID",
"name": "Repeated failed login",
"description": "Ten failures from one source IP",
"enabled": true,
"severity": "critical",
"trigger_type": "event",
"schema_id": "MODEL_ID",
"conditions": {
"combinator": "and",
"conditions": [
{
"field": "outcome",
"operator": "equals",
"value": "failed"
}
]
},
"group_by": [
"source_ip"
],
"selected_fields": [
"source_ip",
"user_id"
],
"trigger_mode": "threshold",
"threshold": 10,
"window_seconds": 300,
"cooldown_seconds": 900,
"absence_seconds": 0,
"channel_ids": [
"CHANNEL_ID"
],
"evaluation_interval_seconds": 300,
"consecutive_evaluations": 1,
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
}Archive an Alert
/alerts/{id}alerts:write. Success status: 200.Request JSON
No request body.
Response JSON
{
"error": false,
"data": {
"deleted": true
}
}Archives and disables the rule while retaining Incident and audit history.
Enable an Alert
/alerts/{id}/enablealerts:write. Success status: 200.Request JSON
{}Response JSON
{
"error": false,
"data": {
"enabled": true
}
}Disable an Alert
/alerts/{id}/disablealerts:write. Success status: 200.Request JSON
{}Response JSON
{
"error": false,
"data": {
"enabled": false
}
}Simulate an Event Alert
/alerts/{id}/simulatealerts:read. Success status: 200.Request JSON
{
"event": {
"outcome": "failed",
"source_ip": "203.0.113.10"
}
}Response JSON
{
"error": false,
"data": {
"matched": true,
"conditions": [
{
"field": "outcome",
"operator": "equals",
"matched": true,
"reason": "values are equal"
}
],
"group_context": {
"source_ip": "203.0.113.10"
},
"selected_fields": {
"source_ip": "203.0.113.10"
}
}
}List Notification Channels
/notification-channelsalerts:read. Success status: 200.Query parameters
{
"project_id": "PROJECT_ID"
}Request JSON
No request body.
Response JSON
{
"error": false,
"data": {
"items": [
{
"id": "CHANNEL_ID",
"project_id": "PROJECT_ID",
"name": "SOC webhook",
"type": "webhook",
"enabled": true,
"secret_configured": true,
"config": {
"url_configured": true
},
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
],
"total": 1,
"limit": 50,
"offset": 0
}
}Create a Notification Channel
/notification-channelsalerts:write. Success status: 201.Request JSON
{
"project_id": "PROJECT_ID",
"name": "SOC webhook",
"type": "webhook",
"enabled": true,
"config": {},
"secret": {
"url": "https://alerts.example.com/reportplane",
"hmac_secret": "WRITE_ONLY_SECRET_AT_LEAST_32_CHARS"
}
}Response JSON
{
"error": false,
"data": {
"id": "CHANNEL_ID",
"project_id": "PROJECT_ID",
"name": "SOC webhook",
"type": "webhook",
"enabled": true,
"secret_configured": true,
"config": {
"url_configured": true
},
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
}Endpoint and secret values are encrypted and never returned.
Get a Notification Channel
/notification-channels/{id}alerts:read. Success status: 200.Request JSON
No request body.
Response JSON
{
"error": false,
"data": {
"id": "CHANNEL_ID",
"project_id": "PROJECT_ID",
"name": "SOC webhook",
"type": "webhook",
"enabled": true,
"secret_configured": true,
"config": {
"url_configured": true
},
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
}Update a Notification Channel
/notification-channels/{id}alerts:write. Success status: 200.Request JSON
{
"name": "SOC webhook",
"type": "webhook",
"enabled": true,
"config": {},
"secret": {
"url": "https://alerts.example.com/reportplane",
"hmac_secret": "ROTATED_WRITE_ONLY_SECRET_32_CHARS"
}
}Response JSON
{
"error": false,
"data": {
"id": "CHANNEL_ID",
"project_id": "PROJECT_ID",
"name": "SOC webhook",
"type": "webhook",
"enabled": true,
"secret_configured": true,
"config": {
"url_configured": true
},
"created_at": "2026-08-02T10:00:00Z",
"updated_at": "2026-08-02T10:00:00Z"
}
}Enable a Notification Channel
/notification-channels/{id}/enablealerts:write. Success status: 200.Request JSON
{}Response JSON
{
"error": false,
"data": {
"enabled": true
}
}Disable a Notification Channel
/notification-channels/{id}/disablealerts:write. Success status: 200.Request JSON
{}Response JSON
{
"error": false,
"data": {
"enabled": false
}
}Send a test notification
/notification-channels/{id}/testalerts:write. Success status: 202.Request JSON
{}Response JSON
{
"error": false,
"data": {
"id": "DELIVERY_ID",
"project_id": "PROJECT_ID",
"incident_id": "INCIDENT_ID",
"channel_id": "CHANNEL_ID",
"status": "delivered",
"attempt_count": 1,
"next_attempt_at": "2026-08-02T10:00:00Z",
"delivered_at": "2026-08-02T10:00:00Z",
"last_error": ""
}
}List Alert Incidents
/alert-incidentsalerts:read. Success status: 200.Query parameters
{
"project_id": "PROJECT_ID",
"status": "open"
}Request JSON
No request body.
Response JSON
{
"error": false,
"data": {
"items": [
{
"id": "INCIDENT_ID",
"project_id": "PROJECT_ID",
"alert_rule_id": "ALERT_ID",
"status": "open",
"severity": "critical",
"group_key": "GROUP_HASH",
"group_context": {
"source_ip": "203.0.113.10"
},
"first_seen_at": "2026-08-02T10:00:00Z",
"last_seen_at": "2026-08-02T10:00:00Z",
"occurrence_count": 10
}
],
"total": 1,
"limit": 50,
"offset": 0
}
}Get an Alert Incident
/alert-incidents/{id}alerts:read. Success status: 200.Request JSON
No request body.
Response JSON
{
"error": false,
"data": {
"incident": {
"id": "INCIDENT_ID",
"project_id": "PROJECT_ID",
"alert_rule_id": "ALERT_ID",
"status": "open",
"severity": "critical",
"group_key": "GROUP_HASH",
"group_context": {
"source_ip": "203.0.113.10"
},
"first_seen_at": "2026-08-02T10:00:00Z",
"last_seen_at": "2026-08-02T10:00:00Z",
"occurrence_count": 10
},
"occurrences": [],
"deliveries": [
{
"id": "DELIVERY_ID",
"project_id": "PROJECT_ID",
"incident_id": "INCIDENT_ID",
"channel_id": "CHANNEL_ID",
"status": "delivered",
"attempt_count": 1,
"next_attempt_at": "2026-08-02T10:00:00Z",
"delivered_at": "2026-08-02T10:00:00Z",
"last_error": ""
}
]
}
}Acknowledge an Incident
/alert-incidents/{id}/acknowledgealerts:write. Success status: 200.Request JSON
{}Response JSON
{
"error": false,
"data": {
"status": "acknowledged"
}
}Resolve an Incident
/alert-incidents/{id}/resolvealerts:write. Success status: 200.Request JSON
{}Response JSON
{
"error": false,
"data": {
"status": "resolved"
}
}Inspect an Alert delivery
/alert-deliveries/{id}alerts:read. Success status: 200.Request JSON
No request body.
Response JSON
{
"error": false,
"data": {
"id": "DELIVERY_ID",
"project_id": "PROJECT_ID",
"incident_id": "INCIDENT_ID",
"channel_id": "CHANNEL_ID",
"status": "delivered",
"attempt_count": 1,
"next_attempt_at": "2026-08-02T10:00:00Z",
"delivered_at": "2026-08-02T10:00:00Z",
"last_error": ""
}
}Retry an Alert delivery
/alert-deliveries/{id}/retryalerts:write. Success status: 202.Request JSON
{}Response JSON
{
"error": false,
"data": {
"queued": true
}
}Requeues an authorized failed or dead-letter delivery with a fresh bounded attempt cycle.