# 4chan API
> Live read-only access to the 4chan imageboard, served straight from its official JSON API — one of the most influential anonymous forums on the internet and a primary source of internet culture, exposed as clean JSON with the HTML stripped to plain text. The boards endpoint lists every one of 4chan's ~77 boards with its code, title, worksafe flag, pages, threads-per-page and a description, from /g/ (Technology) and /v/ (Video Games) to /news/, /sci/ and /pol/. The catalog endpoint returns every live thread on a board summarized — the opening post's subject and a plain-text teaser of its comment, the reply and image counts, the sticky and closed flags and when it was last bumped — sorted by activity, replies or images: the front page of the board as data. The hot endpoint self-discovers and returns the single most active thread on a board right now, fully expanded with the original post and its top replies, so you never need a thread id that has expired. The thread endpoint returns one specific thread in full by its id — the original post and every reply with author name, timestamp, plain-text comment and image filename — and falls back to the current top thread when no id is given. Everything is the live board state, nothing stored. This is the imageboard layer for any social-listening, trend-tracking, meme-research, moderation or bot app. Live from 4chan's JSON API. Distinct from Reddit, Hacker News and Lemmy APIs — this is 4chan's boards, catalogs and threads. Some boards are NSFW (worksafe flag provided). 5 endpoints, no key on our side, nothing cached.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/fourchan-api/..."
```

## Pricing
- **Free** (Free) — 1,500 calls/Mo, 3 req/s
- **Starter** ($7/Mo) — 30,000 calls/Mo, 8 req/s
- **Pro** ($19/Mo) — 180,000 calls/Mo, 20 req/s
- **Mega** ($45/Mo) — 1,000,000 calls/Mo, 50 req/s

## Endpoints

### Imageboard

#### `GET /v1/boards` — All boards

**Parameters:**
- `worksafe` (query, optional, string) — true to return only worksafe (SFW) boards

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/fourchan-api/v1/boards"
```

**Response:**
```json
{
    "data": {
        "count": 77,
        "boards": [
            {
                "board": "3",
                "pages": 10,
                "title": "3DCG",
                "worksafe": true,
                "bump_limit": 310,
                "description": "\"/3/ - 3DCG\" is 4chan's board for 3D modeling and imagery.",
                "image_limit": 150,
                "threads_per_page": 15
            },
            {
                "board": "a",
                "pages": 10,
                "title": "Anime & Manga",
                "worksafe": true,
                "bump_limit": 500,
                "description": "\"/a/ - Anime & Manga\" is 4chan's imageboard dedicated to the discussion of Japanese animation and manga.",
                "image_limit": 300,
                "threads_per_page": 15
            },
            {
                "board": "aco",
                "pages": 10,
                "title": "Adult Cartoons",
                "worksafe": false,
                "bump_limit": 300,
                "description": "\"/aco/ - Adult Cartoons\" is 4chan's imageboard for posting western-styled adult cartoon artwork.",
                "image_limit": 300,
                "threads_per_page": 15
            },
            {
                "board": "adv",
                "pages": 10,
                "title": "Advice",
                "worksafe": true,
                "bump_limit": 310,
                "description": "\"/adv/ - Advice\" is 4chan's board for giving
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/catalog` — A board's live catalog

**Parameters:**
- `board` (query, required, string) — Board code Example: `g`
- `sort` (query, optional, string) — bump (default), replies or images Example: `replies`
- `limit` (query, optional, string) — Max threads (default 50, max 200) Example: `25`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/fourchan-api/v1/catalog?board=g&sort=replies&limit=25"
```

**Response:**
```json
{
    "data": {
        "sort": "replies",
        "board": "g",
        "count": 25,
        "title": "Technology",
        "source": "4chan",
        "threads": [
            {
                "no": 109007468,
                "url": "https://boards.4chan.org/g/thread/109007468",
                "name": "Anonymous",
                "board": "g",
                "closed": false,
                "images": 57,
                "sticky": false,
                "teaser": "/lmg/ - a general dedicated to the discussion and development of local language models. Previous threads: >>109001981 & >>108997418 ►News >(06/07) llama : add Gemma4 MTP #23398 MERGED: https://github.com/ggml-org/llama.…",
                "replies": 462,
                "subject": "/lmg/ - Local Models General",
                "last_modified": 1781003879
            },
            {
                "no": 109003462,
                "url": "https://boards.4chan.org/g/thread/109003462",
                "name": "Anonymous",
                "board": "g",
                "closed": false,
                "images": 57,
                "sticky": false,
                "teaser": "A general for Frontier Chads, Opencode builders on a budget. Pick your model and talk shit. ## What “vibe coding” is, and how to do it https://simonwillison.net/2025/Mar/19/vibe-coding/ https://simonwillison.net/2025/Ma…",
                "replies": 363,
                "subject": "/vcg/ - vibe coding general: \"human moat\" edition",
 
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/hot` — Hottest thread on a board

**Parameters:**
- `board` (query, required, string) — Board code Example: `g`
- `limit` (query, optional, string) — Max replies to include (default 30) Example: `20`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/fourchan-api/v1/hot?board=g&limit=20"
```

**Response:**
```json
{
    "data": {
        "no": 109007468,
        "op": {
            "no": 109007468,
            "name": "Anonymous",
            "time": 1780934582,
            "image": "1752107789693502.jpg",
            "images": 57,
            "comment": "/lmg/ - a general dedicated to the discussion and development of local language models. Previous threads: >>109001981 & >>108997418 ►News >(06/07) llama : add Gemma4 MTP #23398 MERGED: https://github.com/ggml-org/llama.cpp/pull/23398 >(06/05) dots.tts 2B released: https://hf.co/rednote-hilab/dots.tts-soar >(06/05) Gemma 4 QAT models released: https://blog.google/innovation-and-ai/technology/developers-tools/quantization-aware-training-gemma-4 >(06/04) Higgs Audio v3 TTS released: https://boson.ai/blog/higgs-audio-v3-tts ►News Archive: https://rentry.org/lmg-news-archive ►Glossary: https://rentry.org/lmg-glossary ►Links: https://rentry.org/LocalModelsLinks ►Official /lmg/ card: https://files.catbox.moe/cbclyf.png ►Getting Started https://rentry.org/lmg-lazy-getting-started-guide https://rentry.org/lmg-build-guides https://rentry.org/IsolatedLinuxWebService https://rentry.org/recommended-models https://rentry.org/samplers https://rentry.org/MikupadIntroGuide ►Further Learning https://rentry.org/machine-learning-roadmap https://rentry.org/llm-training https://rentry.org/LocalModelsPapers ►Benchmarks LiveBench: https://livebench.ai Programming: https://swe-rebench.com Agentic Coding: https://deepswe.datacurve.ai Context Le
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/thread` — One thread in full

**Parameters:**
- `board` (query, required, string) — Board code Example: `g`
- `no` (query, optional, string) — Thread number; omit to get the current top thread
- `limit` (query, optional, string) — Max replies (default 50, max 200) Example: `50`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/fourchan-api/v1/thread?board=g&limit=50"
```

**Response:**
```json
{
    "data": {
        "no": 109007468,
        "op": {
            "no": 109007468,
            "name": "Anonymous",
            "time": 1780934582,
            "image": "1752107789693502.jpg",
            "images": 57,
            "comment": "/lmg/ - a general dedicated to the discussion and development of local language models. Previous threads: >>109001981 & >>108997418 ►News >(06/07) llama : add Gemma4 MTP #23398 MERGED: https://github.com/ggml-org/llama.cpp/pull/23398 >(06/05) dots.tts 2B released: https://hf.co/rednote-hilab/dots.tts-soar >(06/05) Gemma 4 QAT models released: https://blog.google/innovation-and-ai/technology/developers-tools/quantization-aware-training-gemma-4 >(06/04) Higgs Audio v3 TTS released: https://boson.ai/blog/higgs-audio-v3-tts ►News Archive: https://rentry.org/lmg-news-archive ►Glossary: https://rentry.org/lmg-glossary ►Links: https://rentry.org/LocalModelsLinks ►Official /lmg/ card: https://files.catbox.moe/cbclyf.png ►Getting Started https://rentry.org/lmg-lazy-getting-started-guide https://rentry.org/lmg-build-guides https://rentry.org/IsolatedLinuxWebService https://rentry.org/recommended-models https://rentry.org/samplers https://rentry.org/MikupadIntroGuide ►Further Learning https://rentry.org/machine-learning-roadmap https://rentry.org/llm-training https://rentry.org/LocalModelsPapers ►Benchmarks LiveBench: https://livebench.ai Programming: https://swe-rebench.com Agentic Coding: https://deepswe.datacurve.ai Context Le
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Spec

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/fourchan-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "source": "4chan read-only JSON API (a.4cdn.org; live)",
        "service": "fourchan-api",
        "endpoints": {
            "GET /v1/hot": "The single hottest thread on a board right now, fully expanded (board=g).",
            "GET /v1/meta": "This document.",
            "GET /v1/boards": "All boards (worksafe=true to filter to SFW only).",
            "GET /v1/thread": "One thread in full by id (board=g, no=<id>); omit no= to get the current top thread.",
            "GET /v1/catalog": "A board's live catalog summarized (board=g; sort=bump|replies|images, limit)."
        },
        "description": "Live read-only access to the 4chan imageboard from its official JSON API: every board with code, title, worksafe flag and description; a board's full live catalog summarized (OP subject, plain-text teaser, reply/image counts, sticky/closed, last bump), sorted by activity; one thread in full (OP + every reply, HTML stripped to plain text); and the single hottest thread on a board right now, self-discovered so the id never expires. Live board state, nothing stored. Distinct from Reddit, Hacker News and Lemmy APIs — this is 4chan's boards, catalogs and threads.",
        "upstream_status": "ok",
        "boards_available": 77
    },
    "meta": {
        "timestamp": "2026-06-09T11:38:35.285Z",
        "request_id": "a7d3f87b-d3d1-40ba-9556-3a591e2ac0ab"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```


---
Marketplace page: https://www.oanor.com/api/fourchan-api
OpenAPI spec: https://www.oanor.com/api/fourchan-api/openapi.json
