4chan Archive API

Per-board list of OP numbers for closed, archived threads.

OpenAPI Specification

4chan-archive-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: 4chan Read-Only JSON Archive API
  description: 'Read-only JSON API for the 4chan and 4channel imageboards, originally launched in September 2012. All endpoints are served as static JSON documents from `a.4cdn.org` over `http://` or `https://`. The API exposes only the public, anonymous read surface of the site: board metadata, board catalogs, board threadlists, archive listings, board index pages, and individual thread documents.

    There is no authentication, no posting, and no per-user write surface. Only `GET`, `HEAD`, and `OPTIONS` are accepted. CORS is enabled only for origins `boards.4chan.org` and `boards.4channel.org`.

    Clients MUST send no more than one request per second, MUST set thread-polling intervals to at least 10 seconds (preferably higher), and SHOULD use `If-Modified-Since` so that unchanged threads return `304 Not Modified`.'
  version: '2026-05-28'
  termsOfService: https://github.com/4chan/4chan-API#api-terms-of-service
  contact:
    name: 4chan API
    email: api@4chan.org
    url: https://github.com/4chan/4chan-API
  license:
    name: 4chan API Terms of Service
    url: https://github.com/4chan/4chan-API#api-terms-of-service
  x-generated-from: documentation
  x-source-url: https://github.com/4chan/4chan-API
  x-last-validated: '2026-05-28'
servers:
- url: https://a.4cdn.org
  description: Production 4chan read-only JSON API (HTTPS).
- url: http://a.4cdn.org
  description: Production 4chan read-only JSON API (HTTP, legacy clients only).
tags:
- name: Archive
  description: Per-board list of OP numbers for closed, archived threads.
paths:
  /{board}/archive.json:
    get:
      operationId: getBoardArchive
      summary: 4chan Get Board Archive
      description: Returns the list of archived (closed, read-only) thread OP numbers for the given board. Archived threads remain viewable until 4chan automatically deletes them. Not every board has archives enabled — boards without an archive return 404.
      tags:
      - Archive
      parameters:
      - $ref: '#/components/parameters/BoardPath'
      responses:
        '200':
          description: Successful response. Returns an array of archived OP numbers.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArchiveResponse'
              examples:
                GetBoardArchive200Example:
                  summary: Default getBoardArchive 200 response
                  x-microcks-default: true
                  value:
                  - 571958
                  - 572866
                  - 574195
                  - 574342
                  - 574378
                  - 574398
                  - 574417
                  - 574426
                  - 574435
                  - 574453
                  - 574486
                  - 574510
                  - 574586
                  - 574588
        '304':
          description: Not Modified.
        '404':
          description: Board not found or archive not enabled for this board.
        '503':
          description: Service Unavailable.
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  parameters:
    BoardPath:
      name: board
      in: path
      required: true
      description: Board directory short name (e.g. `a`, `b`, `g`, `pol`, `po`, `v`). The full list of valid values is the `board` field on each entry in `/boards.json`.
      schema:
        type: string
        pattern: ^[a-z0-9]+$
        minLength: 1
        maxLength: 8
        example: po
      example: po
  schemas:
    ArchiveResponse:
      type: array
      description: Top-level response from `/{board}/archive.json` — an array of archived OP numbers.
      items:
        type: integer
        description: An archived OP ID.
        example: 571958