Skip to main content

DOCUMENTATION

Build against a small, predictable trivia API.

Use the answer-free feed for playable trivia, server-scored sessions for games and agents, or the Pro Content API when your licensed product needs the correct option ID.

API overview

The REST base URL is https://206-81-1-100.sslip.io/api. Version 2 uses stable category slugs, opaque question and option IDs, JSON request bodies, and JSON responses. There is no bulk export or pagination endpoint.

MethodPathPurposePlan
GET/v2/categoriesList stable category slugsFree
GET/v2/questionsRandom answer-free questionsFree
POST/v2/quiz-sessionsStart a server-scored quizFree
GET/v2/quiz-sessions/{session_id}Resume a quizFree
POST/v2/quiz-sessions/{session_id}/answersSubmit and score an answerFree
GET/v2/content/questionsLicensed questions with correct option IDsPro

Quickstart

Create a normal Trivio account, open the API key dashboard, name a key, and copy its one-time secret. The dedicated guide includes cURL, JavaScript, and Python examples.

Authentication

REST calls use an API key in the HTTP Bearer header. Keys begin with trv_live_ and belong to your API organization. Use a separate named key for each app and environment.

Authorization header
Authorization: Bearer trv_live_your_key

API keys belong only on trusted servers. ChatGPT and MCP clients use OAuth account linking instead. Never paste a key into a chat or connector form.

Filters

Question feeds and quiz creation accept a deliberately small filter set. Filters combine with AND semantics; unsupported values return a controlled error rather than silently changing the request.

ParameterAccepted valuesDefault
limit1–50 for question feeds10
question_count1–10 for quiz sessions5
categoryA slug returned by /v2/categoriesAll categories
typemultiple_choice or true_falseBoth types

Difficulty is not currently published. Trivio does not invent subjective easy, medium, or hard labels for this catalog.

Categories

Discover category slugs before building a filter UI. Slugs are the stable API contract; display names can be shown to users.

List categories
curl "https://206-81-1-100.sslip.io/api/v2/categories" \
  -H "Authorization: Bearer $TRIVIO_API_KEY"

List answer-free questions

GET /api/v2/questions returns a randomized batch from the published catalog. Each question contains opaque option IDs and text but never identifies the correct choice.

Request
curl "https://206-81-1-100.sslip.io/api/v2/questions?limit=3&category=history&type=multiple_choice" \
  -H "Authorization: Bearer $TRIVIO_API_KEY"
Response
{
  "questions": [{
    "id": "018f...",
    "text": "Which planet is known as the Red Planet?",
    "options": [
      { "id": "opt_1", "text": "Mars" },
      { "id": "opt_2", "text": "Venus" },
      { "id": "opt_3", "text": "Jupiter" },
      { "id": "opt_4", "text": "Mercury" }
    ],
    "category": "Science & Nature",
    "type": "multiple_choice"
  }],
  "count": 1
}

Do not infer correctness from option order. Use a server-scored quiz session, or API Pro when your licensed product requires answer data.

Server-scored quiz sessions

Quiz sessions return one answer-free question at a time. Submit the current question and option IDs to receive correctness, the correct option, progress, score, and the next question.

Start a quiz
curl -X POST "https://206-81-1-100.sslip.io/api/v2/quiz-sessions" \
  -H "Authorization: Bearer $TRIVIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"question_count":5,"category":"history","type":"multiple_choice"}'
Submit the current answer
curl -X POST "https://206-81-1-100.sslip.io/api/v2/quiz-sessions/SESSION_ID/answers" \
  -H "Authorization: Bearer $TRIVIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"question_id":"QUESTION_ID","selected_option_id":"OPTION_ID"}'

Sessions accept 1–10 questions and expire after 30 minutes. Resume with GET /api/v2/quiz-sessions/{session_id}. Retrying the exact same submitted answer returns the prior result safely; changing an already-submitted answer returns 409.

Pro Content API

GET /api/v2/content/questions returns complete licensed question records, including decoys and correct_option_id. It requires an active API Pro plan and the content:read_answers scope.

Pro request
curl "https://206-81-1-100.sslip.io/api/v2/content/questions?limit=3&category=history&type=multiple_choice" \
  -H "Authorization: Bearer trv_live_your_pro_key"

Match correct_option_id to the corresponding entry in options. Commercial use in your own product is permitted on Pro; reselling, bulk-publishing, or recreating a competing question catalog is not. Review the developer terms before launch.

Connect ChatGPT with MCP

Trivio exposes a universal, stateless MCP server at https://206-81-1-100.sslip.io/api/mcp. It uses your normal Trivio account and OAuth connection, so you do not create or paste an API key into ChatGPT.

Universal MCP URL
https://206-81-1-100.sslip.io/api/mcp
  1. In ChatGPT, enable Developer mode under Settings → Security.
  2. Add a new MCP connection and enter the universal URL above.
  3. Choose client ID metadata (CIMD) when offered, then sign in to Trivio and approve the requested permissions.
  4. Return to ChatGPT and ask it to list categories or start a filtered quiz.

Available tools

  • list_trivia_categoriesDiscover stable category slugs.
  • start_trivia_quizChoose 1–10 questions, a stable category, and multiple-choice or true/false format.
  • submit_trivia_answerScore the current answer and receive the next question.
  • get_trivia_quizResume the current question and progress.
  • get_trivia_usageCheck plan and remaining monthly quota.

MCP never provides a raw answer-key feed. Questions and decoys are visible during play; the correct answer appears only after submission.

Starter prompts

  • “List the Trivio categories, then start a five-question history quiz.”
  • “Start a ten-question multiple-choice quiz about science and nature.”
  • “How much Trivio quota do I have left this month?”

Limits & usage

The Free plan includes 1,000 returned questions per calendar month; API Pro includes 100,000. Usage is measured in questions returned, not raw HTTP requests, and resets monthly.

  • X-API-Plan: active plan slug
  • X-API-Quota-Limit: monthly question allowance
  • X-API-Quota-Used: questions counted this month
  • X-API-Quota-Remaining: questions still available
  • X-Request-ID: identifier to include in support requests

When the limit is reached, Trivio returns 429 quota_exceeded. Plan and usage are visible in the developer dashboard.

Errors

Errors use a stable JSON envelope: { "error": "machine_code", "message": "Readable explanation" }. Log the response status, error code, and X-Request-ID. Never log the API key.

StatusMeaningTypical action
400Invalid filter or request bodyCorrect the named field
401Missing, invalid, or revoked keyCheck the Bearer header or create a new key
403Plan or scope does not allow the operationUse an answer-free route or review API Pro
404Session is unavailable to this keyCheck the session ID and credential
409Quiz question is not currentResume the session before retrying
410Quiz session expiredStart a new session
422No questions match the filtersBroaden category or type
429Monthly quota or request rate exceededBack off and inspect usage
503Catalog temporarily unavailableRetry with bounded backoff

Security, specification, and support

Treat every API key like a password. Keep it on your server, never commit it, rotate it if exposure is suspected, and use a different named key per integration. Revocation takes effect immediately.