---
title: "List question banks"
method: GET
path: "/v2/question-banks/"
tags: ["Question Banks"]
---

# List question banks

`GET /v2/question-banks/`

List live question banks for the authenticated organization.

**Required OAuth scope:** `question-banks:read`

## Query parameters

- `filter[name]` string, nullable — Question bank name. Case-insensitive exact match.
- `filter[updated_since]` string, date-time, nullable — ISO-8601 timestamp with timezone offset (e.g. ``2024-01-01T00:00:00Z``); returns question banks updated at or after this time. Naive datetimes without an offset are rejected with 422.

## Response `200`

OK

- PaginatedListResponseQuestionBankResource
  - `data` QuestionBankResource[], required — The resources on this page, in cursor order.
    - `type` 'question-banks' — Always "question-banks".
    - `id` string, required — Opaque question bank ID. Use in URL paths.
    - `attributes` QuestionBankAttributes, required — Attributes of a question-bank resource object. Fields mirror the ``quiz.models.QuestionBank`` columns exposed on the public API. ``organization`` and internal primary keys are deliberately not exposed — ``id`` (obfuscated) and ``external_id`` (UUID5) are the only identifiers a client sees.
      - `name` string, required — Question bank name.
      - `external_id` string, required — Stable UUID5 for cross-system correlation.
      - `created_at` string, date-time, required — Timestamp when the question bank was created.
      - `modified_at` string, date-time, required — Timestamp when the question bank was last modified.
    - `links` object, nullable — Self and related links.
  - `meta` object, nullable — Pagination metadata, e.g. {"page_size": 25}.
  - `links` object, nullable — Pagination links, e.g. {"self": "...", "next": "...", "prev": null}.
  - `has_more` boolean, required — Whether additional pages exist after this one.
  - `next_cursor` string, nullable — Opaque cursor to pass as ``page[cursor]`` for the next page; null on the last page.
  - `included` object[], nullable — Related resources requested via ?include=. Absent when no include was requested.

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `422` — Unprocessable Entity
- `500` — Internal Server Error

---

[API](https://skmtc.net/skilljar/apis/skilljar-api-v2.md) · [All operations](https://skmtc.net/skilljar/apis/skilljar-api-v2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/skilljar/skilljar-api-v2/revisions/f8025de20169/schema)
