Extended observability — pushing API logs to ClickHouse
September 18, 2026
You can send API call logs from Unified.to directly to your own ClickHouse instance. This is the same class of logs we support for Datadog and Grafana / Loki; you choose where they go in your workspace settings.
ClickHouse is commonly used for high-volume analytics and log-style querying with SQL. Unified writes each API-call log as a row into a table you choose in your cluster, over ClickHouse's HTTP interface.
Setting it up
1. Prepare a ClickHouse database and table
Create a destination table in the database your credentials can write to. You choose the table name (for example unified_api_logs or observability.unified_api_logs) and enter it in workspace settings.
A minimal schema that accepts Unified's inserts (replace the table name with yours):
CREATE TABLE IF NOT EXISTS unified_api_logs
(
`id` String,
`created_at` DateTime,
`connection_id` String,
`workspace_id` String,
`integration_type` String,
`external_xref` String,
`name` String,
`path` String,
`size` UInt32,
`status` String,
`error` String,
`ip_address` String,
`type` String,
`method` String,
`environment` String,
`is_billable` Bool
)
ENGINE = MergeTree
ORDER BY (workspace_id, created_at);
Notes:
- Use ClickHouse Cloud, self-hosted ClickHouse, or any compatible hosted service.
- Grant the user permission to
INSERTinto your chosen table. - Table names may be
tableordatabase.table, using letters, numbers, and underscores. - You can add extra columns, indexes, or TTL policies for retention on your side. Unified only requires that the columns above can accept the values we send.
- Prefer HTTPS for the HTTP interface URL (ClickHouse Cloud typically exposes something like
https://<host>:8443).
2. Collect connection details
You will need:
| Setting | Workspace field | Description |
|---|---|---|
| HTTP URL | clickhouse_url | Base URL for the ClickHouse HTTP interface (include protocol and port when required) |
| Username | clickhouse_username | Optional; if omitted, Unified uses default |
| Password | clickhouse_password | Optional; may be empty depending on your cluster |
| Table | clickhouse_table | Destination table (my_logs or default.my_logs) |
3. Enter values in workspace settings
- Open Workspace settings (workspace admins only), or update the workspace via the Workspace API.
- Under External logging, choose Clickhouse.
- Enter the URL, username, password, and table name.
In the dashboard, external logging is one destination at a time (None, Datadog, Grafana, or ClickHouse).
4. Confirm logs are flowing
- Make a sample call to the Unified API (for example, list an object on a connection), or trigger a webhook delivery.
- In ClickHouse, query your table, for example:
SELECT
created_at,
type,
method,
path,
integration_type,
status,
workspace_id,
connection_id
FROM unified_api_logs
ORDER BY created_at DESC
LIMIT 20;
You should see recent rows with route path, integration_type, status, and related API-call fields.
Why ClickHouse matters for Unified.to users
By sending your logs directly to your own ClickHouse cluster, you get immediate visibility into what's happening in your environment. This allows you to quickly debug issues, get notified about errors, and more. Currently, we support both inbound API calls and webhook calls.
However, we're constantly improving our product, and we're looking forward to supporting more log types in the future. So, please send us feedback so we can better understand what you need.
About Unified.to
If you're not familiar with Unified API, it's a single API that you can use to read and write data to third-party integrations using our unified data model. This makes it easy to integrate with multiple systems and eliminates the need for separate API calls for each integration.
We hope this new feature makes your life easier and your work more efficient!