Share

Users Endpoint

Fetch list of Users

GET /v3/workspaces/{workspaceId}/users

This endpoint now supports the following options:

Filter the list by different criteria

This functionality allows adding a query parameter to the GET call to filter the list matching on the supplied query parameters. The following fields are supported:

  • userId
  • loginName
  • displayName
  • firstName
  • lastName
  • licenseType.type
  • email

The filtering format follows Autodesk Platform Services standards, and it is summarized in the example below.

GET https://tenant_name.autodeskplm360.net/api/v3/users?filter[loginName]=someUserLoginName
Returns:
{
  "__self__": "/api/v3/users?offset=0&limit=10 ",
  "offset": 0,
  "limit": 10,
  "totalCount": 21,
  "first": {
    "link": "/api/v3/users?offset=0&limit=10 ",
    "title": "First",
    "deleted": false,
    "count": 10
  },
  "next": {
    "link": "/api/v3/users?offset=10&limit=10 ",
    "title": "Next",
    "deleted": false,
    "count": 10
  },
  "last": {
    "link": "/api/v3/users?offset=20&limit=10",
    "title": "Last",
    "deleted": false,
    "count": 1
  },
  "items": [
    {
      "userId": "userId",
      "loginName": "someUserLoginName",
      "delegations": [],
      "dashboardCharts": null,
      "displayName": "John Doe",
      "firstName": "John",
      "lastName": "Doe",
      "active": "Y",
      "reset": "No",
      "batchNotifyPref": "Always",
      "wfNotifyPref": "ActionRequired",
      "thumbnailPref": "Yes",
      "licenseType": {
        "link": "/api/v3/licenses/S",
        "urn": "urn:adsk.plm:tenant.license:TENANTNAME.S",
        "title": "Standard",
        "deleted": false,
        "type": "Standard",
        "description": "PROFESSIONAL"
      },
      "title": "",
      "phone": null,
      "cellular": null,
      "fax": null,
      "email": "john.doe@autodesk.com",
      "address1": "",
      "address2": "",
      "city": "",
      "stateProv": "",
      "country": "",
      "postal": "",
      "timezone": "Etc/GMT+12",
      "organization": "",
      "industry": null,
      "aboutMe": null,
      "uomPref": "English",
      "surveyDone": false,
      "userNumber": 158,
      "dateFormat": "yyyy/MM/dd",
      "displayNameExtended": "John Doe (john.doe)",
      "externalAuthReservationToken": null,
      "externalAuthUserId": "EXTUSERID",
      "plmSearchCrawlerUser": false,
      "lastRecalculateUpdate": null,
      "lastRecalculateStarted": null,
      "lastMowUpdateDate": "2019-10-18T20:27:46.848+0000",
      "preferences": null,
      "interfaceStyle": "NextPLM360",
      "interfaceStyleMandated": false,
      "signupUrl": null,
      "tenantAdmin": false,
      "userStatus": "Active",
      "mappedToOxygen": true,
      "userActive": true,
      "userInactive": false,
      "id": "userId",
      "groups": [],
      "__self__": "/api/v3/users/userId",
      "urn": "urn:adsk.plm:tenant.user:TENANTNAME.userId",
      "image": {
        "small": "https://s3.amazonaws.com:443/com.autodesk.storage.public.staging/oxygen/EXTUSERID/profilepictures/x20.jpg",
        "medium": "https://s3.amazonaws.com:443/com.autodesk.storage.public.staging/oxygen/ EXTUSERID /profilepictures/x50.jpg",
        "large": "https://s3.amazonaws.com:443/com.autodesk.storage.public.staging/oxygen/ EXTUSERID /profilepictures/x176.jpg"
      },
      "alerts": [
        {}
      ]
    }
  ]
}

Back to top

Sort the list by different criteria

This functionality allows adding a query parameter to the GET call to sort the list matching on the supplied query parameters – ascending or descending order. The following fields are supported:

  • displayName
  • firstName
  • lastName
  • userId
  • email
  • loginName

The sorting format is summarized in the example below.

GET https://tenant_name.autodeskplm360.net/api/v3/users?sort=displayName asc
Header:
Accept: application/json
Returns:
(Same as above, sorted by the specific criteria)

Back to top

Return user details in bulk

This functionality allows setting the Accept header parameter to a value “application/vnd.autodesk.plm.users.bulk+json” when performing a GET against the list of users. This will return the whole user details data, instead of just the basic information. This can be leveraged by integrations to reduce the number of calls to fetch each user’s details individually.

Note: The number of users in the page will be limited to 100. If more than 100 items are available in the list, the next page can be fetched by following the links in the payload.

Examples:

GET https://tenant_name.autodeskplm360.net/api/v3/users
Header: 
Accept: application/vnd.autodesk.plm.users.bulk+json
Returns:
{
  "__self__": "/api/v3/users?offset=0&limit=10&activeOnly=true&mappedOnly=true",
  "offset": 0,
  "limit": 10,
  "totalCount": 21,
  "first": {
    "link": "/api/v3/users?offset=0&limit=10&activeOnly=true&mappedOnly=true",
    "title": "First",
    "deleted": false,
    "count": 10
  },
  "next": {
    "link": "/api/v3/users?offset=10&limit=10&activeOnly=true&mappedOnly=true",
    "title": "Next",
    "deleted": false,
    "count": 10
  },
  "last": {
    "link": "/api/v3/users?offset=20&limit=10&activeOnly=true&mappedOnly=true",
    "title": "Last",
    "deleted": false,
    "count": 1
  },
  "items": [
    {
      "userId": "userId",
      "loginName": "some.user.name",
      "delegations": [],
      "dashboardCharts": null,
      "displayName": "John Doe",
      "firstName": "John",
      "lastName": "Doe",
      "active": "Y",
      "reset": "No",
      "batchNotifyPref": "Always",
      "wfNotifyPref": "ActionRequired",
      "thumbnailPref": "Yes",
      "licenseType": {
        "link": "/api/v3/licenses/S",
        "urn": "urn:adsk.plm:tenant.license:TENANTNAME.S",
        "title": "Standard",
        "deleted": false,
        "type": "Standard",
        "description": "PROFESSIONAL"
      },
      "title": "",
      "phone": null,
      "cellular": null,
      "fax": null,
      "email": "john.doe@autodesk.com",
      "address1": "",
      "address2": "",
      "city": "",
      "stateProv": "",
      "country": "",
      "postal": "",
      "timezone": "Etc/GMT+12",
      "organization": "",
      "industry": null,
      "aboutMe": null,
      "uomPref": "English",
      "surveyDone": false,
      "userNumber": 158,
      "dateFormat": "yyyy/MM/dd",
      "displayNameExtended": "John Doe (john.doe)",
      "externalAuthReservationToken": null,
      "externalAuthUserId": "EXTUSERID",
      "plmSearchCrawlerUser": false,
      "lastRecalculateUpdate": null,
      "lastRecalculateStarted": null,
      "lastMowUpdateDate": "2019-10-18T20:27:46.848+0000",
      "preferences": null,
      "interfaceStyle": "NextPLM360",
      "interfaceStyleMandated": false,
      "signupUrl": null,
      "tenantAdmin": false,
      "userStatus": "Active",
      "mappedToOxygen": true,
      "userActive": true,
      "userInactive": false,
      "id": "userId",
      "groups": [],
      "__self__": "/api/v3/users/userId",
      "urn": "urn:adsk.plm:tenant.user:TENANTNAME.userId",
      "image": {
        "small": "https://s3.amazonaws.com:443/com.autodesk.storage.public.staging/oxygen/EXTUSERID/profilepictures/x20.jpg",
        "medium": "https://s3.amazonaws.com:443/com.autodesk.storage.public.staging/oxygen/ EXTUSERID /profilepictures/x50.jpg",
        "large": "https://s3.amazonaws.com:443/com.autodesk.storage.public.staging/oxygen/ EXTUSERID /profilepictures/x176.jpg"
      },
      "alerts": [
        {}
      ]
    }
  ]
}
Note: By default, the default option to return data is bulk. To return a simplified list of user details, use the following:
GET https://tenant_name.autodeskplm360.net/api/v3/users
Header: 
Accept: application/json

Back to top

Optional query parameters

All these query parameters can be combined.

Return only active users
GET https://tenant_name.autodeskplm360.net/api/v3/users&activeOnly=true
Return only mapped users
GET https://tenant_name.autodeskplm360.net/api/v3/users&mappedOnly=true
Remove alert object from the payload
GET https://tenant_name.autodeskplm360.net/api/v3/users&includeAlertView=false
Remove tenant admins from the list
GET https://tenant_name.autodeskplm360.net/api/v3/users&includeTenantAdmin=false

Back to top

Add Users

This functionality allows creating new users using V3 API when calling /users endpoint. This request will only succeed if it’s performed by an administrator. The following fields are supported:

  • e-mail address
  • license type
  • profile information (optional)
    • interfaceStyle (if not passed, assumes Modern by default
    • thumbnailPref (it not passed, assumes Yes)
    • uomPref (if not passed, assumes English)
    • timezone (if not passed, assumes Etc/GMT+12)

The POST format is:

POST https://tenant_name.autodeskplm360.net/api/v3/users
Header: Content-Type: application/json
Body:
{
  "email": "anyone@domain.com",
  "licenseType": {
    "licenseCode": "P"
  },
  "thumbnailPref": "Yes",
  "uomPref": "English",
  "timezone": "Etc/GMT+12"
}

Returns:

HTTP 201 (Created)
Location: /api/v3/users/{userId}
Note: The user needs to be valid and active in the Autodesk Accounts portal to be added to the Fusion Manage site.

Back to top

Set User status

This functionality allows changing the status of users to INACTIVE or DELETED using V3 API when calling /users endpoint. This request will only succeed if it’s performed by an administrator.

The PATCH format is:

PATCH  /api/v3/users/{userId}
Header: Content-type: application/json-patch+json
Body:
[{
    "op": "replace",
    "path": "/userStatus",
    "value": "Deleted"
}]

Returns:

HTTP 204 (Success)

Replace Deleted with Inactive to inactivate the user.

Back to top

Assign Group(s) to User

This functionality allows assigning one (or more) Groups with a User using V3 API when calling the /users/:userId: endpoint. This request will only succeed if it’s performed by an administrator.

The POST format is:

POST /api/v3/users/{userId}/groups
Header: Content-type: application/json
Body:
["urn:adsk.plm:tenant.group:TENANT_NAME.GROUP_ID", "urn:adsk.plm:tenant.group:TENANT_NAME.GROUP_ID",…]

Returns:

HTTP 204 (Success)
Note: The URNs for the groups can be retrieved by fetching data from the Groups endpoint.

Back to top

Was this information helpful?