Docs

REST API

Call the ingest endpoint directly from any language — Python, PHP, Go, Ruby, or anything that can make an HTTP request.


Base URL

https://api.logit.now

Authentication

Pass your API key as a Bearer token in the Authorization header.

POST /api/ingest

Ingest a single event into a channel.

bash
curl -X POST https://api.logit.now/api/ingest \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "channel": "signups",
    "event": "New user signed up",
    "description": "alex@example.com just joined",
    "icon": "👤",
    "notify": true,
    "tags": { "plan": "pro" },
    "metadata": { "email": "alex@example.com" }
  }'

Python example:

python
import httpx

httpx.post(
    "https://api.logit.now/api/ingest",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={
        "channel": "payments",
        "event": "Payment received",
        "icon": "💳",
        "notify": True,
        "tags": {"plan": "starter"},
        "metadata": {"amount": 49, "email": "user@example.com"},
    },
)

Request body

FieldTypeRequiredDescription
channelstringYesChannel to log the event into
eventstringYesShort human-readable title
descriptionstringNoOne-line context string
iconstringNoEmoji shown in the inbox
notifybooleanNoSend a push notification (default: false)
tagsobjectNoKey-value pairs for filtering
metadataobjectNoArbitrary JSON object
trackingIdstringNoFirst event's id — links events into a timeline
inboxbooleanNoShow in realtime inbox (default: true)
projectIdstringNoProject ID (inferred from token if omitted)

Response

json
{ "success": true, "id": "evt_abc123", "trackingId": "evt_abc123" }

On the first event in a timeline, id and trackingId are equal. Pass this id as trackingId in subsequent events to group them.

Error codes

StatusMeaning
400Missing required fields or malformed JSON
401Missing or invalid API key
404Project not found for this API key
429Rate limit exceeded
500Internal server error