Users
Updates the specified user's profile, license assignments, course access, and related attributes
Updates the specified user's profile, license assignments, course access, and related attributes.
PUT
https://example.thoughtindustries.com/incoming/v2/users/:idExample request
curl -X PUT "https://example.thoughtindustries.com/incoming/v2/users/:id" \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"email": "string",
"externalCustomerId": "string",
"studentLicenseSkus": [],
"managerLicenseSkus": []
}'Parameters
| Name | Type | Required | Location | Description |
|---|---|---|---|---|
id | uuid | Yes | path | The id identifier. |
email | string | No | body | The user's email address. |
externalCustomerId | string | No | body | An external system identifier for the user, used to map the user to a record in an outside platform. |
studentLicenseSkus | string[] | Yes | body | SKUs of licenses to assign to the user in the student role. |
managerLicenseSkus | string[] | Yes | body | SKUs of licenses to assign to the user in the manager role. |
studentLicenseIds | uuid[] | Yes | body | IDs of licenses to assign to the user in the student role. |
managerLicenseIds | uuid[] | Yes | body | IDs of licenses to assign to the user in the manager role. |
role | string | No | body | The user's platform role (e.g., admin, learner). |
clientSku | string | No | body | SKU of the client (tenant) to associate with the user. |
clientSlug | string | No | body | URL slug of the client (tenant) to associate with the user. |
clientId | uuid | No | body | ID of the client (tenant) to associate with the user. |
replaceLicenseAccess | boolean | No | body | When true, replaces the user's existing license assignments with the ones provided; otherwise merges them. |
courseIds | uuid[] | Yes | body | IDs of courses to grant the user direct access to. |
courseSlugs | string[] | Yes | body | URL slugs of courses to grant the user direct access to. |
courseSkus | string[] | Yes | body | SKUs of courses to grant the user direct access to. |
bundleSlugs | string[] | Yes | body | URL slugs of bundles to grant the user access to. |
learningPathSlugs | string[] | Yes | body | URL slugs of learning paths to grant the user access to. |
learningPathSkus | string[] | Yes | body | SKUs of learning paths to grant the user access to. |
learningPathIds | uuid[] | Yes | body | IDs of learning paths to grant the user access to. |
firstName | string | No | body | The user's first name. |
lastName | string | No | body | The user's last name. |
address1 | string | No | body | The first line of the user's mailing address. |
address2 | string | No | body | The second line of the user's mailing address (e.g., suite or apartment number). |
city | string | No | body | The city component of the user's mailing address. |
state | string | No | body | The state or province component of the user's mailing address. |
zipCode | string | No | body | The postal code component of the user's mailing address. |
country | string | No | body | The country component of the user's mailing address. |
telephone | string | No | body | The user's phone number. |
ref1 | string | No | body | Custom reference field 1 for storing arbitrary external data. |
ref2 | string | No | body | Custom reference field 2 for storing arbitrary external data. |
ref3 | string | No | body | Custom reference field 3 for storing arbitrary external data. |
ref4 | string | No | body | Custom reference field 4 for storing arbitrary external data. |
ref5 | string | No | body | Custom reference field 5 for storing arbitrary external data. |
ref6 | string | No | body | Custom reference field 6 for storing arbitrary external data. |
ref7 | string | No | body | Custom reference field 7 for storing arbitrary external data. |
ref8 | string | No | body | Custom reference field 8 for storing arbitrary external data. |
ref9 | string | No | body | Custom reference field 9 for storing arbitrary external data. |
ref10 | string | No | body | Custom reference field 10 for storing arbitrary external data. |
language | string | No | body | The user's preferred language code (e.g., en, fr). |
tieredSubscription | boolean | No | body | When true, enables tiered subscription pricing for the user. |
replaceCourseAccess | boolean | No | body | When true, replaces the user's existing course access with the courses provided; otherwise merges them. |
replaceLearningPathAccess | boolean | No | body | When true, replaces the user's existing learning path access with the learning paths provided; otherwise merges them. |
replaceBundleAccess | boolean | No | body | When true, replaces the user's existing bundle access with the bundles provided; otherwise merges them. |
customFields | object | No | body | Key-value pairs of custom field data defined for the user's client. |
sfContactId | uuid | No | body | The Salesforce Contact ID linked to this user. |
sfAccountId | uuid | No | body | The Salesforce Account ID linked to this user. |
dualRole | boolean | No | body | When true, grants the user both learner and manager roles simultaneously. |
balance | number | No | body | The user's credit balance, in the platform's configured currency units. |
enforceAccessDays | boolean | No | body | When true, enforces license access-day limits on the user's content access. |
preferredCurrency | string | No | body | The user's preferred currency code for pricing display (e.g., USD, EUR). |
panoramaEnrollmentOptions | PanoramaEnrollmentOptions | No | body | Configuration options controlling the user's enrollment behavior in Panorama. |
Example response
{
"data": {
"APIUpdateUser": {
"id": "00000000-0000-0000-0000-000000000000",
"email": "string",
"firstName": "string",
"abbreviatedName": "string",
"asset": "string",
"lastName": "string",
"name": "string",
"lastActiveAt": "2024-01-01T00:00:00.000Z",
"bio": "string",
"twoFactorEnabled": true,
"firstInitial": "string",
"lastInitial": "string",
"invitedByName": "string",
"shouldHighlight": true,
"purchasedCourses": [
{
"course": {
"id": "00000000-0000-0000-0000-000000000000",
"createdAt": "2024-01-01T00:00:00.000Z",
"updatedAt": "2024-01-01T00:00:00.000Z",
"slug": "example-slug",
"status": "draft",
"title": "string",
"sessionIsTitled": true,
"sampleLesson": {
"...": "..."
},
"sampleLessonId": "00000000-0000-0000-0000-000000000000",
"sections": [
{
"...": "..."
}
],
"appearanceBlock": "00000000-0000-0000-0000-000000000000",
"appearanceHash": "string",
"paywallsBlock": "00000000-0000-0000-0000-000000000000",
"termsBlock": "00000000-0000-0000-0000-000000000000",
"confirmationBlock": "00000000-0000-0000-0000-000000000000",
"courseStartDate": "2024-01-01T00:00:00.000Z",
"courseEndDate": "2024-01-01T00:00:00.000Z",
"enrollmentStartDate": "2024-01-01T00:00:00.000Z",
"enrollmentEndDate": "2024-01-01T00:00:00.000Z",
"gracePeriodEndDate": "2024-01-01T00:00:00.000Z",
"seatsLimit": 0,
"waitlistCount": 0,
"seatsLimitMet": true,
"waitlistingEnabled": true,
"waitlistingTriggered": true,
"taxable": true,
"purchasable": true,
"taxCategory": "00000000-0000-0000-0000-000000000000",
"fulfillmentCenter": "00000000-0000-0000-0000-000000000000",
"courseGroup": {
"...": "..."
},
"syllabusTitlesEnabled": true,
"galleryEnabled": true,
"workbookEnabled": true,
"linkedWorkbookEnabled": true,
"linkedWorkbookSkipEnabled": true,
"superquizEnabled": true,
"discussionsEnabled": true,
"resourcesEnabled": true,
"meetingsOverviewEnabled": true,
"recurrenceRule": "string",
"recurrence": {},
"readableRecurrenceString": "string",
"instructorAccessEnabled": true,
"instructorEmails": [
"string"
],
"freeWithRegistration": true,
"priceInCents": 0,
"instructorAccessPriceInCents": 0,
"suggestedRetailPriceInCents": 0,
"alternativePricingType": "membership",
"alternativePricingRef": 0,
"accessDays": 0,
"showProgress": true,
"annotationsEnabled": true,
"forceLinearProgress": true,
"completionTimePerPage": 0,
"askLearnerPassword": true,
"roster": true,
"topicGroupId": "00000000-0000-0000-0000-000000000000",
"sku": "string",
"prerequisiteCourses": [
{
"...": "..."
}
],
"prerequisiteLearningPaths": [
{
"...": "..."
}
],
"parentCourseId": "00000000-0000-0000-0000-000000000000",
"isChild": true,
"hasMultipleCurrencies": true,
"prices": [
{
"...": "..."
}
],
"enrollmentActive": true,
"waitlistActive": true,
"webinarDates": [
{
"...": "..."
}
],
"webinarTimeZone": "string",
"meetings": [
{
"...": "..."
}
],
"inPersonEventInfo": {
"...": "..."
},
"currentUserHasAccess": true,
"location": {
"...": "..."
},
"displayMap": true,
"publishDate": "2024-01-01T00:00:00.000Z",
"isActive": true,
"futurePublishDate": "2024-01-01T00:00:00.000Z",
"balanceRequirement": 0,
"awardClaimingOptions": [
{
"...": "..."
}
],
"availabilityStatus": "string",
"embeddedEnabled": true,
"displayResults": true,
"bulkPurchasingEnabled": true,
"seatTiers": [
{
"...": "..."
}
],
"seatPackages": [
{
"...": "..."
}
],
"lastTierPriceInCents": 0,
"webinarId": "string",
"hasChildren": true,
"customFields": {},
"kind": "microCourse",
"rosterSubmittedDate": "2024-01-01T00:00:00.000Z",
"finalAssessment": "string",
"scormCollectUserDetails": true,
"seatsUsedCount": 0,
"seatsAllocatedCount": 0,
"webinarDetails": {
"...": "..."
},
"showSyllabusWhileUnenrolled": true,
"topicGroup": {
"...": "..."
},
"courseGroupTitle": "string",
"currentUserDueDate": "2024-01-01T00:00:00.000Z"
},
"courseId": "00000000-0000-0000-0000-000000000000",
"certificate": "00000000-0000-0000-0000-000000000000",
"certificateIssuedAt": "2024-01-01T00:00:00.000Z",
"instructorAccessPurchased": true,
"status": "string"
}
],
"purchasedBundles": [
{
"bundle": {
"id": "00000000-0000-0000-0000-000000000000",
"slug": "example-slug",
"name": "string",
"purchasable": true,
"planId": "00000000-0000-0000-0000-000000000000",
"variations": [
{
"...": "..."
}
],
"taxable": true,
"needShippingAddress": true,
"priceInCents": 0,
"weight": 0,
"annualPlanId": "00000000-0000-0000-0000-000000000000",
"annualPriceInCents": 0
},
"bundleId": "00000000-0000-0000-0000-000000000000"
}
],
"activeLicense": {
"id": "00000000-0000-0000-0000-000000000000",
"name": "string",
"label": "string",
"sku": "string",
"client": {
"id": "00000000-0000-0000-0000-000000000000",
"name": "string",
"schoolName": "string",
"courses": [
{
"...": "..."
}
],
"learningPaths": [
{
"...": "..."
}
],
"learningPathIds": [
"00000000-0000-0000-0000-000000000000"
],
"courseIds": [
"00000000-0000-0000-0000-000000000000"
],
"courseTags": [
{
"...": "..."
}
],
"courseTagIds": [
"00000000-0000-0000-0