HubstaffDeveloper Portal

Members

View members and add new members

Recent changes (1)
  1. Update

    Filter members by invite link

    The organization members endpoint accepts a new optional invite_link_id filter returning only members who joined via that invite link.

    Requires invite link management access (organization owners and managers with the invite members permission).

Update organization members

PUT/v2/organizations/{organization_id}/update_members

Updates organization members.

Returns {success: true} on success.

Only pass in the members you want to change.

Available roles:

  • user - Member role determined by project membership
  • manager - Organization manager
  • owner - Organization owner
  • remove - Removes user from organization (and all projects/teams)

Limits: Specify full limits config. Missing limits will be removed. Empty “limits” removes all limits.

Projects: Specify project memberships to change. Available project roles: viewer, user, manager, remove.

Metadata: Only specify keys to change. Non-existent keys are created. Use null to remove a key.

Key requirements:

  • 2-30 characters
  • Lowercase letters, numbers, and underscores only

Value requirements:

  • Valid UTF-8 string
  • Maximum 200 characters

Batch size: Up to 150 members per request. Larger requests are rejected with HTTP 400 and code “too_many_members”.

Parameters

NameInTypeDescription
organization_idrequired
pathinteger (int32)
Organization ID

Request body

object

Update organization members

  • membersarray required
    array<object>
    items
    object
    • user_idinteger required

      User ID

    • rolestring

      Role for the user.

    • trackableboolean
    • view_onlyboolean

      View-only member flag.

    • first_namestring
    • last_namestring
    • paymentobject
      object
      • rate_typestring
      • pay_ratenumber

        A pay rate to set for the user, used for 'hourly' or 'fixed_amount' rate_types

      • pay_periodstring

        A pay period to set for the user. Required if timesheet_approval is true

      • timesheet_approvalboolean

        Require timesheet approval for the user

      • period_week_dayinteger

        When pay_period is set: day of the week when the pay period starts (0 Monday through 6 Sunday). Required for weekly or biweekly pay periods when the organization uses custom pay period dates.

      • period_start_dayinteger

        When pay_period is set: day of the month when the pay period starts. Required for monthly or twice_per_month pay periods when the organization uses custom pay period dates.

      • period_second_start_dayinteger

        When pay_period is set: day of the month when the second period starts for twice_per_month (31 = last day of the month). Required for that pay period when the organization uses custom pay period dates.

      • period_anchor_datestring

        When pay_period is set: anchor date for biweekly periods when the organization uses custom pay period dates.

    • limitsobject
      object
      • limits_by_shiftsboolean
      • daily_limitnumber

        The daily limit, number of hours

      • weekly_limitnumber

        The weekly limit, number of hours

      • expected_per_weeknumber

        The expected weekly limit, number of hours

      • current_daily_limitnumber

        Overrides the daily limit for today

      • current_weekly_limitnumber

        Overrides the weekly limit for this week

      • dow_limitarray

        The days when member is allowed to track time

        array<string>

        The days when member is allowed to track time

        items
        string
      • dow_expectedarray

        The days when member is expected to track time

        array<string>

        The days when member is expected to track time

        items
        string
    • metadataarray

      Member metadata. See the update_members endpoint for further details

      array<object>

      Member metadata. See the update_members endpoint for further details

      items
      object
      • keystring required

        The metadata key

      • valuestring required

        The value for the metadata key

    • projectsarray
      array<object>
      items
      object
      • project_idinteger required

        Project ID

      • rolestring required

        User role in project

Responses

200Updated successfully
400Invalid parameters
object

Hubstaff_Public_V2_Entities_Error model

  • codestring required

    Legacy string error code for backward compatibility

  • error_codeinteger

    Numeric error code for i18n/programmatic handling. Ranges: 10000-10999 (Auth), 11000-11999 (Validation), 12000-12999 (Resource), 13000-13999 (Rate Limit), 14000-14999 (Time Entry/Activity), 15000-15999 (System). See GET /v2/error_codes for full reference.

  • errorstring required

    Human-readable error message

  • detailsarray

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    array<string>

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    items
    string
Example response
json
{
  "code": "string",
  "error_code": 0,
  "error": "string",
  "details": [
    "string"
  ]
}
401Unauthorized
object

Hubstaff_Public_V2_Entities_Error model

  • codestring required

    Legacy string error code for backward compatibility

  • error_codeinteger

    Numeric error code for i18n/programmatic handling. Ranges: 10000-10999 (Auth), 11000-11999 (Validation), 12000-12999 (Resource), 13000-13999 (Rate Limit), 14000-14999 (Time Entry/Activity), 15000-15999 (System). See GET /v2/error_codes for full reference.

  • errorstring required

    Human-readable error message

  • detailsarray

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    array<string>

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    items
    string
Example response
json
{
  "code": "string",
  "error_code": 0,
  "error": "string",
  "details": [
    "string"
  ]
}
403API access is only for organizations on an active plan
object

Hubstaff_Public_V2_Entities_Error model

  • codestring required

    Legacy string error code for backward compatibility

  • error_codeinteger

    Numeric error code for i18n/programmatic handling. Ranges: 10000-10999 (Auth), 11000-11999 (Validation), 12000-12999 (Resource), 13000-13999 (Rate Limit), 14000-14999 (Time Entry/Activity), 15000-15999 (System). See GET /v2/error_codes for full reference.

  • errorstring required

    Human-readable error message

  • detailsarray

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    array<string>

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    items
    string
Example response
json
{
  "code": "string",
  "error_code": 0,
  "error": "string",
  "details": [
    "string"
  ]
}
404Could not find record
object

Hubstaff_Public_V2_Entities_Error model

  • codestring required

    Legacy string error code for backward compatibility

  • error_codeinteger

    Numeric error code for i18n/programmatic handling. Ranges: 10000-10999 (Auth), 11000-11999 (Validation), 12000-12999 (Resource), 13000-13999 (Rate Limit), 14000-14999 (Time Entry/Activity), 15000-15999 (System). See GET /v2/error_codes for full reference.

  • errorstring required

    Human-readable error message

  • detailsarray

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    array<string>

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    items
    string
Example response
json
{
  "code": "string",
  "error_code": 0,
  "error": "string",
  "details": [
    "string"
  ]
}
429Rate limit exceeded
object

Hubstaff_Public_V2_Entities_Error model

  • codestring required

    Legacy string error code for backward compatibility

  • error_codeinteger

    Numeric error code for i18n/programmatic handling. Ranges: 10000-10999 (Auth), 11000-11999 (Validation), 12000-12999 (Resource), 13000-13999 (Rate Limit), 14000-14999 (Time Entry/Activity), 15000-15999 (System). See GET /v2/error_codes for full reference.

  • errorstring required

    Human-readable error message

  • detailsarray

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    array<string>

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    items
    string
Example response
json
{
  "code": "string",
  "error_code": 0,
  "error": "string",
  "details": [
    "string"
  ]
}

List organization members

GET/v2/organizations/{organization_id}/members

Returns a collection of members for the given organization.

Results can be filtered by search, user IDs, membership role, and date range.

trackable - Whether the user can track time. This is one of 3 values

  • false – meaning tracking has been explicitly disabled for this user regardless of their role
  • true – meaning they are allowed to track time
  • viewer – meaning they are allowed to track time, however as they are only a project viewer (or no memberships) they implicitly can not track on any project

membership_role - The basic role in this organization

  • owner - An owner of the organization. This member can do anything within the organization.
  • manager - An manager of the organization. This member can do anything within the organization except things to do with money. (payroll, invoicing, account billing)
  • user - (By project). A member of the organization where permissions are defined by their project memberships

effective_role - represents an effective role that combines a member’s organization role and their project roles

  • organization_owner - The member is an organization owner
  • organization_manager - The member is an organization manager
  • project_manager - The member is an organization user and a manager on all projects and teams
  • project_user - The member is an organization user and a user on all projects and teams
  • project_viewer - The member is an organization user and a viewer on all projects and teams
  • by_project - The member is an organization user and has mixed roles on their projects and team memberships (advanced in the web UI)
  • unassigned - The member has no assigned role and no project memberships (No role in the web UI)

profile - The profile information for the user. Only organization owners and managers may see this information.

  • custom_fields - The custom fields, defined for organization, in format of “key”: “value”. The meaning of keys is defined in organization.member_profile_fields.

Filtering by dates:

You can filter members by when they were added to the organization using the created_at parameter:

  • Use created_at[start] to get members added on or after a specific date
  • Use created_at[stop] to get members added before a specific date
  • Use both to get members added within a date range

You can also filter by when membership was last updated using the updated_at parameter:

  • Use updated_at[start] to get members updated on or after a specific date
  • Use updated_at[stop] to get members updated before a specific date
  • Use both to get members updated within a date range

Parameters

NameInTypeDescription
organization_idrequired
pathinteger (int32)
page_start_id
queryinteger (int32)
The page start ID.
page_limit
queryinteger (int32)
The default page size
search[email]
querystring
An email to search for members
search[name]
querystring
A name to search for members
include_removed
queryboolean
Include members that were removed from the organization
include_profile
queryboolean
Include member profile information
include_projects
queryboolean
Include project memberships for this member
project_statuses
queryarray string[]
Filter projects by status when include_projects=true
Possible valuesactivearchiveddeleted
include_limits
queryboolean
Include member limits information
membership_roles
queryarray string[]
Search by membership role
Possible valuesownermanageruserunassigned
invite_link_id
queryinteger (int32)
Filter members who joined via the given invite link
created_at[start]
querystring (date-time)
Start date for created_at filter (inclusive)
created_at[stop]
querystring (date-time)
End date for created_at filter (exclusive)
updated_at[start]
querystring (date-time)
Start date for updated_at filter (inclusive)
updated_at[stop]
querystring (date-time)
End date for updated_at filter (exclusive)
user_ids
queryarray integer[]
List of user IDs
include
queryarray string[]
Specify related data to side load.
Possible valuesusersprojects

Responses

200A list of members
object
  • membersarray
    array<object>
    items
    object

    OrganizationMember model

    • user_idinteger required

      User ID

    • pay_ratestring

      Pay rate

    • bill_ratestring

      Bill rate

    • currencystring

      Currency of pay and bill rates

    • membership_rolestring required

      Membership role

    • membership_statusstring required

      Membership status

    • created_atstring required

      When the member was added to the organization/project

    • updated_atstring required

      When the membership was last updated

    • removed_atstring

      When the member was removed

    • last_client_activitystring required

      Last client activity of user

    • userobject

      Related user object

      object

      User model

      • idinteger required

        User ID

      • namestring required

        User full name

      • first_namestring required

        User first name

      • last_namestring required

        User last name

      • emailstring

        User email address

      • time_zonestring required

        User time zone

      • ip_addressstring required

        User last IP address

      • statusstring required

        User status

      • created_atstring required

        When the record was created

      • updated_atstring required

        When the record was last updated

    • project_membersarray

      List of project memberships

      array<object>

      List of project memberships

      items
      object
      • pay_ratestring

        Pay rate

      • bill_ratestring

        Bill rate

      • currencystring

        Currency of pay and bill rates

      • membership_rolestring required

        Membership role

      • membership_statusstring required

        Membership status

      • created_atstring required

        When the member was added to the organization/project

      • updated_atstring required

        When the membership was last updated

      • removed_atstring

        When the member was removed

      • last_client_activitystring required

        Last client activity of user

      • team_idinteger

        Team ID

      • profileobject
        object
        • job_titlestring

          The job title of the member

        • job_typestring

          The job type of the member

        • locationstring

          The location of the member

        • employee_idstring

          The employee id of the member

        • tax_infostring

          The tax info of the member

        • birthdaystring

          The member's birthday (YYYY-MM-DD). If the year is not available, it will be 0000

        • started_onstring

          The start date of the member

        • custom_fieldsobject

          Custom fields

          object

          Custom fields

        • work_phonestring

          The work phone number of the member

        • personal_phonestring

          The personal phone number of the member

        • personal_emailstring

          The personal email address of the member

        • departmentstring

          The department of the member

        • tax_typestring

          The tax type of the member

        • occupied_seatboolean

          Whether the member occupies a billing seat

        • os_usernamestring

          The OS username of the member

        • employment_typestring

          The employment type of the member

        • work_modestring

          The workplace mode of the member

        • in_office_percentinteger

          The in-office work percentage of the member

        • remote_percentinteger

          The remote work percentage of the member

        • employed_throughstring

          How the member is employed

        • eor_namestring

          The EOR or vendor name of the member

        • account_codestring

          The account code of the member

        • employment_commentsstring

          Employment comments for the member

        • contractual_end_datestring

          The contractual end date of the member

        • termination_reasonstring

          The termination reason of the member

        • home_addressstring

          The home address of the member

        • home_address_countrystring

          The home address country of the member

        • home_address_statestring

          The home address state of the member

        • work_addressstring

          The work address of the member

        • work_address_countrystring

          The work address country of the member

        • work_address_statestring

          The work address state of the member

      • project_idinteger required

        Project ID

      • project_typestring required

        Project type (project, work_order, work_break)

      • project_statusstring required

        Project status (active, archived, deleted)

    • pay_periodstring

      Pay period

    • fixed_pay_ratestring

      Fixed pay rate

    • period_week_dayinteger

      Pay period week day (0 monday)

    • period_start_dayinteger

      Pay period start day

    • period_second_start_dayinteger

      Second pay period start day

    • period_anchor_datestring

      Date when the biweekly pay period must start

    • trackablestring required

      Whether the member has tracking enabled, disabled or implicitly disabled

    • effective_rolestring required

      A virtual membership role that takes into account the project memberships

    • profileobject
      object
      • job_titlestring

        The job title of the member

      • job_typestring

        The job type of the member

      • locationstring

        The location of the member

      • employee_idstring

        The employee id of the member

      • tax_infostring

        The tax info of the member

      • birthdaystring

        The member's birthday (YYYY-MM-DD). If the year is not available, it will be 0000

      • started_onstring

        The start date of the member

      • custom_fieldsobject

        Custom fields

        object

        Custom fields

      • work_phonestring

        The work phone number of the member

      • personal_phonestring

        The personal phone number of the member

      • personal_emailstring

        The personal email address of the member

      • departmentstring

        The department of the member

      • tax_typestring

        The tax type of the member

      • occupied_seatboolean

        Whether the member occupies a billing seat

      • os_usernamestring

        The OS username of the member

      • employment_typestring

        The employment type of the member

      • work_modestring

        The workplace mode of the member

      • in_office_percentinteger

        The in-office work percentage of the member

      • remote_percentinteger

        The remote work percentage of the member

      • employed_throughstring

        How the member is employed

      • eor_namestring

        The EOR or vendor name of the member

      • account_codestring

        The account code of the member

      • employment_commentsstring

        Employment comments for the member

      • contractual_end_datestring

        The contractual end date of the member

      • termination_reasonstring

        The termination reason of the member

      • home_addressstring

        The home address of the member

      • home_address_countrystring

        The home address country of the member

      • home_address_statestring

        The home address state of the member

      • work_addressstring

        The work address of the member

      • work_address_countrystring

        The work address country of the member

      • work_address_statestring

        The work address state of the member

    • limitsobject
      object
      • limits_by_shiftsboolean

        Whether the shifts are used to set allowance limits

      • weekly_limitnumber

        The hours member is allowed to work weekly

      • daily_limitnumber

        The hours daily limit of the member

      • dow_limitarray

        The days when member is allowed to track time

        array<string>

        The days when member is allowed to track time

        items
        string
      • expected_per_weeknumber

        The hours member is expected to work weekly

      • dow_expectedarray

        The days when member is expected to track time

        array<string>

        The days when member is expected to track time

        items
        string
    • typestring required

      How the member was provisioned: standard, scim, silent or sso

    • metadataobject required

      Metadata attached to the member

      object

      Metadata attached to the member

    • view_onlyboolean required

      View-only member flag

Example response
json
{
  "members": [
    {
      "user_id": 0,
      "pay_rate": "string",
      "bill_rate": "string",
      "currency": "string",
      "membership_role": "string",
      "membership_status": "string",
      "created_at": "2024-01-15T10:30:00Z",
      "updated_at": "2024-01-15T10:30:00Z",
      "removed_at": "2024-01-15T10:30:00Z",
      "last_client_activity": "2024-01-15T10:30:00Z",
      "user": {
        "id": 0,
        "name": "string",
        "first_name": "string",
        "last_name": "string",
        "email": "string",
        "time_zone": "string",
        "ip_address": "string",
        "status": "string",
        "created_at": "2024-01-15T10:30:00Z",
        "updated_at": "2024-01-15T10:30:00Z"
      },
      "project_members": [
        {
          "pay_rate": "string",
          "bill_rate": "string",
          "currency": "string",
          "membership_role": "string",
          "membership_status": "string",
          "created_at": "2024-01-15T10:30:00Z",
          "updated_at": "2024-01-15T10:30:00Z",
          "removed_at": "2024-01-15T10:30:00Z",
          "last_client_activity": "2024-01-15T10:30:00Z",
          "team_id": 0,
          "profile": {
            "job_title": "string",
            "job_type": "string",
            "location": "string",
            "employee_id": "string",
            "tax_info": "string",
            "birthday": "2024-01-15",
            "started_on": "2024-01-15",
            "custom_fields": {},
            "work_phone": "string",
            "personal_phone": "string",
            "personal_email": "string",
            "department": "string",
            "tax_type": "string",
            "occupied_seat": false,
            "os_username": "string",
            "employment_type": "string",
            "work_mode": "string",
            "in_office_percent": 0,
            "remote_percent": 0,
            "employed_through": "string",
            "eor_name": "string",
            "account_code": "string",
            "employment_comments": "string",
            "contractual_end_date": "2024-01-15",
            "termination_reason": "string",
            "home_address": "string",
            "home_address_country": "string",
            "home_address_state": "string",
            "work_address": "string",
            "work_address_country": "string",
            "work_address_state": "string"
          },
          "project_id": 0,
          "project_type": "string",
          "project_status": "string"
        }
      ],
      "pay_period": "string",
      "fixed_pay_rate": "string",
      "period_week_day": 0,
      "period_start_day": 0,
      "period_second_start_day": 0,
      "period_anchor_date": "2024-01-15",
      "trackable": "string",
      "effective_role": "string",
      "profile": null,
      "limits": {
        "limits_by_shifts": false,
        "weekly_limit": 0,
        "daily_limit": 0,
        "dow_limit": [
          "string"
        ],
        "expected_per_week": 0,
        "dow_expected": [
          "string"
        ]
      },
      "type": "string",
      "metadata": {},
      "view_only": false
    }
  ]
}
400Invalid parameters
object

Hubstaff_Public_V2_Entities_Error model

  • codestring required

    Legacy string error code for backward compatibility

  • error_codeinteger

    Numeric error code for i18n/programmatic handling. Ranges: 10000-10999 (Auth), 11000-11999 (Validation), 12000-12999 (Resource), 13000-13999 (Rate Limit), 14000-14999 (Time Entry/Activity), 15000-15999 (System). See GET /v2/error_codes for full reference.

  • errorstring required

    Human-readable error message

  • detailsarray

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    array<string>

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    items
    string
Example response
json
{
  "code": "string",
  "error_code": 0,
  "error": "string",
  "details": [
    "string"
  ]
}
401Unauthorized
object

Hubstaff_Public_V2_Entities_Error model

  • codestring required

    Legacy string error code for backward compatibility

  • error_codeinteger

    Numeric error code for i18n/programmatic handling. Ranges: 10000-10999 (Auth), 11000-11999 (Validation), 12000-12999 (Resource), 13000-13999 (Rate Limit), 14000-14999 (Time Entry/Activity), 15000-15999 (System). See GET /v2/error_codes for full reference.

  • errorstring required

    Human-readable error message

  • detailsarray

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    array<string>

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    items
    string
Example response
json
{
  "code": "string",
  "error_code": 0,
  "error": "string",
  "details": [
    "string"
  ]
}
403API access is only for organizations on an active plan
object

Hubstaff_Public_V2_Entities_Error model

  • codestring required

    Legacy string error code for backward compatibility

  • error_codeinteger

    Numeric error code for i18n/programmatic handling. Ranges: 10000-10999 (Auth), 11000-11999 (Validation), 12000-12999 (Resource), 13000-13999 (Rate Limit), 14000-14999 (Time Entry/Activity), 15000-15999 (System). See GET /v2/error_codes for full reference.

  • errorstring required

    Human-readable error message

  • detailsarray

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    array<string>

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    items
    string
Example response
json
{
  "code": "string",
  "error_code": 0,
  "error": "string",
  "details": [
    "string"
  ]
}
404Could not find record
object

Hubstaff_Public_V2_Entities_Error model

  • codestring required

    Legacy string error code for backward compatibility

  • error_codeinteger

    Numeric error code for i18n/programmatic handling. Ranges: 10000-10999 (Auth), 11000-11999 (Validation), 12000-12999 (Resource), 13000-13999 (Rate Limit), 14000-14999 (Time Entry/Activity), 15000-15999 (System). See GET /v2/error_codes for full reference.

  • errorstring required

    Human-readable error message

  • detailsarray

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    array<string>

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    items
    string
Example response
json
{
  "code": "string",
  "error_code": 0,
  "error": "string",
  "details": [
    "string"
  ]
}
429Rate limit exceeded
object

Hubstaff_Public_V2_Entities_Error model

  • codestring required

    Legacy string error code for backward compatibility

  • error_codeinteger

    Numeric error code for i18n/programmatic handling. Ranges: 10000-10999 (Auth), 11000-11999 (Validation), 12000-12999 (Resource), 13000-13999 (Rate Limit), 14000-14999 (Time Entry/Activity), 15000-15999 (System). See GET /v2/error_codes for full reference.

  • errorstring required

    Human-readable error message

  • detailsarray

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    array<string>

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    items
    string
Example response
json
{
  "code": "string",
  "error_code": 0,
  "error": "string",
  "details": [
    "string"
  ]
}

Create organization member

POST/v2/organizations/{organization_id}/members

Creates a new user and adds them to the organization as a member.

Returns the created member.

Available roles:

  • organization_manager - Organization manager
  • project_manager - Project manager
  • project_user - Project user
  • project_viewer - Project viewer

Available pay periods:

  • none - Disables automatic payments
  • weekly - Pay users weekly
  • twice_per_month - Pay users twice a month
  • biweekly - Pay users bi-weekly
  • monthly - Pay users monthly

Parameters

NameInTypeDescription
organization_idrequired
pathinteger (int32)

Request body

object

Create organization member

  • userobject required

    User data

    object

    User data

    • namestring

      User full name (deprecated, use first_name, last_name)

    • first_namestring

      User first name

    • last_namestring

      User last name

    • emailstring required

      User email

    • passwordstring required

      User password

    • require_password_changeboolean

      Require user to change password on first sign in

    • allow_receiving_emailsboolean

      Allow user to receive Hubstaff emails

  • rolestring

    The role to add the user as

  • pay_ratenumber

    A pay rate to set for the user

  • view_onlyboolean

    Create the member as view-only

  • pay_periodstring

    Member pay period; values are the API symbols mapped in UserOrganization::PayPeriods (see list above). When timesheet_approval is true, required only if the organization has no default pay period; otherwise optional (omit to use the organization default where applicable).

  • period_week_dayinteger

    When pay_period is set: day of the week when the pay period starts (0 Monday through 6 Sunday). Required for weekly or biweekly pay periods when the organization uses custom pay period dates.

  • period_start_dayinteger

    When pay_period is set: day of the month when the pay period starts. Required for monthly or twice_per_month pay periods when the organization uses custom pay period dates.

  • period_second_start_dayinteger

    When pay_period is set: day of the month when the second period starts for twice_per_month (31 = last day of the month). Required for that pay period when the organization uses custom pay period dates.

  • period_anchor_datestring

    When pay_period is set: anchor date for biweekly periods when the organization uses custom pay period dates.

  • timesheet_approvalboolean

    Tri-state: true requires timesheet approval for the member, false disables it, and omitting the parameter inherits the organization default for new members.

  • project_idsarray

    List of project IDs to add the user

    array<integer>

    List of project IDs to add the user

    items
    integer(int32)
  • team_idsarray

    List of team IDs to add the user

    array<integer>

    List of team IDs to add the user

    items
    integer(int32)
  • metadataarray

    Member metadata. See the update_members endpoint for further details

    array<object>

    Member metadata. See the update_members endpoint for further details

    items
    object
    • keystring required

      The metadata key

    • valuestring required

      The value for the metadata key

Responses

201A member
object
  • organization_memberobject
    object

    OrganizationMember model

    • user_idinteger required

      User ID

    • pay_ratestring

      Pay rate

    • bill_ratestring

      Bill rate

    • currencystring

      Currency of pay and bill rates

    • membership_rolestring required

      Membership role

    • membership_statusstring required

      Membership status

    • created_atstring required

      When the member was added to the organization/project

    • updated_atstring required

      When the membership was last updated

    • removed_atstring

      When the member was removed

    • last_client_activitystring required

      Last client activity of user

    • userobject

      Related user object

      object

      User model

      • idinteger required

        User ID

      • namestring required

        User full name

      • first_namestring required

        User first name

      • last_namestring required

        User last name

      • emailstring

        User email address

      • time_zonestring required

        User time zone

      • ip_addressstring required

        User last IP address

      • statusstring required

        User status

      • created_atstring required

        When the record was created

      • updated_atstring required

        When the record was last updated

    • project_membersarray

      List of project memberships

      array<object>

      List of project memberships

      items
      object
      • pay_ratestring

        Pay rate

      • bill_ratestring

        Bill rate

      • currencystring

        Currency of pay and bill rates

      • membership_rolestring required

        Membership role

      • membership_statusstring required

        Membership status

      • created_atstring required

        When the member was added to the organization/project

      • updated_atstring required

        When the membership was last updated

      • removed_atstring

        When the member was removed

      • last_client_activitystring required

        Last client activity of user

      • team_idinteger

        Team ID

      • profileobject
        object
        • job_titlestring

          The job title of the member

        • job_typestring

          The job type of the member

        • locationstring

          The location of the member

        • employee_idstring

          The employee id of the member

        • tax_infostring

          The tax info of the member

        • birthdaystring

          The member's birthday (YYYY-MM-DD). If the year is not available, it will be 0000

        • started_onstring

          The start date of the member

        • custom_fieldsobject

          Custom fields

          object

          Custom fields

        • work_phonestring

          The work phone number of the member

        • personal_phonestring

          The personal phone number of the member

        • personal_emailstring

          The personal email address of the member

        • departmentstring

          The department of the member

        • tax_typestring

          The tax type of the member

        • occupied_seatboolean

          Whether the member occupies a billing seat

        • os_usernamestring

          The OS username of the member

        • employment_typestring

          The employment type of the member

        • work_modestring

          The workplace mode of the member

        • in_office_percentinteger

          The in-office work percentage of the member

        • remote_percentinteger

          The remote work percentage of the member

        • employed_throughstring

          How the member is employed

        • eor_namestring

          The EOR or vendor name of the member

        • account_codestring

          The account code of the member

        • employment_commentsstring

          Employment comments for the member

        • contractual_end_datestring

          The contractual end date of the member

        • termination_reasonstring

          The termination reason of the member

        • home_addressstring

          The home address of the member

        • home_address_countrystring

          The home address country of the member

        • home_address_statestring

          The home address state of the member

        • work_addressstring

          The work address of the member

        • work_address_countrystring

          The work address country of the member

        • work_address_statestring

          The work address state of the member

      • project_idinteger required

        Project ID

      • project_typestring required

        Project type (project, work_order, work_break)

      • project_statusstring required

        Project status (active, archived, deleted)

    • pay_periodstring

      Pay period

    • fixed_pay_ratestring

      Fixed pay rate

    • period_week_dayinteger

      Pay period week day (0 monday)

    • period_start_dayinteger

      Pay period start day

    • period_second_start_dayinteger

      Second pay period start day

    • period_anchor_datestring

      Date when the biweekly pay period must start

    • trackablestring required

      Whether the member has tracking enabled, disabled or implicitly disabled

    • effective_rolestring required

      A virtual membership role that takes into account the project memberships

    • profileobject
      object
      • job_titlestring

        The job title of the member

      • job_typestring

        The job type of the member

      • locationstring

        The location of the member

      • employee_idstring

        The employee id of the member

      • tax_infostring

        The tax info of the member

      • birthdaystring

        The member's birthday (YYYY-MM-DD). If the year is not available, it will be 0000

      • started_onstring

        The start date of the member

      • custom_fieldsobject

        Custom fields

        object

        Custom fields

      • work_phonestring

        The work phone number of the member

      • personal_phonestring

        The personal phone number of the member

      • personal_emailstring

        The personal email address of the member

      • departmentstring

        The department of the member

      • tax_typestring

        The tax type of the member

      • occupied_seatboolean

        Whether the member occupies a billing seat

      • os_usernamestring

        The OS username of the member

      • employment_typestring

        The employment type of the member

      • work_modestring

        The workplace mode of the member

      • in_office_percentinteger

        The in-office work percentage of the member

      • remote_percentinteger

        The remote work percentage of the member

      • employed_throughstring

        How the member is employed

      • eor_namestring

        The EOR or vendor name of the member

      • account_codestring

        The account code of the member

      • employment_commentsstring

        Employment comments for the member

      • contractual_end_datestring

        The contractual end date of the member

      • termination_reasonstring

        The termination reason of the member

      • home_addressstring

        The home address of the member

      • home_address_countrystring

        The home address country of the member

      • home_address_statestring

        The home address state of the member

      • work_addressstring

        The work address of the member

      • work_address_countrystring

        The work address country of the member

      • work_address_statestring

        The work address state of the member

    • limitsobject
      object
      • limits_by_shiftsboolean

        Whether the shifts are used to set allowance limits

      • weekly_limitnumber

        The hours member is allowed to work weekly

      • daily_limitnumber

        The hours daily limit of the member

      • dow_limitarray

        The days when member is allowed to track time

        array<string>

        The days when member is allowed to track time

        items
        string
      • expected_per_weeknumber

        The hours member is expected to work weekly

      • dow_expectedarray

        The days when member is expected to track time

        array<string>

        The days when member is expected to track time

        items
        string
    • typestring required

      How the member was provisioned: standard, scim, silent or sso

    • metadataobject required

      Metadata attached to the member

      object

      Metadata attached to the member

    • view_onlyboolean required

      View-only member flag

Example response
json
{
  "organization_member": {
    "user_id": 0,
    "pay_rate": "string",
    "bill_rate": "string",
    "currency": "string",
    "membership_role": "string",
    "membership_status": "string",
    "created_at": "2024-01-15T10:30:00Z",
    "updated_at": "2024-01-15T10:30:00Z",
    "removed_at": "2024-01-15T10:30:00Z",
    "last_client_activity": "2024-01-15T10:30:00Z",
    "user": {
      "id": 0,
      "name": "string",
      "first_name": "string",
      "last_name": "string",
      "email": "string",
      "time_zone": "string",
      "ip_address": "string",
      "status": "string",
      "created_at": "2024-01-15T10:30:00Z",
      "updated_at": "2024-01-15T10:30:00Z"
    },
    "project_members": [
      {
        "pay_rate": "string",
        "bill_rate": "string",
        "currency": "string",
        "membership_role": "string",
        "membership_status": "string",
        "created_at": "2024-01-15T10:30:00Z",
        "updated_at": "2024-01-15T10:30:00Z",
        "removed_at": "2024-01-15T10:30:00Z",
        "last_client_activity": "2024-01-15T10:30:00Z",
        "team_id": 0,
        "profile": {
          "job_title": "string",
          "job_type": "string",
          "location": "string",
          "employee_id": "string",
          "tax_info": "string",
          "birthday": "2024-01-15",
          "started_on": "2024-01-15",
          "custom_fields": {},
          "work_phone": "string",
          "personal_phone": "string",
          "personal_email": "string",
          "department": "string",
          "tax_type": "string",
          "occupied_seat": false,
          "os_username": "string",
          "employment_type": "string",
          "work_mode": "string",
          "in_office_percent": 0,
          "remote_percent": 0,
          "employed_through": "string",
          "eor_name": "string",
          "account_code": "string",
          "employment_comments": "string",
          "contractual_end_date": "2024-01-15",
          "termination_reason": "string",
          "home_address": "string",
          "home_address_country": "string",
          "home_address_state": "string",
          "work_address": "string",
          "work_address_country": "string",
          "work_address_state": "string"
        },
        "project_id": 0,
        "project_type": "string",
        "project_status": "string"
      }
    ],
    "pay_period": "string",
    "fixed_pay_rate": "string",
    "period_week_day": 0,
    "period_start_day": 0,
    "period_second_start_day": 0,
    "period_anchor_date": "2024-01-15",
    "trackable": "string",
    "effective_role": "string",
    "profile": null,
    "limits": {
      "limits_by_shifts": false,
      "weekly_limit": 0,
      "daily_limit": 0,
      "dow_limit": [
        "string"
      ],
      "expected_per_week": 0,
      "dow_expected": [
        "string"
      ]
    },
    "type": "string",
    "metadata": {},
    "view_only": false
  }
}
400Invalid parameters
object

Hubstaff_Public_V2_Entities_Error model

  • codestring required

    Legacy string error code for backward compatibility

  • error_codeinteger

    Numeric error code for i18n/programmatic handling. Ranges: 10000-10999 (Auth), 11000-11999 (Validation), 12000-12999 (Resource), 13000-13999 (Rate Limit), 14000-14999 (Time Entry/Activity), 15000-15999 (System). See GET /v2/error_codes for full reference.

  • errorstring required

    Human-readable error message

  • detailsarray

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    array<string>

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    items
    string
Example response
json
{
  "code": "string",
  "error_code": 0,
  "error": "string",
  "details": [
    "string"
  ]
}
401Unauthorized
object

Hubstaff_Public_V2_Entities_Error model

  • codestring required

    Legacy string error code for backward compatibility

  • error_codeinteger

    Numeric error code for i18n/programmatic handling. Ranges: 10000-10999 (Auth), 11000-11999 (Validation), 12000-12999 (Resource), 13000-13999 (Rate Limit), 14000-14999 (Time Entry/Activity), 15000-15999 (System). See GET /v2/error_codes for full reference.

  • errorstring required

    Human-readable error message

  • detailsarray

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    array<string>

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    items
    string
Example response
json
{
  "code": "string",
  "error_code": 0,
  "error": "string",
  "details": [
    "string"
  ]
}
403API access is only for organizations on an active plan
object

Hubstaff_Public_V2_Entities_Error model

  • codestring required

    Legacy string error code for backward compatibility

  • error_codeinteger

    Numeric error code for i18n/programmatic handling. Ranges: 10000-10999 (Auth), 11000-11999 (Validation), 12000-12999 (Resource), 13000-13999 (Rate Limit), 14000-14999 (Time Entry/Activity), 15000-15999 (System). See GET /v2/error_codes for full reference.

  • errorstring required

    Human-readable error message

  • detailsarray

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    array<string>

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    items
    string
Example response
json
{
  "code": "string",
  "error_code": 0,
  "error": "string",
  "details": [
    "string"
  ]
}
404Could not find record
object

Hubstaff_Public_V2_Entities_Error model

  • codestring required

    Legacy string error code for backward compatibility

  • error_codeinteger

    Numeric error code for i18n/programmatic handling. Ranges: 10000-10999 (Auth), 11000-11999 (Validation), 12000-12999 (Resource), 13000-13999 (Rate Limit), 14000-14999 (Time Entry/Activity), 15000-15999 (System). See GET /v2/error_codes for full reference.

  • errorstring required

    Human-readable error message

  • detailsarray

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    array<string>

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    items
    string
Example response
json
{
  "code": "string",
  "error_code": 0,
  "error": "string",
  "details": [
    "string"
  ]
}
429Rate limit exceeded
object

Hubstaff_Public_V2_Entities_Error model

  • codestring required

    Legacy string error code for backward compatibility

  • error_codeinteger

    Numeric error code for i18n/programmatic handling. Ranges: 10000-10999 (Auth), 11000-11999 (Validation), 12000-12999 (Resource), 13000-13999 (Rate Limit), 14000-14999 (Time Entry/Activity), 15000-15999 (System). See GET /v2/error_codes for full reference.

  • errorstring required

    Human-readable error message

  • detailsarray

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    array<string>

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    items
    string
Example response
json
{
  "code": "string",
  "error_code": 0,
  "error": "string",
  "details": [
    "string"
  ]
}

Update project members

PUT/v2/projects/{project_id}/update_members

Updates project members.

Returns {success: true} on success.

Only pass in the members you want to change.

Available roles:

  • viewer - View-only access
  • user - Standard member access
  • manager - Project manager access
  • remove - Removes user from project

You can also specify pay_rate and bill_rate for each member. To remove a rate, pass null.

Parameters

NameInTypeDescription
project_idrequired
pathinteger (int32)
Project ID

Request body

object

Update project members

  • membersarray required
    array<object>
    items
    object
    • user_idinteger required

      User ID

    • rolestring

      Role for the user.

    • pay_ratenumber

      Default pay rate (will be rounded to 2 decimal places). Set to null to remove the rate

    • bill_ratenumber

      Default bill rate (will be rounded to 2 decimal places). Set to null to remove the rate

Responses

200Updated successfully
400Invalid parameters
object

Hubstaff_Public_V2_Entities_Error model

  • codestring required

    Legacy string error code for backward compatibility

  • error_codeinteger

    Numeric error code for i18n/programmatic handling. Ranges: 10000-10999 (Auth), 11000-11999 (Validation), 12000-12999 (Resource), 13000-13999 (Rate Limit), 14000-14999 (Time Entry/Activity), 15000-15999 (System). See GET /v2/error_codes for full reference.

  • errorstring required

    Human-readable error message

  • detailsarray

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    array<string>

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    items
    string
Example response
json
{
  "code": "string",
  "error_code": 0,
  "error": "string",
  "details": [
    "string"
  ]
}
401Unauthorized
object

Hubstaff_Public_V2_Entities_Error model

  • codestring required

    Legacy string error code for backward compatibility

  • error_codeinteger

    Numeric error code for i18n/programmatic handling. Ranges: 10000-10999 (Auth), 11000-11999 (Validation), 12000-12999 (Resource), 13000-13999 (Rate Limit), 14000-14999 (Time Entry/Activity), 15000-15999 (System). See GET /v2/error_codes for full reference.

  • errorstring required

    Human-readable error message

  • detailsarray

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    array<string>

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    items
    string
Example response
json
{
  "code": "string",
  "error_code": 0,
  "error": "string",
  "details": [
    "string"
  ]
}
403API access is only for organizations on an active plan
object

Hubstaff_Public_V2_Entities_Error model

  • codestring required

    Legacy string error code for backward compatibility

  • error_codeinteger

    Numeric error code for i18n/programmatic handling. Ranges: 10000-10999 (Auth), 11000-11999 (Validation), 12000-12999 (Resource), 13000-13999 (Rate Limit), 14000-14999 (Time Entry/Activity), 15000-15999 (System). See GET /v2/error_codes for full reference.

  • errorstring required

    Human-readable error message

  • detailsarray

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    array<string>

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    items
    string
Example response
json
{
  "code": "string",
  "error_code": 0,
  "error": "string",
  "details": [
    "string"
  ]
}
404Could not find record
object

Hubstaff_Public_V2_Entities_Error model

  • codestring required

    Legacy string error code for backward compatibility

  • error_codeinteger

    Numeric error code for i18n/programmatic handling. Ranges: 10000-10999 (Auth), 11000-11999 (Validation), 12000-12999 (Resource), 13000-13999 (Rate Limit), 14000-14999 (Time Entry/Activity), 15000-15999 (System). See GET /v2/error_codes for full reference.

  • errorstring required

    Human-readable error message

  • detailsarray

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    array<string>

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    items
    string
Example response
json
{
  "code": "string",
  "error_code": 0,
  "error": "string",
  "details": [
    "string"
  ]
}
429Rate limit exceeded
object

Hubstaff_Public_V2_Entities_Error model

  • codestring required

    Legacy string error code for backward compatibility

  • error_codeinteger

    Numeric error code for i18n/programmatic handling. Ranges: 10000-10999 (Auth), 11000-11999 (Validation), 12000-12999 (Resource), 13000-13999 (Rate Limit), 14000-14999 (Time Entry/Activity), 15000-15999 (System). See GET /v2/error_codes for full reference.

  • errorstring required

    Human-readable error message

  • detailsarray

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    array<string>

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    items
    string
Example response
json
{
  "code": "string",
  "error_code": 0,
  "error": "string",
  "details": [
    "string"
  ]
}

List project members

GET/v2/projects/{project_id}/members

Returns a collection of members for the given project.

Results can be filtered by search, user IDs, membership role, and date range.

membership_role - The permission role the member has in this project

  • manager - An manager can track time, see data for any member within the project, can change settings, and manage membership within the project
  • user - A user can track time against the project and see only their own data within the project
  • viewer - A viewer can access reports based on data for any member within the project but can not change anything

Note: A member must have membership within a project in order to track on that project, even if they are an organization owner or manager

Filtering by dates:

You can filter members by when they were added to the project using the created_at parameter:

  • Use created_at[start] to get members added on or after a specific date
  • Use created_at[stop] to get members added before a specific date
  • Use both to get members added within a date range

You can also filter by when membership was last updated using the updated_at parameter:

  • Use updated_at[start] to get members updated on or after a specific date
  • Use updated_at[stop] to get members updated before a specific date
  • Use both to get members updated within a date range

Parameters

NameInTypeDescription
project_idrequired
pathinteger (int32)
page_start_id
queryinteger (int32)
The page start ID.
page_limit
queryinteger (int32)
The default page size
search[email]
querystring
An email to search for members
search[name]
querystring
A name to search for members
include_removed
queryboolean
Include members that were removed from the project
include_profile
queryboolean
Include member profile information
direct_only
queryboolean
If true, only include members assigned directly to the project and not as member of a team working on the project
membership_roles
queryarray string[]
Search by membership role
Possible valuesmanageruserviewer
created_at[start]
querystring (date-time)
Start date for created_at filter (inclusive)
created_at[stop]
querystring (date-time)
End date for created_at filter (exclusive)
updated_at[start]
querystring (date-time)
Start date for updated_at filter (inclusive)
updated_at[stop]
querystring (date-time)
End date for updated_at filter (exclusive)
user_ids
queryarray integer[]
List of user IDs
include
queryarray string[]
Specify related data to side load.
Possible valuesusers

Responses

200A list of members
object
  • membersarray
    array<object>
    items
    object

    ProjectMember model

    • user_idinteger required

      User ID

    • pay_ratestring

      Pay rate

    • bill_ratestring

      Bill rate

    • currencystring

      Currency of pay and bill rates

    • membership_rolestring required

      Membership role

    • membership_statusstring required

      Membership status

    • created_atstring required

      When the member was added to the organization/project

    • updated_atstring required

      When the membership was last updated

    • removed_atstring

      When the member was removed

    • last_client_activitystring required

      Last client activity of user

    • team_idinteger

      Team ID

    • profileobject
      object
      • job_titlestring

        The job title of the member

      • job_typestring

        The job type of the member

      • locationstring

        The location of the member

      • employee_idstring

        The employee id of the member

      • tax_infostring

        The tax info of the member

      • birthdaystring

        The member's birthday (YYYY-MM-DD). If the year is not available, it will be 0000

      • started_onstring

        The start date of the member

      • custom_fieldsobject

        Custom fields

        object

        Custom fields

      • work_phonestring

        The work phone number of the member

      • personal_phonestring

        The personal phone number of the member

      • personal_emailstring

        The personal email address of the member

      • departmentstring

        The department of the member

      • tax_typestring

        The tax type of the member

      • occupied_seatboolean

        Whether the member occupies a billing seat

      • os_usernamestring

        The OS username of the member

      • employment_typestring

        The employment type of the member

      • work_modestring

        The workplace mode of the member

      • in_office_percentinteger

        The in-office work percentage of the member

      • remote_percentinteger

        The remote work percentage of the member

      • employed_throughstring

        How the member is employed

      • eor_namestring

        The EOR or vendor name of the member

      • account_codestring

        The account code of the member

      • employment_commentsstring

        Employment comments for the member

      • contractual_end_datestring

        The contractual end date of the member

      • termination_reasonstring

        The termination reason of the member

      • home_addressstring

        The home address of the member

      • home_address_countrystring

        The home address country of the member

      • home_address_statestring

        The home address state of the member

      • work_addressstring

        The work address of the member

      • work_address_countrystring

        The work address country of the member

      • work_address_statestring

        The work address state of the member

Example response
json
{
  "members": [
    {
      "user_id": 0,
      "pay_rate": "string",
      "bill_rate": "string",
      "currency": "string",
      "membership_role": "string",
      "membership_status": "string",
      "created_at": "2024-01-15T10:30:00Z",
      "updated_at": "2024-01-15T10:30:00Z",
      "removed_at": "2024-01-15T10:30:00Z",
      "last_client_activity": "2024-01-15T10:30:00Z",
      "team_id": 0,
      "profile": {
        "job_title": "string",
        "job_type": "string",
        "location": "string",
        "employee_id": "string",
        "tax_info": "string",
        "birthday": "2024-01-15",
        "started_on": "2024-01-15",
        "custom_fields": {},
        "work_phone": "string",
        "personal_phone": "string",
        "personal_email": "string",
        "department": "string",
        "tax_type": "string",
        "occupied_seat": false,
        "os_username": "string",
        "employment_type": "string",
        "work_mode": "string",
        "in_office_percent": 0,
        "remote_percent": 0,
        "employed_through": "string",
        "eor_name": "string",
        "account_code": "string",
        "employment_comments": "string",
        "contractual_end_date": "2024-01-15",
        "termination_reason": "string",
        "home_address": "string",
        "home_address_country": "string",
        "home_address_state": "string",
        "work_address": "string",
        "work_address_country": "string",
        "work_address_state": "string"
      }
    }
  ]
}
400Invalid parameters
object

Hubstaff_Public_V2_Entities_Error model

  • codestring required

    Legacy string error code for backward compatibility

  • error_codeinteger

    Numeric error code for i18n/programmatic handling. Ranges: 10000-10999 (Auth), 11000-11999 (Validation), 12000-12999 (Resource), 13000-13999 (Rate Limit), 14000-14999 (Time Entry/Activity), 15000-15999 (System). See GET /v2/error_codes for full reference.

  • errorstring required

    Human-readable error message

  • detailsarray

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    array<string>

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    items
    string
Example response
json
{
  "code": "string",
  "error_code": 0,
  "error": "string",
  "details": [
    "string"
  ]
}
401Unauthorized
object

Hubstaff_Public_V2_Entities_Error model

  • codestring required

    Legacy string error code for backward compatibility

  • error_codeinteger

    Numeric error code for i18n/programmatic handling. Ranges: 10000-10999 (Auth), 11000-11999 (Validation), 12000-12999 (Resource), 13000-13999 (Rate Limit), 14000-14999 (Time Entry/Activity), 15000-15999 (System). See GET /v2/error_codes for full reference.

  • errorstring required

    Human-readable error message

  • detailsarray

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    array<string>

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    items
    string
Example response
json
{
  "code": "string",
  "error_code": 0,
  "error": "string",
  "details": [
    "string"
  ]
}
403API access is only for organizations on an active plan
object

Hubstaff_Public_V2_Entities_Error model

  • codestring required

    Legacy string error code for backward compatibility

  • error_codeinteger

    Numeric error code for i18n/programmatic handling. Ranges: 10000-10999 (Auth), 11000-11999 (Validation), 12000-12999 (Resource), 13000-13999 (Rate Limit), 14000-14999 (Time Entry/Activity), 15000-15999 (System). See GET /v2/error_codes for full reference.

  • errorstring required

    Human-readable error message

  • detailsarray

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    array<string>

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    items
    string
Example response
json
{
  "code": "string",
  "error_code": 0,
  "error": "string",
  "details": [
    "string"
  ]
}
404Could not find record
object

Hubstaff_Public_V2_Entities_Error model

  • codestring required

    Legacy string error code for backward compatibility

  • error_codeinteger

    Numeric error code for i18n/programmatic handling. Ranges: 10000-10999 (Auth), 11000-11999 (Validation), 12000-12999 (Resource), 13000-13999 (Rate Limit), 14000-14999 (Time Entry/Activity), 15000-15999 (System). See GET /v2/error_codes for full reference.

  • errorstring required

    Human-readable error message

  • detailsarray

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    array<string>

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    items
    string
Example response
json
{
  "code": "string",
  "error_code": 0,
  "error": "string",
  "details": [
    "string"
  ]
}
429Rate limit exceeded
object

Hubstaff_Public_V2_Entities_Error model

  • codestring required

    Legacy string error code for backward compatibility

  • error_codeinteger

    Numeric error code for i18n/programmatic handling. Ranges: 10000-10999 (Auth), 11000-11999 (Validation), 12000-12999 (Resource), 13000-13999 (Rate Limit), 14000-14999 (Time Entry/Activity), 15000-15999 (System). See GET /v2/error_codes for full reference.

  • errorstring required

    Human-readable error message

  • detailsarray

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    array<string>

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    items
    string
Example response
json
{
  "code": "string",
  "error_code": 0,
  "error": "string",
  "details": [
    "string"
  ]
}

List team members

GET/v2/teams/{team_id}/members

Returns a collection of members for the given team.

Membership roles:

  • manager - Can track time, view all data, change settings, and manage membership
  • user - Can track time and view only their own data
  • viewer - Can view reports but cannot make changes

Parameters

NameInTypeDescription
team_idrequired
pathinteger (int32)
Team ID
page_start_id
queryinteger (int32)
The page start ID.
page_limit
queryinteger (int32)
The default page size
include
queryarray string[]
Specify related data to side load.
Possible valuesusers

Responses

200A list of members
object
  • team_membersarray
    array<object>
    items
    object

    TeamMember model

    • user_idinteger required

      User ID

    • rolestring required

      Default Project role

    • leadboolean required

      Is the member a team lead?

    • created_atstring required

      When the record was created

    • updated_atstring required

      When the record was last updated

Example response
json
{
  "team_members": [
    {
      "user_id": 0,
      "role": "string",
      "lead": false,
      "created_at": "2024-01-15T10:30:00Z",
      "updated_at": "2024-01-15T10:30:00Z"
    }
  ]
}
400Invalid parameters
object

Hubstaff_Public_V2_Entities_Error model

  • codestring required

    Legacy string error code for backward compatibility

  • error_codeinteger

    Numeric error code for i18n/programmatic handling. Ranges: 10000-10999 (Auth), 11000-11999 (Validation), 12000-12999 (Resource), 13000-13999 (Rate Limit), 14000-14999 (Time Entry/Activity), 15000-15999 (System). See GET /v2/error_codes for full reference.

  • errorstring required

    Human-readable error message

  • detailsarray

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    array<string>

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    items
    string
Example response
json
{
  "code": "string",
  "error_code": 0,
  "error": "string",
  "details": [
    "string"
  ]
}
401Unauthorized
object

Hubstaff_Public_V2_Entities_Error model

  • codestring required

    Legacy string error code for backward compatibility

  • error_codeinteger

    Numeric error code for i18n/programmatic handling. Ranges: 10000-10999 (Auth), 11000-11999 (Validation), 12000-12999 (Resource), 13000-13999 (Rate Limit), 14000-14999 (Time Entry/Activity), 15000-15999 (System). See GET /v2/error_codes for full reference.

  • errorstring required

    Human-readable error message

  • detailsarray

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    array<string>

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    items
    string
Example response
json
{
  "code": "string",
  "error_code": 0,
  "error": "string",
  "details": [
    "string"
  ]
}
403API access is only for organizations on an active plan
object

Hubstaff_Public_V2_Entities_Error model

  • codestring required

    Legacy string error code for backward compatibility

  • error_codeinteger

    Numeric error code for i18n/programmatic handling. Ranges: 10000-10999 (Auth), 11000-11999 (Validation), 12000-12999 (Resource), 13000-13999 (Rate Limit), 14000-14999 (Time Entry/Activity), 15000-15999 (System). See GET /v2/error_codes for full reference.

  • errorstring required

    Human-readable error message

  • detailsarray

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    array<string>

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    items
    string
Example response
json
{
  "code": "string",
  "error_code": 0,
  "error": "string",
  "details": [
    "string"
  ]
}
404Could not find record
object

Hubstaff_Public_V2_Entities_Error model

  • codestring required

    Legacy string error code for backward compatibility

  • error_codeinteger

    Numeric error code for i18n/programmatic handling. Ranges: 10000-10999 (Auth), 11000-11999 (Validation), 12000-12999 (Resource), 13000-13999 (Rate Limit), 14000-14999 (Time Entry/Activity), 15000-15999 (System). See GET /v2/error_codes for full reference.

  • errorstring required

    Human-readable error message

  • detailsarray

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    array<string>

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    items
    string
Example response
json
{
  "code": "string",
  "error_code": 0,
  "error": "string",
  "details": [
    "string"
  ]
}
429Rate limit exceeded
object

Hubstaff_Public_V2_Entities_Error model

  • codestring required

    Legacy string error code for backward compatibility

  • error_codeinteger

    Numeric error code for i18n/programmatic handling. Ranges: 10000-10999 (Auth), 11000-11999 (Validation), 12000-12999 (Resource), 13000-13999 (Rate Limit), 14000-14999 (Time Entry/Activity), 15000-15999 (System). See GET /v2/error_codes for full reference.

  • errorstring required

    Human-readable error message

  • detailsarray

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    array<string>

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    items
    string
Example response
json
{
  "code": "string",
  "error_code": 0,
  "error": "string",
  "details": [
    "string"
  ]
}

Update team members

PUT/v2/teams/{team_id}/update_members

Updates team members.

Returns {success: true} on success.

Only pass in the members you want to change.

Available roles:

  • viewer - View-only access
  • user - Standard member access
  • manager - Team manager access
  • remove - Removes user from team

Note: A team lead must have the manager role. Only organization owners or managers can adjust the lead option.

Batch size: Up to 150 members per request. Larger requests are rejected with HTTP 400 and code “too_many_members”.

Parameters

NameInTypeDescription
team_idrequired
pathinteger (int32)
Team ID

Request body

object

Update team members

  • membersarray required
    array<object>
    items
    object
    • user_idinteger required

      User ID

    • rolestring

      Role for the user.

    • leadboolean

      Whether to set this user as a team lead

Responses

200Updated successfully
400Invalid parameters
object

Hubstaff_Public_V2_Entities_Error model

  • codestring required

    Legacy string error code for backward compatibility

  • error_codeinteger

    Numeric error code for i18n/programmatic handling. Ranges: 10000-10999 (Auth), 11000-11999 (Validation), 12000-12999 (Resource), 13000-13999 (Rate Limit), 14000-14999 (Time Entry/Activity), 15000-15999 (System). See GET /v2/error_codes for full reference.

  • errorstring required

    Human-readable error message

  • detailsarray

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    array<string>

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    items
    string
Example response
json
{
  "code": "string",
  "error_code": 0,
  "error": "string",
  "details": [
    "string"
  ]
}
401Unauthorized
object

Hubstaff_Public_V2_Entities_Error model

  • codestring required

    Legacy string error code for backward compatibility

  • error_codeinteger

    Numeric error code for i18n/programmatic handling. Ranges: 10000-10999 (Auth), 11000-11999 (Validation), 12000-12999 (Resource), 13000-13999 (Rate Limit), 14000-14999 (Time Entry/Activity), 15000-15999 (System). See GET /v2/error_codes for full reference.

  • errorstring required

    Human-readable error message

  • detailsarray

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    array<string>

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    items
    string
Example response
json
{
  "code": "string",
  "error_code": 0,
  "error": "string",
  "details": [
    "string"
  ]
}
403API access is only for organizations on an active plan
object

Hubstaff_Public_V2_Entities_Error model

  • codestring required

    Legacy string error code for backward compatibility

  • error_codeinteger

    Numeric error code for i18n/programmatic handling. Ranges: 10000-10999 (Auth), 11000-11999 (Validation), 12000-12999 (Resource), 13000-13999 (Rate Limit), 14000-14999 (Time Entry/Activity), 15000-15999 (System). See GET /v2/error_codes for full reference.

  • errorstring required

    Human-readable error message

  • detailsarray

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    array<string>

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    items
    string
Example response
json
{
  "code": "string",
  "error_code": 0,
  "error": "string",
  "details": [
    "string"
  ]
}
404Could not find record
object

Hubstaff_Public_V2_Entities_Error model

  • codestring required

    Legacy string error code for backward compatibility

  • error_codeinteger

    Numeric error code for i18n/programmatic handling. Ranges: 10000-10999 (Auth), 11000-11999 (Validation), 12000-12999 (Resource), 13000-13999 (Rate Limit), 14000-14999 (Time Entry/Activity), 15000-15999 (System). See GET /v2/error_codes for full reference.

  • errorstring required

    Human-readable error message

  • detailsarray

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    array<string>

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    items
    string
Example response
json
{
  "code": "string",
  "error_code": 0,
  "error": "string",
  "details": [
    "string"
  ]
}
429Rate limit exceeded
object

Hubstaff_Public_V2_Entities_Error model

  • codestring required

    Legacy string error code for backward compatibility

  • error_codeinteger

    Numeric error code for i18n/programmatic handling. Ranges: 10000-10999 (Auth), 11000-11999 (Validation), 12000-12999 (Resource), 13000-13999 (Rate Limit), 14000-14999 (Time Entry/Activity), 15000-15999 (System). See GET /v2/error_codes for full reference.

  • errorstring required

    Human-readable error message

  • detailsarray

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    array<string>

    Per-attribute validation errors: [{attribute, error}]. Present on validation failures.

    items
    string
Example response
json
{
  "code": "string",
  "error_code": 0,
  "error": "string",
  "details": [
    "string"
  ]
}