Zernio
Zernio
API Reference

Logs

List activity logsGET
Dashboard
llms.txtOpenAPI
OverviewPlatformsAPI ReferenceResources
Logs

List activity logs

Unified logs endpoint. Returns logs for publishing, connections, webhooks, and messaging. Filter by type, platform, status, and time range. Logs are retained for 90 days. Legacy query aliases remain accepted: account_id for accountId, request_id for requestId, status_code for statusCode, api_key_id for apiKeyId, and include_read_receipts for includeReadReceipts.


GET
/v1/logs

Authorization

bearerAuth
AuthorizationBearer <token>

API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.

In: header

Query Parameters

type?string

Log category to query. Use all for the unified view across every category, or api_request for your API request logs (method, path, status, latency).

Default"publishing"

Value in

  • "all"
  • "publishing"
  • "connections"
  • "webhooks"
  • "messaging"
  • "workflow_event"
  • "api_request"
status?string

Filter by status

Value in

  • "success"
  • "failed"
  • "pending"
  • "skipped"
  • "all"
platform?string

Filter by platform

Value in

  • "tiktok"
  • "instagram"
  • "whatsapp"
  • "facebook"
  • "youtube"
  • "linkedin"
  • "twitter"
  • "threads"
  • "pinterest"
  • "reddit"
  • "bluesky"
  • "googlebusiness"
  • "telegram"
  • "snapchat"
  • "all"
action?string

Filter by action (e.g., post.published, message.sent, account.connected, webhook.delivered)

search?string

Free-text search across log fields

days?integer

Number of days to look back (max 90)

Range1 <= value <= 90
Default90
limit?integer

Maximum number of logs to return (max 100)

Range1 <= value <= 100
Default50
skip?integer

Number of logs to skip (for pagination)

Range0 <= value
Default0
accountId?string

Filter by connected account ID

event?string

Filter webhook logs by event (e.g. post.published, message.received)

requestId?string

Correlation ID. Returns every log spawned by a single API request

from?string

Precise start instant (ISO 8601); narrows within the day range

Formatdate-time
to?string

Precise end instant (ISO 8601)

Formatdate-time
statusCode?integer

Filter by exact HTTP status code (api_request logs)

apiKeyId?string

Filter by the API key that made the request (api_request logs)

includeReadReceipts?boolean

Include message.read / message.delivered events (hidden by default for messaging logs)

Defaultfalse

Response Body

application/json

application/json

import Zernio from '@zernio/node';const zernio = new Zernio({ apiKey: process.env.ZERNIO_API_KEY });const { data } = await zernio.logs.listLogs();console.log(data);
{  "logs": [    {      "type": "string",      "action": "string",      "user_id": "string",      "platform": "string",      "account_id": "string",      "status": "success",      "status_code": 0,      "error_message": "string",      "error_code": "string",      "duration_ms": 0,      "endpoint": "string",      "request_body": "string",      "response_body": "string",      "created_at": "2019-08-24T14:15:22Z",      "metadata": "string",      "request_id": "string",      "api_key_id": "string",      "method": "string",      "path": "string",      "ip_address": "string",      "user_agent": "string"    }  ],  "pagination": {    "total": 0,    "limit": 0,    "skip": 0,    "pages": 0,    "hasMore": true  }}
Was this page helpful?

List API changelog entries

The API changelog, newest first. No API key needed; one address may make 120 requests a minute. Each entry is what the `api.changelog.published` webhook delivered: the announcement in `message`, and in `changes` the deterministic diff of the OpenAPI spec (operations and schemas added, removed and modified) for automation to act on. Page with `before` set to the previous page's `nextCursor`.

Account billing snapshot (plan, cycle, balance, caps, status)

The billing "wallet/statement" view: current plan, billing cycle, accrued balance + remaining credits this period, spend caps, and payment / access status. This is the billing half of the legacy `/v1/usage-stats` snapshot. The per-product consumption half is metering and lives on `GET /v1/usage`. Accounts on usage-based billing get a populated `balance`; legacy Stripe accounts get `balance: null` plus a deprecated `legacy.limits` block and, when payment-blocked, `status.openInvoiceUrl` / `status.declineReason`.