Base URL: https://tools.tornevall.net/irc/api
Rate limit: typically 60 requests/minute
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
GET /irc/api/networksFetch 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}/channelsFetch 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/logsFetch 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
datedatetime_from / datetime_todate_from / date_toResponse (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
}
{
"success": false,
"error": "Error message"
}
Common status codes: 200, 422, 429, 500.
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"
/api/irclog/* is legacy and should not be used for new integrations.
Last Updated: 2026-07-21
Version: 2.0