PrairieLog API

Real-time app alerting for small apps

Send logs from your app and get alerts in Slack or Discord. Lightweight relay for small apps — no log warehouse required.

Try the Live Demo API Guide (curl)
Webhook first Slack and Discord alerts Token scoped Server-side ingestion only No warehouse Short-lived relay by design

How it works

PrairieLog API sends you important alerts, here's the flow:

  1. Alert webhook

    Your Slack or Discord webhook URL — where you want PrairieLog to send alerts.

  2. Ingestion token

    A secret your app uses to send logs to PrairieLog. You will want to hang onto it once you generate one.

  3. Send ERROR logs

    POST JSON formatted logs to /api/v1/log-events with the X-Ingestion-Token header.

  4. Get alerts

    Matching ERROR logs are aggregated, then delivered to your alert webhook. INFO/WARN do not alert as of now.

Add to your app

Your app or service sends ERROR logs to PrairieLog; PrairieLog forwards aggregated alerts/messages to the Slack or Discord webhook you configure.

  1. Paste your alert webhook in the live demo to verify Slack/Discord delivery
  2. Copy your ingestion token and starter code from the demo
  3. Call it from your backend when an ERROR occurs
Node / server-side
// Keep PRAIRIELOG_TOKEN in env — never in frontend bundles
const PRAIRIELOG_TOKEN = process.env.PRAIRIELOG_TOKEN;

async function reportError(message, logger = "my-app") {
  await fetch("__API_BASE_URL__/api/v1/log-events", {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      "X-Ingestion-Token": PRAIRIELOG_TOKEN
    },
    body: JSON.stringify({
      id: crypto.randomUUID(),
      level: "ERROR",
      message,
      occurredAt: new Date().toISOString(),
      logger
    })
  });
}

// await reportError("Payment failed for user 123");

Fastest path: run the live demo — no sign-in needed — to test your alert webhook. Set up a real project later from the dashboard.

About PrairieLog API

PrairieLog is a lightweight relay. Logs are held in memory briefly for aggregation, then alerts go out to your Slack or Discord channel. Logs are not stored long-term.

Ingestion tokens are shown once at creation. Save yours in a server environment variable — not in browser code or git.

Production apps should send logs from the backend only, this portal is not a client side logging service.

Explore the portal