Retrieve a log drain
The drain without its signing secret, which is only returned when created.
bearerAuthAuthorizationBearer <token>A secret API key from the dashboard: coss_live_… for production environments, coss_test_… for sandbox environments.
id*stringThe log drain's id.
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 log drain.
application/json- response
object*"log_drain""log_drain"id*stringurl*stringdescription*string|nullsources*array<>What the drain forwards: api (requests made with the environment's API keys), email (email events), webhook (webhook delivery attempts) and audit (changes to the environment, from the organization's audit log). An empty array means every source, including ones added later.
enabled*booleanA disabled drain receives nothing, and lines logged while it is disabled are not kept for it.
disabled_reason*|manual: someone disabled it. failing: a batch failed every attempt, so COSS disabled it. null while enabled.
"manual""failing"nulldisabled_at*|date-timecreated_at*stringdate-timeupdated_at*stringdate-timeimport { Coss } from "coss";const coss = new Coss({ apiKey: process.env.COSS_API_KEY, baseUrl: "https://api.coss.com",});const { data, error } = await coss.logDrains.get("drain_01k7c8m4q2f3e9v6t5r1n0p8yz");{ "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"}Retrieve a batch GET
One batch of the drain, with every HTTP attempt.
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.