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.
Create an account
Sign up at logify.dev to get access to your dashboard. No credit card required.
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.
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.
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
/api/v1/logsHeaders
| Header | Value | Required |
|---|---|---|
Content-Type | application/json | Yes |
X-API-Key | Your project API key | Yes |
Request body
| Field | Type | Description |
|---|---|---|
level | "debug" | "info" | "warn" | "error" | "fatal" | Required. The severity level of the log entry. |
message | string | Required. The log message content. |
service | string | Name of the service or application emitting the log. |
environment | "production" | "staging" | "development" | The deployment environment. |
timestamp | string (ISO 8601) | Custom timestamp. Defaults to server time if omitted. |
meta | object | Arbitrary key-value pairs for custom metadata. |
traceId | string | Distributed trace ID for correlating logs across services. |
spanId | string | Span ID within a distributed trace. |
userId | string | The user associated with this log entry. |
requestId | string | Request correlation ID for tracking a single request. |
host | string | The hostname or server name where the log originated. |
tags | string[] | 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
{
"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"]
}
}{
"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"
}
]
}
}{
"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.
| Plan | Rate Limit | Burst |
|---|---|---|
| Free | 500 req/day | 10 req/sec |
| Pro | 50,000 req/day | 100 req/sec |
| Enterprise | Custom | Custom |
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 soonnpm install @logify/node
Python
Coming soonpip install logify-python
Go
Coming soongo 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.
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 .