jService website screenshot

jService

jService is an open source Ruby on Rails trivia API that serves approximately 200,000 Jeopardy! questions, answers, and categories scraped from the J! Archive fan site. The original public deployment at jservice.io is no longer operational, but the project (sottenad/jService, MIT licensed) remains available for self-hosting against PostgreSQL. The API exposes random clues, final Jeopardy clues, filtered clue queries, category listings, single-category lookup, and invalid-clue reporting under /api/*.

1 APIs 0 Features
Games And ComicsTriviaJeopardyOpen SourceRubyRailsPublic APIs

APIs

jService Trivia API

REST/JSON API exposing Jeopardy! clues, categories, and random questions, designed for trivia apps, study tools, chatbots, and game shows. Self-hosted against PostgreSQL; the hi...

Collections

Semantic Vocabularies

Jservice Context

4 classes · 12 properties

JSON-LD

API Governance Rules

jService API Rules

11 rules · 6 errors 5 warnings

SPECTRAL

JSON Structure

Jservice Category Structure

5 properties

JSON STRUCTURE

Jservice Clue Structure

8 properties

JSON STRUCTURE

Example Payloads

Jservice Categories Example

4 fields

EXAMPLE

Jservice Category Example

4 fields

EXAMPLE

Jservice Clues Example

4 fields

EXAMPLE

Jservice Final Example

4 fields

EXAMPLE

Jservice Invalid Example

4 fields

EXAMPLE

Jservice Random Example

4 fields

EXAMPLE

Resources

🔗
Website
Website
💻
SourceCode
SourceCode
🔗
PublicAPIsListing
PublicAPIsListing
🔗
License
License
🔗
DataSource
DataSource

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: jService Trivia API
  version: 1.0.0
items:
- info:
    name: Clues
    type: folder
  items:
  - info:
      name: Get Random Clues
      type: http
    http:
      method: GET
      url: http://jservice.io/api/random
      params:
      - name: count
        value: ''
        type: query
        description: Number of clues to return (max 100).
    docs: Returns N random clues, including the parent category. Default 1, maximum 100.
  - info:
      name: Get Final Jeopardy Clues
      type: http
    http:
      method: GET
      url: http://jservice.io/api/final
      params:
      - name: count
        value: ''
        type: query
    docs: Returns N random Final Jeopardy clues (clues with no `value`). Default 1, maximum 100.
  - info:
      name: List Clues
      type: http
    http:
      method: GET
      url: http://jservice.io/api/clues
      params:
      - name: value
        value: ''
        type: query
        description: Filter by dollar value of the clue.
      - name: category
        value: ''
        type: query
        description: Filter by category ID.
      - name: min_date
        value: ''
        type: query
        description: Earliest airdate (parsed via Chronic, e.g. "2010-01-01").
      - name: max_date
        value: ''
        type: query
        description: Latest airdate (parsed via Chronic).
      - name: offset
        value: ''
        type: query
        description: Pagination offset.
      - name: game_id
        value: ''
        type: query
        description: Filter by Jeopardy! game ID.
    docs: List clues with optional filters. Page size is fixed at 100; use `offset` for pagination.
- info:
    name: Categories
    type: folder
  items:
  - info:
      name: List Categories
      type: http
    http:
      method: GET
      url: http://jservice.io/api/categories
      params:
      - name: count
        value: ''
        type: query
        description: Number of categories to return (max 100).
      - name: offset
        value: ''
        type: query
        description: Pagination offset.
    docs: List categories with offset/count pagination. Default count 1, maximum 100.
  - info:
      name: Get Single Category
      type: http
    http:
      method: GET
      url: http://jservice.io/api/category
      params:
      - name: id
        value: ''
        type: query
        description: Category ID.
    docs: Get one category by ID, including all of its clues.
- info:
    name: Moderation
    type: folder
  items:
  - info:
      name: Mark Clue Invalid
      type: http
    http:
      method: POST
      url: http://jservice.io/api/invalid
      params:
      - name: id
        value: ''
        type: query
        description: Clue ID to flag as invalid.
    docs: Increment the `invalid_count` for a clue, used to flag bad questions/answers.
bundled: true