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

# List roadmap items

> Published items, most backed first unless `orderBy` says otherwise, in the `BASIC` view unless `view` asks for `FULL`. Pages hold up to 200 basic items or 50 full ones. Keep `view`, `filter` and `orderBy` the same while paging.



## OpenAPI

````yaml /openapi/backend.json get /v1/roadmapBoards/{board}/items
openapi: 3.0.0
info:
  title: Plazza API
  description: >-
    The Plazza REST API. Errors follow AIP-193 and carry a message in the
    language of Accept-Language, French or English.
  version: v1
servers:
  - url: https://api.plazza.ca
security:
  - bearer: []
paths:
  /v1/roadmapBoards/{board}/items:
    get:
      tags:
        - Roadmap
      summary: List roadmap items
      description: >-
        Published items, most backed first unless `orderBy` says otherwise, in
        the `BASIC` view unless `view` asks for `FULL`. Pages hold up to 200
        basic items or 50 full ones. Keep `view`, `filter` and `orderBy` the
        same while paging.
      operationId: RoadmapItems.list
      parameters:
        - name: board
          required: true
          in: path
          description: 'The board: `hire` for employers, `talents` for job seekers.'
          schema:
            type: string
            enum:
              - hire
              - talents
            description: 'The board: `hire` for employers, `talents` for job seekers.'
            example: hire
        - name: view
          required: false
          in: query
          description: >-
            AIP-157: `BASIC`, the default, returns each item's `name`, `slug`
            and `updateTime`, up to 200 a page; `FULL` returns whole items, up
            to 50 a page.
          schema:
            default: ROADMAP_ITEM_VIEW_UNSPECIFIED
            description: >-
              AIP-157: `BASIC`, the default, returns each item's `name`, `slug`
              and `updateTime`, up to 200 a page; `FULL` returns whole items, up
              to 50 a page.
            example: FULL
            type: string
            enum:
              - ROADMAP_ITEM_VIEW_UNSPECIFIED
              - BASIC
              - FULL
        - name: filter
          required: false
          in: query
          description: >-
            AIP-160 restrictions joined by AND: `status`, `kind` and `area` with
            `=`, `tags` and `plans` with `:`, and a bare quoted value to search
            titles, descriptions and tags.
          schema:
            default: ''
            description: >-
              AIP-160 restrictions joined by AND: `status`, `kind` and `area`
              with `=`, `tags` and `plans` with `:`, and a bare quoted value to
              search titles, descriptions and tags.
            example: 'status = "PLANNED" AND tags : "Scheduling" AND "shift swap"'
            type: string
            maxLength: 1024
        - name: orderBy
          required: false
          in: query
          description: >-
            AIP-132 order: `voteCount`, `createTime` or `shipTime`,
            comma-separated, each with an optional `desc`. Unshipped items sort
            as the earliest ship time.
          schema:
            default: voteCount desc
            description: >-
              AIP-132 order: `voteCount`, `createTime` or `shipTime`,
              comma-separated, each with an optional `desc`. Unshipped items
              sort as the earliest ship time.
            example: voteCount desc, createTime desc
            type: string
            maxLength: 200
        - name: pageSize
          required: false
          in: query
          description: >-
            How many results to return at most. Zero or none uses the default; a
            larger value than the maximum returns the maximum.
          schema:
            default: 0
            description: >-
              How many results to return at most. Zero or none uses the default;
              a larger value than the maximum returns the maximum.
            example: 20
            type: integer
            minimum: 0
            maximum: 9007199254740991
        - name: pageToken
          required: false
          in: query
          description: >-
            The `nextPageToken` of the previous page, to read the next one. Keep
            every other parameter the same.
          schema:
            default: ''
            description: >-
              The `nextPageToken` of the previous page, to read the next one.
              Keep every other parameter the same.
            example: Hq8a1Z3kJ9cY2wQe7Rt0bA
            type: string
            maxLength: 2048
      responses:
        '200':
          description: A page of roadmap items.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListRoadmapItemsResponse'
        default:
          description: An AIP-193 error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security: []
components:
  schemas:
    ListRoadmapItemsResponse:
      type: object
      properties:
        items:
          type: array
          items:
            anyOf:
              - $ref: '#/components/schemas/RoadmapItem'
              - $ref: '#/components/schemas/RoadmapItemBasic'
          description: This page of items, in the view asked for.
        nextPageToken:
          type: string
          description: >-
            Pass it as `pageToken` to read the next page. Empty on the last
            page.
          example: Hq8a1Z3kJ9cY2wQe7Rt0bA
        totalSize:
          description: How many items match the filter, across every page.
          example: 128
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
      required:
        - items
        - nextPageToken
      additionalProperties: false
      description: A page of roadmap items.
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: integer
              minimum: -9007199254740991
              maximum: 9007199254740991
            message:
              type: string
            status:
              type: string
              enum:
                - INVALID_ARGUMENT
                - FAILED_PRECONDITION
                - OUT_OF_RANGE
                - UNAUTHENTICATED
                - PERMISSION_DENIED
                - NOT_FOUND
                - ABORTED
                - ALREADY_EXISTS
                - RESOURCE_EXHAUSTED
                - INTERNAL
                - UNIMPLEMENTED
                - UNAVAILABLE
                - DEADLINE_EXCEEDED
            details:
              type: array
              items:
                oneOf:
                  - type: object
                    properties:
                      '@type':
                        type: string
                        enum:
                          - type.googleapis.com/google.rpc.ErrorInfo
                      reason:
                        type: string
                      domain:
                        type: string
                      metadata:
                        type: object
                        additionalProperties:
                          type: string
                    required:
                      - '@type'
                      - reason
                      - domain
                    additionalProperties: false
                  - type: object
                    properties:
                      '@type':
                        type: string
                        enum:
                          - type.googleapis.com/google.rpc.LocalizedMessage
                      locale:
                        type: string
                      message:
                        type: string
                    required:
                      - '@type'
                      - locale
                      - message
                    additionalProperties: false
                  - type: object
                    properties:
                      '@type':
                        type: string
                        enum:
                          - type.googleapis.com/google.rpc.BadRequest
                      fieldViolations:
                        type: array
                        items:
                          type: object
                          properties:
                            field:
                              type: string
                            description:
                              type: string
                          required:
                            - field
                            - description
                          additionalProperties: false
                    required:
                      - '@type'
                      - fieldViolations
                    additionalProperties: false
                  - type: object
                    properties:
                      '@type':
                        type: string
                        enum:
                          - type.googleapis.com/google.rpc.RetryInfo
                      retryDelay:
                        type: string
                        pattern: ^\d+s$
                    required:
                      - '@type'
                      - retryDelay
                    additionalProperties: false
          required:
            - code
            - message
            - status
            - details
          additionalProperties: false
      required:
        - error
      additionalProperties: false
      description: An AIP-193 error.
      example:
        error:
          code: 401
          message: Unauthorized
          status: UNAUTHENTICATED
          details:
            - '@type': type.googleapis.com/google.rpc.ErrorInfo
              reason: MISSING_CREDENTIALS
              domain: api.plazza.ca
            - '@type': type.googleapis.com/google.rpc.LocalizedMessage
              locale: en
              message: Sign in to continue.
    RoadmapItem:
      type: object
      properties:
        name:
          type: string
          description: The item's resource name.
          example: roadmapBoards/hire/items/019a7c2e-4b1d-7c3a-9d4e-5f6a7b8c9d0e
        source:
          type: string
          enum:
            - PLAZZA
            - LINEAR
          description: >-
            `PLAZZA` for a member’s suggestion; `LINEAR` for an item the Plazza
            team curates in Linear, where its content and status are managed.
          example: PLAZZA
        slug:
          type: string
          description: A readable form of the title, for URLs.
          example: swap-shifts-between-employees
        title:
          type: string
          description: >-
            The title, in the language its author wrote it. Empty once
            withdrawn.
          example: Swap shifts between employees
        body:
          type: string
          description: The description, in Markdown. Empty once withdrawn.
          example: Let employees trade shifts, with a manager approving the swap.
        kind:
          type: string
          enum:
            - FEATURE
            - ENHANCEMENT
            - FIX
            - DESIGN
          description: >-
            What the item is: a new feature, an improvement, a fix, or a design
            change.
          example: FEATURE
        tags:
          type: array
          items:
            type: string
          description: Up to 8 topics.
          example:
            - Scheduling
            - Mobile
        plans:
          type: array
          items:
            type: string
          description: Up to 8 plans the item concerns.
          example:
            - Pro
        area:
          nullable: true
          description: The part of the product it concerns, if any.
          example: Scheduling
          type: string
        status:
          type: string
          enum:
            - BACKLOG
            - PLANNED
            - IN_PROGRESS
            - SHIPPED
            - DECLINED
            - ARCHIVED
          description: Where the item stands in the workflow.
          example: PLANNED
        shipTime:
          nullable: true
          type: string
          format: date-time
          description: When it shipped. Null unless `status` is `SHIPPED`.
          example: '2026-11-04T14:32:08.512Z'
        state:
          type: string
          enum:
            - PUBLISHED
            - UNPUBLISHED
            - SUSPENDED
            - WITHDRAWN
            - MERGED
          description: >-
            `PUBLISHED` items are listed. Staff can `UNPUBLISH` one, its author
            can withdraw it, which erases its text but keeps the discussion, and
            staff can merge a duplicate into another item. The Linear sync
            `SUSPENDED` one while its issue can’t be read or left the Roadmap
            team.
          example: PUBLISHED
        mergedInto:
          nullable: true
          description: The resource name of the item a duplicate was merged into.
          example: null
          type: string
        author:
          nullable: true
          description: Who suggested it. Null for a curated item and once withdrawn.
          example:
            displayName: Camille Tremblay
            staff: false
          allOf:
            - $ref: '#/components/schemas/RoadmapAuthor'
        voteCount:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
          description: How many people back it.
          example: 42
        commentCount:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
          description: How many comments it has, removed ones aside.
          example: 7
        etag:
          type: string
          description: >-
            AIP-154: send it back to change the item, so a concurrent change is
            refused.
          example: '"3"'
        createTime:
          type: string
          format: date-time
          description: When it was suggested.
          example: '2026-11-04T14:32:08.512Z'
        updateTime:
          type: string
          format: date-time
          description: When its content, status or state last changed.
          example: '2026-11-04T14:32:08.512Z'
        deleteTime:
          nullable: true
          type: string
          format: date-time
          description: 'AIP-164: when its author withdrew it. Null otherwise.'
          example: '2026-11-04T14:32:08.512Z'
      required:
        - name
        - source
        - slug
        - title
        - body
        - kind
        - tags
        - plans
        - area
        - status
        - shipTime
        - state
        - mergedInto
        - author
        - voteCount
        - commentCount
        - etag
        - createTime
        - updateTime
        - deleteTime
      additionalProperties: false
      description: A suggestion or a planned change on a roadmap board.
    RoadmapItemBasic:
      type: object
      properties:
        name:
          type: string
          description: The item's resource name.
          example: roadmapBoards/hire/items/019a7c2e-4b1d-7c3a-9d4e-5f6a7b8c9d0e
        slug:
          type: string
          description: A readable form of the title, for URLs.
          example: swap-shifts-between-employees
        updateTime:
          type: string
          format: date-time
          description: When its content, status or state last changed.
          example: '2026-11-04T14:32:08.512Z'
      required:
        - name
        - slug
        - updateTime
      additionalProperties: false
      description: 'A roadmap item in the `BASIC` view: what links to it, such as a sitemap.'
    RoadmapAuthor:
      type: object
      properties:
        displayName:
          nullable: true
          description: >-
            The name they chose for the roadmap. Null for a staff member who
            never chose one: show your team name.
          example: Camille Tremblay
          type: string
        staff:
          type: boolean
          description: Whether they work at Plazza.
          example: false
      required:
        - displayName
        - staff
      additionalProperties: false
      description: Who wrote something on the roadmap, as shown publicly.
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http
      description: >-
        The session token of a signed-in Plazza account, sent as `Authorization:
        Bearer <token>`.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.