Documentation

Getting Started

Logify is an open-source log management platform that lets you ingest, search, and visualize your application logs in real-time. Get up and running in under 5 minutes.

1

Create an account

Sign up at logify.dev to get access to your dashboard. No credit card required.

2

Create a project

Navigate to your dashboard and create a new project. Each project has its own isolated log stream, API keys, and team settings.

3

Generate an API key

Go to Project Settings → API Keys and generate a new key. Keep it safe -- you will need it to authenticate requests.

4

Send your first log

Use the REST API to send a log entry. Here is a quick example:

curl -X POST https://api.logify.dev/api/v1/logs \
  -H "Content-Type: application/json" \
  -H "X-API-Key: your-api-key" \
  -d '{"level":"info","message":"Hello from Logify!"}'

Authentication

All API requests must be authenticated using an API key. API keys are scoped to a single project and can be created or revoked from your dashboard.

How API keys work

  • Each API key is tied to a specific project. Logs sent with that key are stored in the corresponding project.
  • Keys are shown only once at creation time. Store them securely in environment variables.
  • You can revoke a key at any time. Revoked keys immediately stop working.
  • The number of API keys you can create depends on your plan (Free: 1, Pro: 10, Enterprise: unlimited).

Using your API key

Pass your API key in the X-API-Key header with every request:

X-API-Key: logify_k_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Security notice

Never expose your API key in client-side code, public repositories, or browser requests. Always send logs from your backend or a secure server environment.

Log Ingestion API

The log ingestion endpoint accepts structured log data and stores it in your project. Logs are available for search and streaming within seconds of ingestion.

Endpoint

POST /api/v1/logs

Headers

HeaderValueRequired
Content-Typeapplication/jsonYes
X-API-KeyYour project API keyYes

Request body

FieldTypeDescription
level"debug" | "info" | "warn" | "error" | "fatal"Required. The severity level of the log entry.
messagestringRequired. The log message content.
servicestring Name of the service or application emitting the log.
environment"production" | "staging" | "development" The deployment environment.
timestampstring (ISO 8601) Custom timestamp. Defaults to server time if omitted.
metaobject Arbitrary key-value pairs for custom metadata.
traceIdstring Distributed trace ID for correlating logs across services.
spanIdstring Span ID within a distributed trace.
userIdstring The user associated with this log entry.
requestIdstring Request correlation ID for tracking a single request.
hoststring The hostname or server name where the log originated.
tagsstring[] Array of searchable tags for filtering and categorization.

Example requests

curl -X POST https://api.logify.dev/api/v1/logs \
  -H "Content-Type: application/json" \
  -H "X-API-Key: your-api-key-here" \
  -d '{
    "level": "info",
    "message": "User signed in successfully",
    "service": "auth-service",
    "environment": "production",
    "meta": {
      "userId": "usr_12345",
      "method": "oauth"
    },
    "tags": ["auth", "login"]
  }'

Response formats

200 Success
{
  "success": true,
  "data": {
    "id": "log_abc123def456",
    "level": "info",
    "message": "User signed in successfully",
    "service": "auth-service",
    "environment": "production",
    "timestamp": "2026-02-23T10:30:00.000Z",
    "meta": {
      "userId": "usr_12345",
      "method": "oauth"
    },
    "tags": ["auth", "login"]
  }
}
422 Validation Error
{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Invalid log level. Must be one of: debug, info, warn, error, fatal",
    "details": [
      {
        "field": "level",
        "message": "Invalid enum value"
      }
    ]
  }
}
429 Rate Limit Exceeded
{
  "success": false,
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "Rate limit exceeded. Try again in 45 seconds.",
    "retryAfter": 45
  }
}

Rate Limits

API rate limits protect the platform and ensure fair usage across all users. Limits are applied per API key.

PlanRate LimitBurst
Free500 req/day10 req/sec
Pro50,000 req/day100 req/sec
EnterpriseCustomCustom

Rate limit headers

Every API response includes rate limit information in the headers:

X-RateLimit-Limit: 500
X-RateLimit-Remaining: 438
X-RateLimit-Reset: 1708732800

Handling rate limits

When you hit a rate limit, the API returns a 429 Too Many Requests response. Implement exponential backoff in your client:

async function sendLogWithRetry(payload, retries = 3) {
  for (let i = 0; i < retries; i++) {
    const res = await fetch("/api/v1/logs", {
      method: "POST",
      headers: { "X-API-Key": API_KEY },
      body: JSON.stringify(payload),
    });

    if (res.status !== 429) return res.json();

    const retryAfter = res.headers.get("Retry-After") || 2 ** i;
    await new Promise(r => setTimeout(r, retryAfter * 1000));
  }
  throw new Error("Rate limit exceeded after retries");
}

SDKs

Official SDKs are coming soon to make integration even easier. In the meantime, you can use the REST API directly from any language.

Node.js / TypeScript

Coming soon
npm install @logify/node

Python

Coming soon
pip install logify-python

Go

Coming soon
go get github.com/logify/logify-go

Want to contribute an SDK?

We welcome community SDKs in any language. Check out our contributing guide on GitHub to get started.

Dashboard

The Logify dashboard provides a real-time view of your logs with powerful search and filtering capabilities.

Log Viewer

The main log viewer displays a real-time feed of your ingested logs. Each log entry shows the timestamp, severity level, service name, and message. Click any entry to expand its full details including metadata, trace IDs, and tags.

2026-02-23 10:30:01INFOauth-svcUser signed in successfully
2026-02-23 10:30:02WARNapi-gwRate limit approaching threshold
2026-02-23 10:30:03ERRORpaymentsPayment processing failed: timeout
2026-02-23 10:30:04DEBUGworkerJob queue processed: 142 items

Search

Full-text search across all log messages and metadata. Use the search bar to find specific logs instantly. Searches support the following syntax:

# Simple text search
payment failed

# Search by field
service:auth-service level:error

# Search with tags
tag:deployment environment:production

# Search by trace ID
traceId:abc-123-def-456

Filters

Use the sidebar filters to narrow down logs by:

  • Log level -- Filter by debug, info, warn, error, or fatal
  • Service -- Filter by service or application name
  • Environment -- Filter by production, staging, or development
  • Time range -- Select a custom time window or use presets (last 15m, 1h, 24h, 7d)
  • Tags -- Filter by one or more searchable tags

Was this page helpful? Let us know on GitHub .