API Overview

The EdLog API allows you to programmatically send events, manage projects, and retrieve data from your monitoring dashboard. All API requests use JSON and require authentication via API keys.

Base URL

https://your-edlog-domain.com/api/v1

Authentication

All API requests require authentication using an API key. Include your API key in the Authorization header:

Authorization: Bearer YOUR_API_KEY

Security: Keep your API keys secure. Never commit them to version control or expose them in client-side code.

Request Format

All POST and PUT requests must include a JSON body with the appropriate Content-Type header:

Content-Type: application/json

Response Format

All responses are returned as JSON. Successful responses will have appropriate HTTP status codes:

Status Code Description
200 OK Request successful
201 Created Resource created successfully
400 Bad Request Invalid request format or parameters
401 Unauthorized Invalid or missing API key
404 Not Found Resource not found
429 Too Many Requests Rate limit exceeded
500 Internal Server Error Server error

Error Responses

Error responses include a JSON object with error details:

{
  "error": {
    "code": "validation_error",
    "message": "Validation failed",
    "details": {
      "project_key": ["can't be blank"],
      "type": ["is not included in the list"]
    }
  }
}

Rate Limiting

API endpoints are rate-limited to prevent abuse. The following limits apply:

  • Global: 10,000 requests/hour (system-wide)
  • Per-Account: 5,000 requests/hour
  • Per-Project: 1,000 requests/hour
  • Burst: 100 requests/minute per project

Rate limit information is included in response headers:

X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
X-RateLimit-Reset: 1640995200
X-Burst-Limit: 100
X-Burst-Remaining: 99

Pagination

List endpoints support pagination using query parameters:

  • page - Page number (default: 1)
  • per_page - Items per page (default: 25, max: 100)

Example:

GET /api/v1/events?page=2&per_page=50

Paginated responses include metadata:

{
  "data": [...],
  "meta": {
    "current_page": 2,
    "total_pages": 10,
    "total_count": 250,
    "per_page": 25
  }
}

Available Endpoints

Webhook Events

  • POST /webhooks - Send a webhook event
  • GET /events - List events
  • GET /events/:id - Get event details

Projects

  • GET /projects - List projects
  • GET /projects/:id - Get project details
  • PUT /projects/:id - Update project

Tiles

  • GET /tiles - List dashboard tiles
  • GET /tiles/:id - Get tile details
  • GET /tiles/:id/state - Get tile current state

Notifications

  • GET /notifications - List notification services
  • POST /notifications/:id/send - Send test notification

System

  • GET /rate_limits - Check current rate limits
  • GET /health - Health check endpoint