List log drains
Every drain of the API key's environment, oldest first. Log drains belong to the API key's own environment: a coss_test_… key only ever sees sandbox drains, and a coss_live_… key only production ones.
bearerAuthAuthorizationBearer <token>A secret API key from the dashboard: coss_live_… for production environments, coss_test_… for sandbox environments.
Coss-Version?"2026-10-10"The API version (a date) to use for this request. Defaults to your organization's version, pinned to the latest one when it first used the API and upgraded from the dashboard. The SDK always sends the version it was built for.
"2026-10-10"The environment's log drains.
application/json- response
object*"list""list"data*array<>has_more*booleanimport { Coss } from "coss";const coss = new Coss({ apiKey: process.env.COSS_API_KEY, baseUrl: "https://api.coss.com",});const { data, error } = await coss.logDrains.list();{ "object": "list", "data": [ { "object": "log_drain", "id": "drain_01k7c8m4q2f3e9v6t5r1n0p8yz", "url": "https://logs.example.com/coss", "description": "Production logs", "sources": [ "api", "email" ], "enabled": true, "disabled_reason": null, "disabled_at": null, "created_at": "2026-01-15T09:30:00.000Z", "updated_at": "2026-01-15T09:30:00.000Z" } ], "has_more": false}List a drain's batches GET
The drain's delivery log, newest first: one batch per NDJSON request, with every HTTP attempt. A failing batch is retried with backoff for about a day (10 attempts); if every attempt fails, the drain is disabled. Pass the last `id` as `after` to get the next page while `has_more` is true.
Update a log drain PATCH
Changes the URL, description, sources or `enabled` flag. Omitted fields keep their current value, and the signing secret stays the same. Disabling a drain drops the lines still waiting for it, and nothing is kept for it while it is disabled; enabling it again (also after COSS disabled it for failing) sends lines logged from then on.