Skip to content

Docs / Getting started

Sending logs to Rudow

There are three ways to get logs into Rudow — pick whichever fits your stack. All three send data to the same ingest API, so you can mix and match across services. Once your logs are in, connect an MCP client to query them from any AI tool.

Integration methods

1. Get an ingest API key

  1. Go to Settings → Projects in the Rudow dashboard.
  2. Select your project.
  3. Under API keys, click Create key.
  4. Copy it — it starts with alog_.
This key identifies which project your logs belong to. Keep it in an environment variable, never commit it to source control.

2. Direct API (any language)

Send a POST request to the ingest endpoint with your API key and one or more log entries.

  • Endpoint: https://api.rudow.ai/v1/ingest
  • Auth: Authorization: Bearer <your-alog_-key>
  • Body: { "entries": [ ... ] } — up to 1000 entries per request
Terminal
curl -X POST https://api.rudow.ai/v1/ingest \
  -H "Authorization: Bearer <your-alog_-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "entries": [
      {
        "level": "info",
        "message": "server started",
        "source": "backend",
        "attributes": { "port": 8080 }
      }
    ]
  }'

Entry fields

FieldTypeRequiredNotes
messagestringyesThe log message. Min length 1.
levelenumnoOne of debug, info, warn, error, fatal. Defaults to info.
sourcestringnoFree-form label, e.g. "backend", "worker". Defaults to "backend".
timestampISO 8601 stringnoDefaults to receipt time if omitted.
attributesobjectnoAny structured metadata to attach to the entry.

3. Node.js SDK

View on npm

@rudow/node-logger batches log entries and ships them to the ingest API. It also exports a Pino transport and a Winston stream transport for services already using those loggers.

Terminal
npm install @rudow/node-logger
logger.ts
import { createLogger } from "@rudow/node-logger";

const logger = createLogger({
  apiKey: process.env.RUDOW_API_KEY!, // your project's ingest key
});

logger.info("server started", { port: 8080 });
logger.error("checkout failed", { orderId, status: 500 });

Set RUDOW_API_KEY in your environment (e.g. .env) rather than hardcoding the key.

4. Python SDK

View on PyPI

rudow batches log entries and ships them to the ingest API. Works with any Python backend (FastAPI, Flask, Django, etc.).

Terminal
pip install rudow
logger.py
import os

from rudow import create_logger

logger = create_logger({
    "api_key": os.environ["RUDOW_API_KEY"],
})

logger.info("Server started", {"port": 8000})
logger.error("Database connection failed", {"error": "ECONNREFUSED"})

Read the key from an environment variable (e.g. os.environ['RUDOW_API_KEY']) rather than hardcoding it.

5. MCP server

Ingestion gets logs in; MCP gets answers out. Rudow exposes a Model Context Protocol server so Claude Code, Claude Desktop, Cursor, Windsurf or your own agent can query your logs and metrics directly — with scoped, revocable keys.

Connecting an MCP client

Create a key, wire up the config, and see every tool the assistant gets.

Read the MCP guide

6. Verify it's working

Go to your project's Logs tab in the Rudow dashboard — entries should appear within a few seconds of being sent. If nothing shows up, check:

  • The API key is correct and belongs to the right project.
  • Your request body matches the shape above (entries must be a non-empty array).
  • You're getting a 2xx response, not a 401 (bad/missing key) or 400 (validation error).

Ready to send your first log?

Create a project, mint an ingest key, and you're live in minutes.