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

# List workLocations

> Query all available work locations



## OpenAPI

````yaml /openapi-specs/timmi-office.yaml get /work-locations/public/api/work-locations
openapi: 3.1.0
info:
  title: Lucca Office
  version: '1.0'
  description: >
    Welcome on the documentation for the Lucca Office API.


    Lucca Office indicates where the teams are, whether they are in the office,
    visiting a client or at home.

    This API allows you to retrieve this information, using 2 resources:

    * The WorkLocations, which describe possible work locations. These locations
    can be physical, like an office, but also abstract like remote work or
    travel.

    * The UserLocations, which inform the associated workLocation for an
    employee and a date.


    Currently it only supports GET methods to retrieve information.

    If you have any additional needs, you can address them to the Lucca support
    team, and we will review them.


    It is not conforming to the "v3 API" constraints. Main differences are:

    - All available fields are systematically returned. Fields sets may be
    differente between endpoints for resources collections and single resources.

    - Paging is controlled through page token and limit parameter.
  contact:
    name: API Support
    url: https://support.lucca.fr
    email: contact@luccasoftware.com
  license:
    name: Unlicensed
    url: https://www.luccasoftware.com
servers:
  - url: https://{host}
    description: Your Lucca account URL.
    variables:
      host:
        default: example.ilucca.net
        description: >-
          The URL of your dedicated Lucca account: `{account}.{env}.{region}`.


          Account reflects your company name. Env indicates the environment.
          Region depends on your server location.


          **Please, use your test or sandbox environments (and not your
          production env.) for testing purposes.**


          Environments:

          - `ilucca`: production environment for customers.

          - `ilucca-test`: test environment for customers.

          - `ilucca-demo`: demo environment for prospects.


          Regions:

          - `.ch` for Swiss located accounts.

          - `.net` for the others.


          Regarding sandboxes, the pattern differs:
          `https://{account}-{sandboxName}.sandbox.{server}.luccasoftware.com`,
          where:

          - `{sandboxName}` is automatically generated upon creation.

          - `{server}` may be "eu1", "eu2" or "ch1".
security: []
tags:
  - name: UserLocations
    description: Indicates where an employee is on a given date.
  - name: WorkLocations
    description: >-
      Represents the different types of work-locations an employee can work
      from.
  - name: Imports
    description: Imports useful for Office
paths:
  /work-locations/public/api/work-locations:
    parameters:
      - $ref: '#/components/parameters/Authorization'
    get:
      tags:
        - WorkLocations
      summary: List workLocations
      description: Query all available work locations
      operationId: get-work-locations
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/Limit'
        - $ref: '#/components/parameters/FieldsRoot'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Page'
                  - type: object
                    properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/WorkLocation'
        '401':
          description: Unauthorized
components:
  parameters:
    Authorization:
      name: Authorization
      required: true
      description: 'API key. Value must be formatted like so: `lucca application={api_key}`.'
      in: header
      schema:
        type: string
    Page:
      name: page
      in: query
      required: false
      schema:
        type: integer
        default: 1
        minimum: 1
      description: Page number
    Limit:
      name: limit
      in: query
      required: false
      schema:
        type: integer
        default: 10
        maximum: 1000
        minimum: 1
      description: Page size
    FieldsRoot:
      name: fields.root
      in: query
      required: false
      description: Return total items count (across all pages).
      schema:
        type: string
        enum:
          - count
  schemas:
    Page:
      title: Page
      type: object
      properties:
        count:
          type: integer
    WorkLocation:
      title: The WorkLocation resource
      type: object
      description: Represents a location an employee can work from
      x-tags:
        - WorkLocations
      properties:
        id:
          type: number
          description: The unique id of the WorkLocation.
        name:
          type: string
          description: The name of the WorkLocation
        type:
          type: string
          description: >-
            Type of WorkLocation. It can be physical, like an office, but also
            abstract, RemoteWork is for telecommuting which has specific rules
            in Lucca Office, and Other allows to suggest any other locations,
            like on the go.
          enum:
            - Office
            - RemoteWork
            - Other
        office:
          type: object
          description: The office details, non-null if the location type is "Office"
          properties:
            capacity:
              type: integer
              description: The number of people the office can accommodate
            showAreas:
              type: boolean
              description: Whether to show specific areas within the office
            areas:
              type: array
              description: >-
                A office can be divided into different areas defined by a name
                and capacity
              items:
                $ref: '#/components/schemas/Area'
            floors:
              type: array
              items:
                $ref: '#/components/schemas/Floor'
        isActive:
          type: boolean
          description: Indicates whether the location is currently active
      required:
        - id
        - name
        - type
        - isActive
    Area:
      type: object
      properties:
        id:
          type: integer
          description: The Area's unique identifier.
        name:
          type: string
          description: The Area's name.
        capacity:
          type: integer
          description: The number of people the Area can accommodate.
        floorKey:
          type: integer
          description: The floor's unique identifier.
      required:
        - id
        - name
    Floor:
      type: object
      properties:
        key:
          type: integer
          description: The floor's unique identifier.
        name:
          type: string
          description: The floor's name.
        position:
          type: integer
          description: The floor's position in order of display.
      required:
        - key
        - name
        - position

````