{
  "opencollection": "1.0.0",
  "info": {
    "name": "Limble API V2 Assets Users API",
    "version": "1.0.0"
  },
  "request": {
    "auth": {
      "type": "basic",
      "username": "{{username}}",
      "password": "{{password}}"
    }
  },
  "items": [
    {
      "info": {
        "name": "Users",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get User Roles",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.limblecmms.com/v2/users/:userID/roles",
            "params": [
              {
                "name": "userID",
                "value": "{{userID}}",
                "type": "path",
                "description": "userID of the role user you are removing the Role from."
              },
              {
                "name": "roles",
                "value": "1,2",
                "type": "query",
                "description": "This parameter expects a comma-separated list of roleIDs to filter teams by"
              },
              {
                "name": "locations",
                "value": "163,202",
                "type": "query",
                "description": "This parameter expects a comma-separated list of locationIDs to filter roles by"
              },
              {
                "name": "name",
                "value": "%Manager%",
                "type": "query",
                "description": "This parameter is used to only get specific role by name. This parameter expects a string full name of a user or partial name with the wildcard %."
              },
              {
                "name": "cursor",
                "value": "0",
                "type": "query",
                "description": "This parameter is a cursor that selects what teamID you want to start receiving results at. e.g. passing 137 here will only get you tasks with an id greater than 137."
              },
              {
                "name": "limit",
                "value": "100",
                "type": "query",
                "description": "This parameter is a result limiter. The default is set to return no more than 100 results at one time."
              }
            ]
          },
          "docs": "This request gets all of the Roles a User has and what Location they have that Role at."
        },
        {
          "info": {
            "name": "Add User To Role",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "https://api.limblecmms.com/v2/users/:userID/roles",
            "params": [
              {
                "name": "userID",
                "value": "{{userID}}",
                "type": "path",
                "description": "userID of the role user you are removing the Role from."
              }
            ]
          },
          "docs": "This request adds a User to a Role."
        },
        {
          "info": {
            "name": "Remove Role From User",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.limblecmms.com/v2/users/:userID/roles",
            "params": [
              {
                "name": "userID",
                "value": "{{userID}}",
                "type": "path",
                "description": "userID of the role user you are removing the Role from."
              }
            ]
          },
          "docs": "This request removes a Role from a User."
        },
        {
          "info": {
            "name": "Get User Teams",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.limblecmms.com/v2/users/:userID/teams",
            "params": [
              {
                "name": "userID",
                "value": "{{userID}}",
                "type": "path"
              },
              {
                "name": "teams",
                "value": "436,437",
                "type": "query",
                "description": "This parameter expects a comma-separated list of teamIDs to filter teams by"
              },
              {
                "name": "locations",
                "value": "163,74",
                "type": "query",
                "description": "This parameter expects a comma-separated list of locationIDs to filter teams by"
              },
              {
                "name": "limit",
                "value": "100",
                "type": "query",
                "description": "This parameter is a result limiter. The default is set to return no more than 100 results at one time."
              },
              {
                "name": "cursor",
                "value": "0",
                "type": "query",
                "description": "This parameter is a cursor that selects what teamID you want to start receiving results at. e.g. passing 137 here will only get you tasks with an id greater than 137."
              },
              {
                "name": "name",
                "value": "%Manager%",
                "type": "query",
                "description": "This parameter is used to only get specific team by name. This parameter expects a string full name of a user or partial name with the wildcard %."
              }
            ]
          },
          "docs": "This request gets all of the Teams a User has and what Location they have that Team at."
        },
        {
          "info": {
            "name": "Add User To Team",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "https://api.limblecmms.com/v2/users/:userID/teams",
            "params": [
              {
                "name": "userID",
                "value": "{{userID}}",
                "type": "path"
              }
            ]
          },
          "docs": "This request adds a User to a Team."
        },
        {
          "info": {
            "name": "Remove Team From User",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.limblecmms.com/v2/users/:userID/teams",
            "params": [
              {
                "name": "userID",
                "value": "{{userID}}",
                "type": "path"
              }
            ]
          },
          "docs": "This request removes a Team from a User."
        },
        {
          "info": {
            "name": "Get Capacity Exceptions by User",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.limblecmms.com/v2/users/capacity/exceptions/:userID",
            "params": [
              {
                "name": "userID",
                "value": "",
                "type": "path"
              },
              {
                "name": "locations",
                "value": "1",
                "type": "query",
                "description": "Required comma-separated location IDs used to scope the user access context."
              },
              {
                "name": "startDate",
                "value": "2026-01-01",
                "type": "query",
                "description": "Optional lower date bound (YYYY-MM-DD) for overlap filtering."
              },
              {
                "name": "endDate",
                "value": "2026-01-31",
                "type": "query",
                "description": "Optional upper date bound (YYYY-MM-DD) for overlap filtering. Must be >= startDate when both are present."
              },
              {
                "name": "cursor",
                "value": "0",
                "type": "query",
                "description": "Optional ID cursor for keyset pagination."
              },
              {
                "name": "limit",
                "value": "100",
                "type": "query",
                "description": "Optional max rows per page."
              }
            ]
          },
          "docs": "Gets capacity exception records for a specific user.\n\n`capacityMinutes` is the user's available capacity **per day** for each date in the exception range.\n\nQuery behavior:\n- `locations` scopes by user location membership.\n- `startDate`/`endDate` filter by date overlap (YYYY-MM-DD).\n- `cursor`/`limit` paginate results.\n\nResponse fields include:\n`exceptionID`, `userID`, `createdByUserID`, `exceptionStartDate`, `exceptionEndDate`, `capacityMinutes`, `hoursPerDay`, `minutesPerDay`, `exceptionTitle`,"
        },
        {
          "info": {
            "name": "New Capacity Exception",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.limblecmms.com/v2/users/capacity/exceptions/:userID",
            "params": [
              {
                "name": "userID",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Creates a capacity exception for a user.\n\n`capacityMinutes` means the user's available work capacity **per day** for each day in the exception date/range. It is **not** the total duration of the exception range.\n\nExamples:\n\n- `capacityMinutes: 0` => unavailable that day (or each day in the range).\n    \n- `capacityMinutes: 480` => 8 hours available per day.\n    \n\nYou can provide either:\n\n- `capacityMinutes` directly, or\n    \n- `hoursPerDay` + `minutesPerDay` (equivalent input)."
        },
        {
          "info": {
            "name": "Get Capacity Exceptions by Location",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.limblecmms.com/v2/users/capacity/exceptions",
            "params": [
              {
                "name": "locations",
                "value": "1,3",
                "type": "query",
                "description": "Required comma-separated location IDs."
              },
              {
                "name": "users",
                "value": "42,57",
                "type": "query",
                "description": "Optional comma-separated user IDs filter."
              },
              {
                "name": "startDate",
                "value": "2026-01-01",
                "type": "query",
                "description": "Optional lower date bound (YYYY-MM-DD) for overlap filtering."
              },
              {
                "name": "endDate",
                "value": "2026-01-31",
                "type": "query",
                "description": "Optional upper date bound (YYYY-MM-DD) for overlap filtering. Must be >= startDate when both are present."
              },
              {
                "name": "cursor",
                "value": "0",
                "type": "query",
                "description": "Optional ID cursor for keyset pagination."
              },
              {
                "name": "limit",
                "value": "100",
                "type": "query",
                "description": "Optional max rows per page."
              }
            ]
          },
          "docs": "Gets capacity exception records across users for the requested locations.\n\n`capacityMinutes` is the user's available capacity **per day** for each date in the exception range.\n\nQuery behavior:\n- `locations` is required.\n- `users` optionally narrows results to specific users.\n- `startDate`/`endDate` filter by date overlap (YYYY-MM-DD).\n- `cursor`/`limit` paginate results.\n\nResponse fields include:\n`exceptionID`, `userID`, `createdByUserID`, `exceptionStartDate`, `exceptionEndDate`, `capacityMinut"
        },
        {
          "info": {
            "name": "Update Capacity Exception",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.limblecmms.com/v2/users/capacity/exceptions/:userID/:exceptionID",
            "params": [
              {
                "name": "userID",
                "value": "",
                "type": "path"
              },
              {
                "name": "exceptionID",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "This request updates an existing capacity exception and returns the updated resource.\n\n`capacityMinutes` means the user's available capacity **per day** for each day in the exception date/range. It is **not** the total duration of the exception range.\n\nExamples:\n- `capacityMinutes: 0` => unavailable that day (or each day in the range).\n- `capacityMinutes: 480` => 8 hours available per day.\n\nReturn data description\n\nProperty\tDescription\nexceptionID\tUnique ID for the capacity exception record.\nuse"
        },
        {
          "info": {
            "name": "Delete Capacity Exception",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.limblecmms.com/v2/users/capacity/exceptions/:userID/:exceptionID",
            "params": [
              {
                "name": "userID",
                "value": "",
                "type": "path"
              },
              {
                "name": "exceptionID",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Deletes a capacity exception for a user."
        },
        {
          "info": {
            "name": "Get Capacity Schedules",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.limblecmms.com/v2/users/capacity/schedules",
            "params": [
              {
                "name": "locations",
                "value": "1,3",
                "type": "query",
                "description": "Required comma-separated location IDs to scope users."
              },
              {
                "name": "users",
                "value": "42,57",
                "type": "query",
                "description": "Optional comma-separated user IDs filter."
              },
              {
                "name": "startDate",
                "value": "2026-01-05",
                "type": "query",
                "description": "Required start date (YYYY-MM-DD)."
              },
              {
                "name": "endDate",
                "value": "2026-01-07",
                "type": "query",
                "description": "Required end date (YYYY-MM-DD), must be >= startDate and within 31 days."
              },
              {
                "name": "cursor",
                "value": "0",
                "type": "query",
                "description": "Optional zero-based user offset for pagination."
              },
              {
                "name": "limit",
                "value": "100",
                "type": "query",
                "description": "Optional page size (1-100)."
              }
            ]
          },
          "docs": "Returns per-user daily capacity rows for a date range, including applied precedence details.\n\nPrecedence order:\n`exception > holiday > userSchedule > profileSchedule > default`.\n\nPagination:\n- `cursor` is a zero-based offset.\n- `limit` max is 100.\n\nDate limits:\n- `startDate` and `endDate` are required (YYYY-MM-DD).\n- Date range cannot exceed 31 days.\n\nResponse notes:\n- `range` now contains only `startDate` and `endDate`.\n- `pagination` contains `cursor`, `limit`, `totalUsers`, and `nextCursor`."
        },
        {
          "info": {
            "name": "Create Capacity Schedule",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.limblecmms.com/v2/users/capacity/schedules",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Creates a new capacity schedule for a user or team profile at a specific location.\n\nExactly one of `userID` or `profileID` must be provided (mutually exclusive).\n\nWhen `rotationPatternEnabled` is true, both `rotationWeeksOn` and `rotationWeeksOff` are required.\n\nCapacity values are in minutes per day (0-1440). Time values use HH:MM or HH:MM:SS format."
        },
        {
          "info": {
            "name": "Delete Capacity Schedule",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.limblecmms.com/v2/users/capacity/schedules/:scheduleID",
            "params": [
              {
                "name": "scheduleID",
                "value": "1201",
                "type": "path",
                "description": "The ID of the capacity schedule to delete."
              }
            ]
          },
          "docs": "Deletes a capacity schedule by its ID."
        },
        {
          "info": {
            "name": "Users",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.limblecmms.com/v2/users",
            "params": [
              {
                "name": "users",
                "value": "342",
                "type": "query",
                "description": "This parameter expects a comma-separated list of users to get by id"
              },
              {
                "name": "name",
                "value": "%jeff%",
                "type": "query",
                "description": "This parameter is used to only get specific user by name. This parameter expects a string full name of a user or partial name with the wildcard %."
              },
              {
                "name": "roles",
                "value": "320",
                "type": "query",
                "description": "This parameter expects a comma-separated list of users to get by roleID"
              },
              {
                "name": "teams",
                "value": "436,437",
                "type": "query",
                "description": "This parameter expects a comma-separated list of users to get by teamID"
              },
              {
                "name": "cursor",
                "value": "0",
                "type": "query",
                "description": "This parameter is a cursor that selects what userID you want to start receiving results at. e.g. passing 137 here will only get you tasks with an id greater than 137."
              },
              {
                "name": "limit",
                "value": "100",
                "type": "query",
                "description": "This parameter is a result limiter. The default is set to return no more than 100 results at one time."
              }
            ]
          },
          "docs": "This request gets information about Users such as User Login, User Email etc.\n\nReturn data description\n\nProperty: username, Description: What a User uses to login.\nProperty: wage, Description: The hourly rate of an employee.\nProperty: active, Description: Determines if a user can log into Limble or not.\nProperty: emailNotificationActive, Description: Determines if a User gets Email Notifications From Limble.\nProperty: pushNotificationActive, Description: Determines if a User gets Push Notificati"
        },
        {
          "info": {
            "name": "New User",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.limblecmms.com/v2/users"
          },
          "docs": "This request creates a new User and emails them a welcome email with details on how to access Limble.\n\nParameter: firstName, Type: String, Required?: Optional, Description: The User's first name.\nParameter: lastName, Type: String, Required?: Optional, Description: The User's last name.\nParameter: email, Type: string, Required?: Required, Description: The User's email address.\nParameter: password, Type: string, Required?: Optional, Description: The User's password.\nParameter: locationID, Type: In"
        },
        {
          "info": {
            "name": "Update User",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.limblecmms.com/v2/users/:userID",
            "params": [
              {
                "name": "userID",
                "value": "{{userID}}",
                "type": "path",
                "description": "userID of the user you are removing."
              }
            ]
          },
          "docs": "This request updates a User details such as first name, last name, phone number, active status and more.\n\nParameter: firstName, Type: String, Required?: Optional, Description: The User's first name.\nParameter: lastName, Type: String, Required?: Optional, Description: The User's last name.\nParameter: email, Type: string, Required?: Optional, Description: The User's email address.\nParameter: username, Type: string, Required?: Optional, Description: The User's login name.\nParameter: password, Type:"
        },
        {
          "info": {
            "name": "Delete User",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.limblecmms.com/v2/users/:userID",
            "params": [
              {
                "name": "userID",
                "value": "{{userID}}",
                "type": "path",
                "description": "userID of the user you are removing."
              }
            ]
          },
          "docs": "Delete User"
        }
      ]
    }
  ],
  "bundled": true
}