# /api/v3/work_packages/schemas/
---
get:
  summary: List Work Package Schemas
  operationId: list_work_package_schemas
  tags:
    - Work Packages
  description: |-
    List all work package schemas that match the given filters. This endpoint does not return a successful response,
    if no filter is given.
  parameters:
    - name: filters
      description: |-
        JSON specifying filter conditions.
        Accepts the same format as returned by the [queries](https://www.openproject.org/docs/api/endpoints/queries/)
        endpoint. Currently supported filters are:
        
        + id: The schema's id
        
        Schema id has the form `project_id-work_package_type_id`.
      in: query
      required: true
      schema:
        type: string
      example: '[{ "id": { "operator": "=", "values": ["12-1", "14-2"] } }]'
  responses:
    '200':
      description: OK
      content:
        application/hal+json:
          examples:
            response:
              value:
                _embedded:
                  elements:
                    - _links:
                        self:
                          href: "/api/v3/work_packages/schemas/13-1"
                      _type: Schema...
                    - _links:
                        self:
                          href: "/api/v3/work_packages/schemas/7-6"
                      _type: Schema...
                _links:
                  self:
                    href: "/api/v3/work_packages/schemas"
                _type: Collection
                count: 2
                total: 5
    '400':
      $ref: "../components/responses/invalid_request_body.yml"
    '403':
      content:
        application/hal+json:
          schema:
            $ref: "../components/schemas/error_response.yml"
          examples:
            response:
              value:
                _type: Error
                errorIdentifier: urn:openproject-org:api:v3:errors:MissingPermission
                message: You are not allowed to list schemas.
      description: |-
        Returned if the client does not have sufficient permissions.

        **Required permission:** View work packages in any project.
      headers: { }
