← Back to docs

IRC Log API Reference (current)

Language: EN | EN | SV

IRC Log API Reference (current)

Base URL: https://tools.tornevall.net/irc/api
Rate limit: typically 60 requests/minute

Authentication

The read endpoints below are public.
You may still send a bearer token if your client already uses token auth:

Authorization: Bearer YOUR_API_TOKEN

Endpoints

GET /irc/api/networks

Fetch networks.

Query

Parameter Type Required Description
source string No production (default) or sandbox

Response (example)

{
  "success": true,
  "networks": [
    { "id": 1, "name": "ircnet" }
  ]
}

GET /irc/api/networks/{networkId}/channels

Fetch channels for a network.

Path

Parameter Type Required
networkId integer Yes

Query

Parameter Type Required Description
source string No production (default) or sandbox

Response (example)

{
  "success": true,
  "channels": [
    {
      "id": 1,
      "name": "#sweden",
      "first_date": "1999-01-01 00:00:00",
      "last_date": "2026-01-01 00:00:00",
      "event_count": 123456
    }
  ],
  "source": "production"
}

GET /irc/api/logs

Fetch log rows with filtering, full-text search, and pagination.

Query

Parameter Type Required Description
network_id integer No Filter by network
channel_id integer No Filter by channel
q string No Free text in message/nick/channel (and target/to_nick where available). Supports +include / -exclude term syntax, including quoted phrases like +"very old flood"
include_terms string No Explicit include terms (space/comma separated). All listed terms must match
exclude_terms string No Explicit exclude terms (space/comma separated). Listed terms are filtered out
nick string No Person/nick filter (alias-aware)
recipient string No Exact nick/target/to_nick
private_only boolean No Restrict to PM rows
date date No Exact day (YYYY-MM-DD)
date_from date No Date range start
date_to date No Date range end
datetime_from datetime No Date-time range start (YYYY-MM-DD HH:MM:SS)
datetime_to datetime No Date-time range end (YYYY-MM-DD HH:MM:SS)
limit integer No 1-1000, default 100
offset integer No >=0, default 0
source string No production (default) or sandbox
include_netsplit boolean No Include server/net split+merge rows (false by default)
bulk_netsplit boolean No When include_netsplit=1, collapse bursts into one row (true by default)
aggregate string No dates returns unique date count/span instead of normal row list

Date precedence

  1. date
  2. datetime_from / datetime_to
  3. date_from / date_to

Response (example)

{
  "success": true,
  "source": "production",
  "total": 42,
  "limit": 50,
  "offset": 0,
  "results": [
    {
      "id": 123,
      "event_type": "PRIVMSG",
      "occurred_at": "1999-04-14 15:12:00",
      "nick": "TT_",
      "message_text": "Hello",
      "channel_id": 1,
      "channel_name": "#sweden"
    }
  ],
  "nick_profile": null
}

Error format

{
  "success": false,
  "error": "Error message"
}

Common status codes: 200, 422, 429, 500.

Examples

curl "https://tools.tornevall.net/irc/api/networks?source=production"
curl "https://tools.tornevall.net/irc/api/networks/1/channels?source=production"
curl "https://tools.tornevall.net/irc/api/logs?network_id=1&channel_id=1&source=production&q=nu+d%C3%A5&limit=4&offset=0"
curl "https://tools.tornevall.net/irc/api/logs?network_id=1&channel_id=1&source=production&q=%2Bflood+%2B1999+-%22received+server%22&limit=100&offset=0"
curl "https://tools.tornevall.net/irc/api/logs?network_id=1&channel_id=1&source=production&datetime_from=1999-04-14+13:55:00&datetime_to=1999-04-14+16:08:00"

Legacy

/api/irclog/* is legacy and should not be used for new integrations.


Last Updated: 2026-07-21
Version: 2.0