Skip to content
← Numo

Log ingestion

Send your application and job logs to Numo over a simple HTTP endpoint — no agent to run.

1. Create a stream

Open Numo Logs and click New stream. A stream is one ingest source with its own token — create one per app, service, or job. Each stream has an ingest URL you POST to.

2. Send logs

POST a single JSON object — or an array of them for batches — to your stream's ingest URL. level and message are the essentials; metadata and timestamp are optional.

curl -X POST https://api.numo.sh/logs/your-stream-token \
  -H "Content-Type: application/json" \
  -d '{"level":"error","message":"payment failed","metadata":{"user_id":"u_123","amount":4200}}'

Levels are debug, info, warn, and error. Ingest is fail-soft: it accepts your batch and returns quickly so logging never blocks your app.

3. Search, tail, and chart

  • Search matches across both the message and the metadata, so you can find a request id buried in a field.
  • Live tail streams new entries in as they arrive, honoring your current level and search filters.
  • Error-rate chart shows a 24-hour view of volume with errors and warnings broken out.

Retention:logs are kept for your plan's window and swept automatically after that. If a stream's token ever leaks, rotate it from the stream page — the old one stops working immediately.