> ## Documentation Index
> Fetch the complete documentation index at: https://docs.interview.qode.world/llms.txt
> Use this file to discover all available pages before exploring further.

# List coding tasks

> List the coding task bank, filterable by difficulty, topic, and programming language. Paginated; size defaults to 20 and is capped at 100.



## OpenAPI

````yaml GET /coding-tasks
openapi: 3.1.0
info:
  title: Tracy Interview API
  description: >-
    Programmatically schedule AI-powered candidate interviews. Authenticate with
    an API key, list the jobs you can hire for, and create an interview by
    supplying the candidate's contact details, a CV link, and the job id.
  version: 1.0.0
  contact:
    name: Interview API support
    url: https://interview.gomu.ai
servers:
  - url: https://interview.qode.world/api/v1
    description: Production
  - url: https://interview.gomu.ai/api/v1
    description: Staging
security:
  - ApiKeyAuth: []
tags:
  - name: Interviews
    description: >-
      Create AI interviews for your candidates and list the jobs you can hire
      for.
  - name: Coding Interviews
    description: >-
      List the coding task bank and create or adjust coding interviews — either
      by picking explicit task ids or generating them randomly by topic,
      difficulty, and programming language.
  - name: System
    description: Service health.
paths:
  /coding-tasks:
    get:
      tags:
        - Coding Interviews
      summary: List coding tasks
      description: >-
        Returns the coding tasks (problems) available to attach to a coding
        interview, newest first. Results are paginated; `size` defaults to `20`
        and is capped at `100`.


        Use each item's `id` as input to `coding_task_ids` on `POST
        /coding-interviews`. To generate tasks randomly instead, pass a
        topic/language to the `generate` filters using the values from `GET
        /coding-topics` and `GET /coding-languages`.
      parameters:
        - name: page
          in: query
          description: Page index (1-based).
          required: false
          schema:
            type: integer
            minimum: 1
            default: 1
        - name: size
          in: query
          description: Number of tasks per page. Maximum is 100.
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 20
        - name: difficulty
          in: query
          description: Filter by difficulty.
          required: false
          schema:
            type: string
            enum:
              - EASY
              - MEDIUM
              - HARD
        - name: topics
          in: query
          description: >-
            Comma-separated list of topics to filter by — each a slug or name
            from `GET /coding-topics`.
          required: false
          schema:
            type: string
          example: arrays,backtracking
        - name: languages
          in: query
          description: >-
            Comma-separated list of programming languages to filter by — each a
            slug or name from `GET /coding-languages`.
          required: false
          schema:
            type: string
          example: python,java
        - name: q
          in: query
          description: Free-text search across task title and slug.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Paginated list of coding tasks.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListCodingTasksResponse'
              example:
                success: true
                data:
                  items:
                    - id: 123e4567-e89b-42d3-a456-426614174000
                      slug: two-sum
                      title: Two Sum
                      difficulty: EASY
                      topics:
                        - id: 7c1a9b2e-3d4f-4a5b-8c6d-9e0f1a2b3c4d
                          name: Arrays
                          slug: arrays
                          category: DATA_STRUCTURE
                      languages:
                        - id: b0c1d2e3-f4a5-4b6c-8d7e-9f0a1b2c3d4e
                          slug: python
                          name: Python
                  total: 1
                  page: 1
                  size: 20
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ValidationError'
        '500':
          $ref: '#/components/responses/ServerError'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    ListCodingTasksResponse:
      type: object
      properties:
        success:
          type: boolean
          example: true
        data:
          type: object
          properties:
            items:
              type: array
              items:
                $ref: '#/components/schemas/CodingTaskListItem'
            total:
              type: integer
              description: Total matching tasks across all pages.
            page:
              type: integer
              description: Echoed page index.
            size:
              type: integer
              description: Echoed page size.
    CodingTaskListItem:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Pass this to `coding_task_ids` on `POST /coding-interviews`.
        slug:
          type: string
        title:
          type: string
        difficulty:
          type: string
          enum:
            - EASY
            - MEDIUM
            - HARD
          nullable: true
        topics:
          type: array
          items:
            $ref: '#/components/schemas/CodingTaskTopic'
        languages:
          type: array
          items:
            $ref: '#/components/schemas/CodingTaskLanguage'
    Error:
      type: object
      properties:
        status:
          type: integer
          example: 401
        errors:
          oneOf:
            - type: string
            - type: array
              items:
                type: object
          description: Either a human-readable string or a list of Zod validation issues.
    CodingTaskTopic:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        slug:
          type: string
        category:
          type: string
          nullable: true
    CodingTaskLanguage:
      type: object
      properties:
        id:
          type: string
          format: uuid
        slug:
          type: string
        name:
          type: string
  responses:
    Unauthorized:
      description: API key missing, malformed, expired, or revoked.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            status: 401
            errors: Invalid API key
    ValidationError:
      description: >-
        Request body failed Zod validation. The `errors` field contains the
        issue list.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ServerError:
      description: Unexpected server-side failure. Safe to retry with exponential backoff.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    ApiKeyAuth:
      type: http
      scheme: bearer
      bearerFormat: Opaque token (starts with `qint_`)
      description: >-
        Provide the API key issued to you by your organization admin. Send it as
        `Authorization: Bearer <api-key>` on every request.

````