Creed Quiz API

The quiz API from Creed — 4 operation(s) for quiz.

Operations 4

GET /api/quiz/eligible List Eligible Questions #
POST /api/quiz/questions Get Questions #
POST /api/quiz/answers Record Answers #
POST /api/quiz/rewards/claim Claim Reward #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/creed:creed-quiz-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

creed-quiz-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Creed Quiz API
  description: Creed API - Christian AI Chatbot
  version: 1.0.0
tags:
- name: Quiz
paths:
  /api/quiz/eligible:
    get:
      tags:
      - Quiz
      summary: List Eligible Questions
      description: 'Metadata for every question this user may still be asked, plus today''s

        persisted counts so a client with no local state can resume approximately.

        Selection, ordering and difficulty adaptation happen on the client.'
      operationId: list_eligible_questions_api_quiz_eligible_get
      security:
      - HTTPBearer: []
      parameters:
      - name: lang
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Lang
      - name: capability
        in: query
        required: false
        schema:
          type: integer
          default: 1
          title: Capability
      - name: challenge_date
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          title: Challenge Date
      - name: x-user-id
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-User-Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EligibleQuizQuestionsResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/quiz/questions:
    post:
      tags:
      - Quiz
      summary: Get Questions
      description: 'Full payloads (answer key included) for the requested ids. Unknown ids and

        ids above the client''s capability are silently omitted.'
      operationId: get_questions_api_quiz_questions_post
      security:
      - HTTPBearer: []
      parameters:
      - name: x-user-id
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-User-Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QuizQuestionsRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuizQuestionsResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/quiz/answers:
    post:
      tags:
      - Quiz
      summary: Record Answers
      operationId: record_answers_api_quiz_answers_post
      security:
      - HTTPBearer: []
      parameters:
      - name: x-user-id
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-User-Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecordQuizAnswersRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordQuizAnswersResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/quiz/rewards/claim:
    post:
      tags:
      - Quiz
      summary: Claim Reward
      description: 'Idempotent token grant for one reward checkpoint. 409 means the persisted

        answers do not yet justify the checkpoint (client should flush answers and

        retry); 503 means the reward row is missing from token_rewards.'
      operationId: claim_reward_api_quiz_rewards_claim_post
      security:
      - HTTPBearer: []
      parameters:
      - name: x-user-id
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-User-Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClaimQuizRewardRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClaimQuizRewardResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    RecordQuizAnswersResponse:
      properties:
        recorded:
          type: integer
          title: Recorded
      type: object
      required:
      - recorded
      title: RecordQuizAnswersResponse
    EligibleQuizQuestion:
      properties:
        id:
          type: integer
          title: Id
        difficulty:
          type: string
          enum:
          - easy
          - medium
          - hard
          title: Difficulty
        first_time_friendly:
          anyOf:
          - type: boolean
          - type: 'null'
          title: First Time Friendly
        attempt_state:
          type: string
          enum:
          - unseen
          - retry
          title: Attempt State
        attempts:
          type: integer
          title: Attempts
          default: 0
      type: object
      required:
      - id
      - difficulty
      - attempt_state
      title: EligibleQuizQuestion
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ClaimQuizRewardRequest:
      properties:
        kind:
          type: string
          enum:
          - initial
          - continued
          title: Kind
        challenge_date:
          type: string
          format: date
          title: Challenge Date
        index:
          anyOf:
          - type: integer
            minimum: 1.0
          - type: 'null'
          title: Index
      type: object
      required:
      - kind
      - challenge_date
      title: ClaimQuizRewardRequest
    EligibleQuizQuestionsResponse:
      properties:
        language:
          type: string
          title: Language
        questions:
          items:
            $ref: '#/components/schemas/EligibleQuizQuestion'
          type: array
          title: Questions
        today:
          $ref: '#/components/schemas/QuizDailySummary'
      type: object
      required:
      - language
      - questions
      - today
      title: EligibleQuizQuestionsResponse
    ClaimQuizRewardResponse:
      properties:
        granted:
          type: boolean
          title: Granted
        already_claimed:
          type: boolean
          title: Already Claimed
        checkpoint_key:
          type: string
          title: Checkpoint Key
        amount:
          type: integer
          title: Amount
        token_balance:
          anyOf:
          - type: integer
          - type: 'null'
          title: Token Balance
      type: object
      required:
      - granted
      - already_claimed
      - checkpoint_key
      - amount
      title: ClaimQuizRewardResponse
    QuizAnswerSubmission:
      properties:
        question_id:
          type: integer
          exclusiveMinimum: 0.0
          title: Question Id
        attempt:
          type: integer
          maximum: 2.0
          minimum: 1.0
          title: Attempt
        correct:
          type: boolean
          title: Correct
        challenge_date:
          type: string
          format: date
          title: Challenge Date
        phase:
          type: string
          enum:
          - initial
          - continued
          title: Phase
      type: object
      required:
      - question_id
      - attempt
      - correct
      - challenge_date
      - phase
      title: QuizAnswerSubmission
    QuizQuestion:
      properties:
        id:
          type: integer
          title: Id
        difficulty:
          type: string
          enum:
          - easy
          - medium
          - hard
          title: Difficulty
        first_time_friendly:
          anyOf:
          - type: boolean
          - type: 'null'
          title: First Time Friendly
        prompt:
          type: string
          title: Prompt
        choices:
          items:
            type: string
          type: array
          title: Choices
        correct_index:
          type: integer
          title: Correct Index
        explanation:
          type: string
          title: Explanation
        version:
          anyOf:
          - type: integer
          - type: 'null'
          title: Version
      type: object
      required:
      - id
      - difficulty
      - prompt
      - choices
      - correct_index
      - explanation
      title: QuizQuestion
    QuizQuestionsResponse:
      properties:
        questions:
          items:
            $ref: '#/components/schemas/QuizQuestion'
          type: array
          title: Questions
      type: object
      required:
      - questions
      title: QuizQuestionsResponse
    QuizQuestionsRequest:
      properties:
        ids:
          items:
            type: integer
          type: array
          maxItems: 50
          minItems: 1
          title: Ids
        lang:
          anyOf:
          - type: string
          - type: 'null'
          title: Lang
        capability:
          type: integer
          minimum: 1.0
          title: Capability
          default: 1
      type: object
      required:
      - ids
      title: QuizQuestionsRequest
    QuizDailySummary:
      properties:
        answered:
          type: integer
          title: Answered
          default: 0
        correct:
          type: integer
          title: Correct
          default: 0
        initial_answered:
          type: integer
          title: Initial Answered
          default: 0
        initial_correct:
          type: integer
          title: Initial Correct
          default: 0
        continued_answered:
          type: integer
          title: Continued Answered
          default: 0
        continued_correct:
          type: integer
          title: Continued Correct
          default: 0
        claimed_checkpoints:
          items:
            type: string
          type: array
          title: Claimed Checkpoints
          default: []
      type: object
      title: QuizDailySummary
    RecordQuizAnswersRequest:
      properties:
        answers:
          items:
            $ref: '#/components/schemas/QuizAnswerSubmission'
          type: array
          maxItems: 50
          minItems: 1
          title: Answers
      type: object
      required:
      - answers
      title: RecordQuizAnswersRequest
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Supabase JWT token
x-provenance:
  method: harvested
  publisher: Creed
  source: https://api.usecreed.com/openapi.json
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)