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