The Teams API provides a secure REST interface to Parsec for Teams resources. Using API keys created in the Parsec for Teams dashboard, external applications can manage team members, team computers, and guest access invites. This feature requires a subscription to an Enterprise plan.
API keys are managed by the team owner in the Parsec for Teams dashboard. All API requests require authentication via bearer auth and must be made over HTTPS.
curl "https://api.parsec.app/v1/teams/1or58Uz1O6ObcpGCN9/guest-access-invites?offset=0&limit=50" \
-H 'Authorization: Bearer tapi_1or58Uz1O6ObcpGCN9.YmM3ZDc1ZDM2ZTg2MGQ4MWQ4NWI2YTkw'
When team owners create API keys, they must explicitly grant the key access to the endpoints that they key will be used for. Each endpoint description in this document contains the permission that must be assigned to the API key in order to access the endpoint.
NOTE: It is critical to keep the API keys secret. Bad actors could use an API key to add themselves to the team and give themselves access to Team Computers.
Standard successful responses will have a data
key which will be an object for the requested resource.
For requests with multiple resources, data
is an array of paginated resources with count
indicating total number of resources for the query. offset
and limit
query parameters can be used to paginate through the query results.
// single resource
{
"data": {}
}
// paginated resources
{
"data": []
"count": 0
}
The API uses standard HTTP status codes to indicate success or failure of the request.
Status Code | Description |
---|---|
200 | OK |
204 | No Content |
400 | Bad Request |
401 | Unauthorized |
404 | Not Found |
429 | Too Many Requests |
500 | Internal Server Error |
If the request status code is unsuccessful, additional details will be returned in a message
key on the response body like following:
{
"message": "Unauthorized"
}
Timestamps included in request body and responses are quoted strings in RFC 3339
format, with sub-second precision added if present.
Get a paginated list of app rules. The View App Rules permission is required to access this endpoint.
teamID required | string ID of team |
offset required | integer >= 0 Number of results to skip before returning results |
limit required | integer [ 1 .. 200 ] Number of results to return |
{- "data": [
- {
- "id": "string",
- "team_id": "string",
- "name": "string",
- "is_default": true,
- "team_member_count": 0,
- "team_machine_count": 0,
- "app_config": { },
- "enforce_tfa": true,
- "enforce_saml": true,
- "enforce_ip_verification": true,
- "client_scope_expiry": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "count": 0
}
Unassign the Team App Rule from team machines and members. The Manage App Rule Assignments permission is required to access this endpoint.
user_ids
, or team_machine_ids
.teamID required | string ID of team |
appRuleID required | string ID of the Team App Rule |
user_ids | Array of integers |
team_machine_ids | Array of strings |
{- "user_ids": [
- 123,
- 456
], - "team_machine_ids": [
- "tm_1pZrhJCL594stqNqqVMadn2Ya0d",
- "tm_25snElnM8jGQYPfrCNV0pGGbRyk"
]
}
Assign the Team App Rule to team machines and members. The Manage App Rule Assignments permission is required to access this endpoint.
user_ids
, or team_machine_ids
.teamID required | string ID of team |
appRuleID required | string ID of the Team App Rule |
user_ids | Array of numbers |
team_machine_ids | Array of strings |
{- "user_ids": [
- 123,
- 456
], - "team_machine_ids": [
- "tm_1pZrhJCL594stqNqqVMadn2Ya0d",
- "tm_25snElnM8jGQYPfrCNV0pGGbRyk"
]
}
Get Team Events. The Access Audit Log permission is required to access this endpoint.
teamID required | string ID of team |
start_at | string <date-time> Only include events that occurred on or after this date-time. |
end_at | string <date-time> Only include events that occurred at or before this date-time. |
user_id | integer >= 1 Only include events with this user_id. |
event_names | Array of strings unique Only include events with these names (comma-separated). |
limit required | integer [ 1 .. 1000 ] Limit the number of events returned. |
cursor | string = 27 characters ID of the first event to start paging from (inclusive). May not be supplied with |
after | string = 27 characters ID of the first event to start paging from (exclusive). May not be supplied with |
{- "data": [
- {
- "id": "1pUe1x3n9HvKpa7CXxRU4DyRqCP",
- "type": "event",
- "name": "team_group_create",
- "timestamp": "2019-08-24T14:15:22Z",
- "user_id": 1234,
- "team_id": "1pUe1wMMIFsCrLWC6zVbAV4DzWv",
- "data": {
- "team_id": "1pUe1wMMIFsCrLWC6zVbAV4DzWv",
- "group_id": 4321,
- "group_name": "User test group"
}
}
], - "next_cursor": "0ujssxh0cECutqzMgbtXSGnjorm"
}
Get a paginated list of team groups. The View Groups permission is required to access this endpoint.
teamID required | string ID of team |
name | string Search groups by name |
offset required | integer >= 0 Number of results to skip before returning results |
limit required | integer [ 1 .. 200 ] Number of results to return |
{- "data": [
- {
- "id": 1234,
- "team_id": "1pUe1wMMIFsCrLWC6zVbAV4DzWv",
- "name": "Unassigned",
- "is_default": true,
- "team_member_count": 4,
- "team_machine_count": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - {
- "id": 1234,
- "team_id": "1pUe1wMMIFsCrLWC6zVbAV4DzWv",
- "name": "Example group",
- "is_default": false,
- "allow_connections_within_group": true,
- "show_group_assigned_managed_hosts": true,
- "show_user_assigned_managed_hosts": true,
- "show_personal_hosts": true,
- "team_member_count": 8,
- "team_machine_count": 20,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "count": 1
}
Create a team group. The Create Team Group permission is required to access this endpoint.
teamID required | string ID of team |
group_name required | string [ 2 .. 64 ] characters Name of the group. |
allow_connections_within_group required | boolean or null Let members of this group connect with each other's workstations. This field is required. If this field is false, then show_group_assigned_managed_hosts, show_user_assigned_managed_hosts, and show_personal_hosts will automatically be set to false. |
show_group_assigned_managed_hosts | boolean or null When true, host list may include team computers that are assigned only to the group itself. Disable this toggle to hide those computers. May not be set to true unless allow_connections_within_group is also true. When allow_connections_within_group is true, if this field is not set, it will default to true. |
show_user_assigned_managed_hosts | boolean or null When true, host list may include team computers that are assigned directly to other members in this group. Disable this toggle to hide those computers. May not be set to true unless allow_connections_within_group is also true. |
show_personal_hosts | boolean or null When true, host list may include all personal computers belonging to other members in this group. Disabling this toggle hides those computers. May not be set to true unless allow_connections_within_group is also true. |
{- "group_name": "New York - Designers",
- "allow_connections_within_group": true,
- "show_group_assigned_managed_hosts": true,
- "show_user_assigned_managed_hosts": true,
- "show_personal_hosts": true
}
{- "data": {
- "id": 1234,
- "team_id": "1pUe1wMMIFsCrLWC6zVbAV4DzWv",
- "name": "Example group",
- "is_default": false,
- "allow_connections_within_group": true,
- "show_group_assigned_managed_hosts": true,
- "show_user_assigned_managed_hosts": true,
- "show_personal_hosts": true,
- "team_member_count": 8,
- "team_machine_count": 20,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
Get a team group. The View Groups permission is required to access this endpoint.
teamID required | string ID of team |
groupID required | integer ID of team group |
{- "data": {
- "id": 1234,
- "team_id": "1pUe1wMMIFsCrLWC6zVbAV4DzWv",
- "name": "Example group",
- "is_default": false,
- "allow_connections_within_group": true,
- "show_group_assigned_managed_hosts": true,
- "show_user_assigned_managed_hosts": true,
- "show_personal_hosts": true,
- "team_member_count": 8,
- "team_machine_count": 20,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
Update a team group. The Update Team Group permission is required to access this endpoint.
teamID required | string ID of team |
groupID required | integer ID of team group |
group_name | string [ 2 .. 64 ] characters Name of the group. |
allow_connections_within_group | boolean or null Let members of this group connect with each other's workstations |
show_group_assigned_managed_hosts | boolean When true, host list may include team computers that are assigned only to the group itself. Disable this toggle to hide those computers. May not be set to true unless allow_connections_within_group is also true. When allow_connections_within_group is true, if this field is not set, it will default to true. |
show_user_assigned_managed_hosts | boolean When true, host list may include team computers that are assigned directly to other members in this group. Disable this toggle to hide those computers. May not be set to true unless allow_connections_within_group is also true. |
show_personal_hosts | boolean When true, host list may include all personal computers belonging to other members in this group. Disabling this toggle hides those computers. May not be set to true unless allow_connections_within_group is also true. |
{- "group_name": "New York - Designers",
- "allow_connections_within_group": true,
- "show_group_assigned_managed_hosts": true,
- "show_user_assigned_managed_hosts": true,
- "show_personal_hosts": true
}
{- "data": {
- "id": 1234,
- "team_id": "1pUe1wMMIFsCrLWC6zVbAV4DzWv",
- "name": "Example group",
- "is_default": false,
- "allow_connections_within_group": true,
- "show_group_assigned_managed_hosts": true,
- "show_user_assigned_managed_hosts": true,
- "show_personal_hosts": true,
- "team_member_count": 8,
- "team_machine_count": 20,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
Remove members from the team group. The Remove Group Members permission is required to access this endpoint.
teamID required | string ID of team |
groupID required | integer ID of team group |
user_ids required | Array of integers unique List of members' user IDs |
{- "user_ids": [
- 1234,
- 2345,
- 3456,
- 4567
]
}
Create connections with other groups. The Add Permitted Team Groups permission is required to access this endpoint. Allow this group to accept incoming
connections or to make outgoing
connections. This endpoint is used to create the visibility settings for a group's host visibility permissions either with machines belonging to other groups, or machines belonging to the group itself. In order to enable any connection permission for the group itself, that group must have allow_connections_within_group set to true.
teamID required | string ID of team |
groupID required | integer ID of team group |
group_ids required | Array of integers non-empty unique List of group IDs |
direction required | string Enum: "incoming" "outgoing" Define how this group's members connect with other groups on your team. |
show_group_assigned_managed_hosts required | boolean or null When true, host list may include team computers that are assigned only to the group itself. Disable this toggle to hide those computers. May not be set to true unless allow_connections_within_group is also true. |
show_user_assigned_managed_hosts required | boolean or null When true, host list may include team computers that are assigned directly to other members in this group. Disable this toggle to hide those computers. |
show_personal_hosts required | boolean or null When true, host list may include all personal computers belonging to other members in this group. Disabling this toggle hides those computers. |
{- "group_ids": [
- 1234,
- 2345,
- 3456,
- 4567
], - "direction": "incoming",
- "show_group_assigned_managed_hosts": true,
- "show_user_assigned_managed_hosts": true,
- "show_personal_hosts": true
}
Remove connections with other groups. The Remove Permitted Team Groups permission is required to access this endpoint.
teamID required | string ID of team |
groupID required | integer ID of team group |
group_ids required | Array of integers non-empty unique List of group IDs |
direction required | string Enum: "incoming" "outgoing" Define which type of connections you want to remove. |
{- "group_ids": [
- 1234,
- 2345,
- 3456,
- 4567
], - "direction": "incoming"
}
Update the group host visibility permissions between groups. The Update Permitted Team Group permission is required to access this endpoint. This endpoint is used to update the visibility settings for a group's host visibility permissions either with machines belonging to other groups, or machines belonging to the group itself. In order to enable any connection permission for the group itself, that group must have allow_connections_within_group set to true.
teamID required | string ID of team |
groupID required | integer ID of team group |
permittedGroupID required | integer ID of permitted team group |
direction required | string Enum: "incoming" "outgoing" Define which in which permission direction the visibility settings should be updated. |
show_group_assigned_managed_hosts | boolean When true, host list may include team computers that are assigned only to the group itself. Disable this toggle to hide those computers. |
show_user_assigned_managed_hosts | boolean When true, host list may include team computers that are assigned directly to other members in this group. Disable this toggle to hide those computers. |
show_personal_hosts | boolean When true, host list may include all personal computers belonging to other members in this group. Disabling this toggle hides those computers. |
{- "direction": "incoming"
}
Deprecated. Please use Assign Team Group Members
instead.
Add members to the team group, removing any previously assigned groups. The Add Group Members permission is required to access this endpoint.
teamID required | string ID of team |
groupID required | integer ID of team group |
user_ids required | Array of integers non-empty unique List of member's user IDs |
{- "user_ids": [
- 1234,
- 2345,
- 3456,
- 4567
]
}
Assign members to the team group. Any previously assigned groups remain. The Add Group Members permission is required to access this endpoint.
teamID required | string ID of team |
groupID required | integer ID of team group |
user_ids required | Array of integers non-empty unique List of member's user IDs |
{- "user_ids": [
- 1234,
- 2345,
- 3456,
- 4567
]
}
Get a team guest access invite. The View Guest Access Links permission is required to access this endpoint.
teamID required | string ID of team |
guestAccessInviteID required | string ID of guest access invite |
{- "data": {
- "id": "1pUe1x3n9HvKpa7CXxRU4DyRqCP",
- "event_name": "Test event",
- "team_id": "1pUe1wMMIFsCrLWC6zVbAV4DzWv",
- "host_user_id": 1234,
- "host_peer_id": "1pUe1weinVRfcejzWTq9srLpsTb",
- "guest_email": "user@example.com",
- "keyboard": false,
- "mouse": false,
- "gamepad": true,
- "time_zone": "America/New_York",
- "starts_at": "2019-08-24T14:15:22Z",
- "expires_at": "2019-08-24T14:15:22Z",
- "last_accessed_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
Update a guest access invite. The Manage Guest Access Links permission is required to access this endpoint.
Permission changes for keyboard, mouse, and gamepad are immediately pushed to connected guests.
Start/expiry updates can optionally use the send_email
parameter to trigger Parsec to send an an update email to the guest.
teamID required | string ID of team |
guestAccessInviteID required | string ID of guest access invite |
host_peer_id | string Peer ID of host machine |
keyboard | boolean Permission setting for controlling the keyboard |
mouse | boolean Permission setting for controlling the mouse |
gamepad | boolean Permission setting for using a gamepad |
time_zone | string >= 3 characters Time zone for starts_at and expires_at (IANA Time Zone database location names) |
starts_at | string <date-time> Timestamp of when guest access starts |
expires_at | string <date-time> Timestamp of when guest access ends |
send_email | boolean Flag for sending Parsec guest access email with updated event information (skipped if starts_at and expires_at did not change) |
{- "host_peer_id": "1pUe1weinVRfcejzWTq9srLpsTb",
- "keyboard": false,
- "mouse": false,
- "gamepad": true,
- "time_zone": "America/New_York",
- "starts_at": "2019-08-24T14:15:22Z",
- "expires_at": "2019-08-26T14:15:22Z",
- "send_email": false
}
{- "data": {
- "id": "1pUe1x3n9HvKpa7CXxRU4DyRqCP",
- "event_name": "Test event",
- "team_id": "1pUe1wMMIFsCrLWC6zVbAV4DzWv",
- "host_user_id": 1234,
- "host_peer_id": "1pUe1weinVRfcejzWTq9srLpsTb",
- "guest_email": "user@example.com",
- "keyboard": false,
- "mouse": false,
- "gamepad": true,
- "time_zone": "America/New_York",
- "starts_at": "2019-08-24T14:15:22Z",
- "expires_at": "2019-08-24T14:15:22Z",
- "last_accessed_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
Cancel a guest access invite. The Manage Guest Access Links permission is required to access this endpoint.
If the guest access invite is unused, the guest access credit will be refunded to the team.
Guests connected to the host machine through the invite will be kicked out on cancellation.
teamID required | string ID of team |
guestAccessInviteID required | string ID of guest access invite |
send_email | boolean Flag for sending Parsec email notification to the guest informing them that the invite has been removed (defaults to false if not provided) |
Get a paginated list of guest access invites. The View Guest Access Links permission is required to access this endpoint.
teamID required | string ID of team |
offset required | integer >= 0 Number of results to skip before returning results |
limit required | integer [ 1 .. 200 ] Number of results to return |
{- "data": [
- {
- "id": "1pUe1x3n9HvKpa7CXxRU4DyRqCP",
- "event_name": "Test event",
- "team_id": "1pUe1wMMIFsCrLWC6zVbAV4DzWv",
- "host_user_id": 1234,
- "host_peer_id": "1pUe1weinVRfcejzWTq9srLpsTb",
- "guest_email": "user@example.com",
- "keyboard": false,
- "mouse": false,
- "gamepad": true,
- "time_zone": "America/New_York",
- "starts_at": "2019-08-24T14:15:22Z",
- "expires_at": "2019-08-24T14:15:22Z",
- "last_accessed_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "count": 1
}
Create a guest access invite. The Create Guest Access Links permission is required to access this endpoint.
Creating a guest access invite will consume 1 guest access credit unless the guest is a member of the team.
starts_at
must be scheduled in future.
expires_at
must be scheduled after starts_at
.
Use optional send_email
parameter value to trigger Parsec to send a guest access invitation email.
teamID required | string ID of team |
host_peer_id required | string Peer ID of host machine |
guest_email required | string <email> Email of guest to be invited for access |
event_name required | string Name of the guest access event |
keyboard required | boolean Permission setting to control the keyboard |
mouse required | boolean Permission setting to control the mouse |
gamepad required | boolean Permission setting for using a gamepad |
time_zone required | string Time zone for |
starts_at required | string <date-time> Timestamp of when guest access starts |
expires_at required | string <date-time> Timestamp of when guest access ends |
message required | string Message to be included in guest access email |
send_email | boolean Flag for sending Parsec guest access email with link to join (defaults to false if not provided) |
{- "host_peer_id": "1pUe1weinVRfcejzWTq9srLpsTb",
- "guest_email": "user@example.com",
- "event_name": "Example event",
- "keyboard": false,
- "mouse": false,
- "gamepad": true,
- "time_zone": "America/New_York",
- "starts_at": "2019-08-24T14:15:22Z",
- "expires_at": "2019-08-24T14:15:22Z",
- "message": "You are invited to the Example event!",
- "send_email": true
}
{- "data": {
- "id": "1pUe1x3n9HvKpa7CXxRU4DyRqCP",
- "event_name": "Test event",
- "team_id": "1pUe1wMMIFsCrLWC6zVbAV4DzWv",
- "host_user_id": 1234,
- "host_peer_id": "1pUe1weinVRfcejzWTq9srLpsTb",
- "guest_email": "user@example.com",
- "keyboard": false,
- "mouse": false,
- "gamepad": true,
- "time_zone": "America/New_York",
- "starts_at": "2019-08-24T14:15:22Z",
- "expires_at": "2019-08-24T14:15:22Z",
- "last_accessed_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
Force disconnect the guest from the guest access host machine. If guest is connected to host machine at the time of the request, they will get disconnected from host machine immediately.
If the guest access invite is still within valid window of start and expiry, the guest will be able to reconnect to the host machine again. To fully remove guest's access to host machine, the guest access invite should be deleted instead.
The Team Machine Kick Guest permission is required to access this endpoint.
teamID required | string ID of team |
guestAccessInviteID required | string ID of guest access invite |
Get a team's guest access invite credits balance. The View Credit Balance permission is required to access this endpoint.
teamID required | string ID of team |
{- "balance": 0
}
Get a paginated list of team machines. Various filters can be applied through query parameters to narrow the result down to specific subset of the team machines. The View Team Computers permission is required to access this endpoint.
teamID required | string ID of team |
offset required | integer >= 0 Number of results to skip before returning results |
limit required | integer [ 1 .. 200 ] Number of results to return |
user_id | integer Filter by machine's assigned team member user ID |
team_group_id | integer Filter by machine's assigned team group ID |
name | string Filter by machine's name |
string <email> Filter by machines' assigned member email | |
is_online | boolean Filter by machine's online status |
is_guest_access | boolean Filter by machine's guest access status |
assignment | string Enum: "group" "unassigned" "member" "reservation" Filter by machine's assignment |
{- "data": [
- {
- "id": "tm_1pZrhJCL594stqNqqVMadn2Ya0d",
- "peer_id": "1pZrhJUXwgYoxfe7RuUPSLDEkJU",
- "team_id": "1pZrhKZYneeCsLvsacW7DUcUZ7K",
- "user_id": 1234,
- "is_guest_access": false,
- "is_online": true,
- "name": "string",
- "guests": [
- {
- "user_id": 4321,
- "guest_id": 1,
- "keyboard": false,
- "mouse": false,
- "gamepad": true
}
], - "team_app_rule": {
- "id": "tar_1pZrhJCL594stqNqqVMadn2Ya0d",
- "name": "example app rule"
}, - "build": "150-92b",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - {
- "id": "tm_1pZs8odlcxDBeYUa7swCuTkDKKb",
- "peer_id": "1pZs8jHlZhsqskDQZgr9WBktDff",
- "team_id": "1pZrhKZYneeCsLvsacW7DUcUZ7K",
- "team_group_id": 25643,
- "is_guest_access": true,
- "is_online": false,
- "name": "string",
- "guests": [ ],
- "team_app_rule": {
- "id": "tar_1pZrhJCL594stqNqqVMadn2Ya0d",
- "name": "example app rule"
}, - "build": "150-92b",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "count": 2
}
Update a team machine. The Manage Team Computers permission is required to access this endpoint.
teamID required | string ID of team |
machineID required | string ID of machine |
name | string Name of machine |
is_guest_access | boolean Enable or disable guest access for machine |
team_app_rule_id | string App Rule ID to assign to the machine |
{- "name": "Example machine",
- "is_guest_access": false,
- "team_app_rule_id": "tar_27ntauS4uIvlrak78LJAUNLwjeM"
}
{- "data": {
- "id": "tm_1pZrhJCL594stqNqqVMadn2Ya0d",
- "peer_id": "1pZrhJUXwgYoxfe7RuUPSLDEkJU",
- "team_id": "1pZrhKZYneeCsLvsacW7DUcUZ7K",
- "user_id": 1234,
- "is_guest_access": false,
- "is_online": true,
- "name": "string",
- "guests": [
- {
- "user_id": 4321,
- "guest_id": 1,
- "keyboard": false,
- "mouse": false,
- "gamepad": true
}
], - "team_app_rule": {
- "id": "tar_1pZrhJCL594stqNqqVMadn2Ya0d",
- "name": "example app rule"
}, - "build": "150-92b",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
Delete a team machine. Existing session for the deleted team machine will be immediately invalidated. The Delete Team Computers permission is required to access this endpoint.
teamID required | string ID of team |
machineID required | string ID of machine |
Get a team machine. The View Team Computers permission is required to access this endpoint.
teamID required | string ID of team |
machineID required | string ID of machine |
{- "data": {
- "id": "tm_1pZrhJCL594stqNqqVMadn2Ya0d",
- "peer_id": "1pZrhJUXwgYoxfe7RuUPSLDEkJU",
- "team_id": "1pZrhKZYneeCsLvsacW7DUcUZ7K",
- "user_id": 1234,
- "is_guest_access": false,
- "is_online": true,
- "name": "string",
- "guests": [
- {
- "user_id": 4321,
- "guest_id": 1,
- "keyboard": false,
- "mouse": false,
- "gamepad": true
}
], - "team_app_rule": {
- "id": "tar_1pZrhJCL594stqNqqVMadn2Ya0d",
- "name": "example app rule"
}, - "build": "150-92b",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
Deprecated. Please use Set Team Machine Assignment
instead.
Assign a team machine to a team member or a team group. The Manage Team Computers permission is required to access this endpoint.
at least one request parameter is required for member user_id
/ email
, or team_group_id
.
team machine cannot be assigned to both member and group at once.
If email is provided and team member has not joined the team yet, a reservation will be created for the machine. Assignment will occur once team member with matching email joins the team.
teamID required | string ID of team |
machineID required | string ID of machine |
user_id | integer User ID of team member |
team_group_id | integer ID of team group |
string Email of team member |
{- "email": "user@example.com"
}
{- "data": {
- "id": "tm_1pZrhJCL594stqNqqVMadn2Ya0d",
- "peer_id": "1pZrhJUXwgYoxfe7RuUPSLDEkJU",
- "team_id": "1pZrhKZYneeCsLvsacW7DUcUZ7K",
- "user_id": 1234,
- "is_guest_access": false,
- "is_online": true,
- "name": "string",
- "guests": [
- {
- "user_id": 4321,
- "guest_id": 1,
- "keyboard": false,
- "mouse": false,
- "gamepad": true
}
], - "team_app_rule": {
- "id": "tar_1pZrhJCL594stqNqqVMadn2Ya0d",
- "name": "example app rule"
}, - "build": "150-92b",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
Delete team machine assignment.
Team member, team group, and reservation assignments will be removed. The Manage Team Computers permission is required to access this endpoint.
Team machine will result in unassigned
state.
teamID required | string ID of team |
machineID required | string ID of machine |
Assign a team machine to a team member or team groups. The Manage Team Computers permission is required to access this endpoint.
at least one request parameter is required for member user_id
/ email
, or team_group_ids
.
team machine cannot be assigned to both member and group at once.
If email is provided and team member has not joined the team yet, a reservation will be created for the machine. Assignment will occur once team member with matching email joins the team.
teamID required | string ID of team |
machineID required | string ID of machine |
user_id | integer User ID of team member |
team_group_ids | Array of integers ID of team group |
string Email of team member |
{- "email": "user@example.com"
}
{- "data": {
- "id": "tm_1pZrhJCL594stqNqqVMadn2Ya0d",
- "peer_id": "1pZrhJUXwgYoxfe7RuUPSLDEkJU",
- "team_id": "1pZrhKZYneeCsLvsacW7DUcUZ7K",
- "user_id": 1234,
- "is_guest_access": false,
- "is_online": true,
- "name": "string",
- "guests": [
- {
- "user_id": 4321,
- "guest_id": 1,
- "keyboard": false,
- "mouse": false,
- "gamepad": true
}
], - "team_app_rule": {
- "id": "tar_1pZrhJCL594stqNqqVMadn2Ya0d",
- "name": "example app rule"
}, - "build": "150-92b",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
Force disconnect all devices associated with the user from host machine. If the user is connected to host machine with multiple devices at the time of the request, all devices will get disconnected from host machine immediately.
The Team Machine Kick User permission is required to access this endpoint.
teamID required | string ID of team |
machineID required | string ID of machine |
userID required | integer ID of user |
Get a paginated list of team members. The View Team Members permission is required to access this endpoint.
teamID required | string ID of team |
group_id | integer Search members by group ID |
string Search members by email | |
is_admin | boolean Search admin members (default is unscoped) |
offset required | integer >= 0 Number of results to skip before returning results |
limit required | integer [ 1 .. 200 ] Number of results to return |
{- "data": [
- {
- "team_id": "1pZpHPoSQDVITgW2CJ9V9AXk9u5",
- "user_id": 1234,
- "group_id": 4321,
- "name": "Example member",
- "email": "member@example.com",
- "is_admin": true,
- "is_saml": true,
- "is_scim": false,
- "team_app_rule": {
- "name": "Default",
- "id": "tar_27ntauS4uIvlrak78LJAUNLwjeM"
}, - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "last_connected_at": "2019-08-24T14:15:22Z"
}
], - "count": 1
}
Remove a team member from the team. The Remove Team Members permission is required to access this endpoint.
Team owner cannot be removed.
Members with API keys cannot be removed, you must first delete the API keys.
Team Computers assigned to the removed team member will be unassigned on removal.
SAML password reset email is optional through send_email
query parameter for SAML enabled team members.
teamID required | string ID of team |
userID required | integer ID of user |
send_email | boolean Deprecated Flag for sending Parsec email for SAML password reset notification (defaults to false if not provided) |
Get a team member. The View Team Members permission is required to access this endpoint.
teamID required | string ID of team |
userID required | integer ID of user |
{- "data": {
- "team_id": "1pZpHPoSQDVITgW2CJ9V9AXk9u5",
- "user_id": 1234,
- "group_id": 4321,
- "name": "Example member",
- "email": "member@example.com",
- "is_admin": true,
- "is_saml": true,
- "is_scim": true,
- "team_app_rule": {
- "name": "Default",
- "id": "tar_27ntauS4uIvlrak78LJAUNLwjeM"
}, - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "last_connected_at": "2019-08-24T14:15:22Z"
}
}
Get a paginated list of team member invites. The View Team Invites permission is required to access this endpoint.
teamID required | string ID of team |
offset required | integer >= 0 Number of results to skip before returning results |
limit required | integer [ 1 .. 200 ] Number of results to return |
{- "data": [
- {
- "team_id": "1pUe1wMMIFsCrLWC6zVbAV4DzWv",
- "email": "user@example.com",
- "expires_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "count": 1
}
Create team member invites for the provided emails. Invites will expire one week from time of creation. Invited team members can join through the join_url
provided in the response or through optional Parsec team invite emails sent with send_email
flag. Only Parsec accounts with matching emails can use the join_url
.
The Create Team Invites permission is required to access this endpoint.
SAML enabled teams should not use team invites, instead team members should be added through the SAML iDP.
teamID required | string ID of team |
emails required | Array of strings <email> [ 1 .. 200 ] items unique [ items <email > ] List of emails to be invited to join the team |
group_id | integer ID of the group to which team members should be added upon joining |
team_app_rule_id | string ID of the team app rule to which team members should be assigned upon joining. ID can be obtained through the admin dashboard. If set, requires the Manage App Rule Assignments permission. |
send_email | boolean Flag for sending Parsec team member email with link to join (defaults to false if not provided) |
{- "emails": [
- "user-1@example.com",
- "user-2@example.com",
- "user-3@example.com"
], - "send_email": true
}
{- "data": [
- {
- "team_id": "1pUe1wMMIFsCrLWC6zVbAV4DzWv",
- "email": "user@example.com",
- "expires_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "count": 1
}
Update team member invites for the provided emails. The Manage Team Invites permission is required to access this endpoint.
teamID required | string ID of team |
emails required | Array of strings <email> [ items <email > ] Emails of users whose invites should be updated. |
group_id | integer ID of the group to which the invited users should be assigned. |
team_app_rule_id | string ID of the team app to which the invited users should be assigned. If set, requires the Manage App Rule Assignments permission. |
{- "emails": [
- "user@example.com"
], - "group_id": 0,
- "team_app_rule_id": "string"
}
{- "data": [
- {
- "team_id": "1pUe1wMMIFsCrLWC6zVbAV4DzWv",
- "email": "user@example.com",
- "expires_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "count": 1
}
Cancel team member invites for the provided emails. The Delete Team Invites permission is required to access this endpoint.
teamID required | string ID of team |
emails required | Array of strings <email> [ items <email > ] Emails of invites to be canceled. |
{- "emails": [
- "user@example.com"
]
}
Cancel team member invites. The Delete Team Invite permission is required to access this endpoint.
teamID required | string ID of team |
emails required | Array of strings <email> [ 1 .. 200 ] items unique [ items <email > ] Emails of users to be invited to your team |
{- "emails": [
- "user-1@example.com",
- "user-2@example.com",
- "user-3@example.com"
]
}
Resend existing team invites. This endpoint will extend the expiry of existing invites for an additional week from time of the request. Invited team members can join through join_url
provided in the response or though optional Parsec team invite emails sent with send_email
flag.
The Create Team Invites permission is required to access this endpoint.
SAML enabled teams cannot resend team invites.
teamID required | string ID of team |
emails required | Array of strings <email> [ 1 .. 200 ] items unique [ items <email > ] |
send_email | boolean Flag for sending Parsec team member email with link to join (defaults to false if not provided) |
{- "emails": [
- "user-1@example.com",
- "user-2@example.com",
- "user-3@example.com"
], - "send_email": true
}
{- "data": [
- {
- "team_id": "1pUe1wMMIFsCrLWC6zVbAV4DzWv",
- "email": "user@example.com",
- "expires_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "count": 1
}
Get a list of team relays.
teamID required | string |
{- "data": [
- {
- "id": "tr_1pZrhJUXwgYoxfe7RuUPSLDEkJU",
- "team_id": "1pZrhKZYneeCsLvsacW7DUcUZ7K",
- "name": "example relay",
- "stun_address": "192.168.0.1",
- "stun_port": "4900",
- "relay_port": "5000",
- "last_heartbeat_received_at": "2019-08-24T14:15:22Z",
- "connection_metrics": {
- "connection_count": 8,
- "relay_version": "2.0.0"
}, - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "count": 1
}