Bulk Panorama Assignment
Assigns Panorama client licenses to multiple users in a single request
Assigns Panorama client licenses to multiple users in a single request.
POST
https://example.thoughtindustries.com/incoming/v2/users/bulkClientLicenseAssignmentExample request — assign a license by user ID (append)
curl -X POST "https://example.thoughtindustries.com/incoming/v2/users/bulkClientLicenseAssignment" \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"users": [
{
"id": "3f9a2b18-7c4d-4e2a-9b1f-0c5d6e7f8a90",
"clientId": "c0ffee00-1111-2222-3333-444455556666",
"licenseIds": ["a1b2c3d4-e5f6-7890-abcd-ef1234567890"],
"replaceLicenseAccess": false
}
]
}'Example request — replace a user's licenses by email
curl -X POST "https://example.thoughtindustries.com/incoming/v2/users/bulkClientLicenseAssignment" \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"users": [
{
"email": "[email protected]",
"clientId": "c0ffee00-1111-2222-3333-444455556666",
"licenseIds": ["a1b2c3d4-e5f6-7890-abcd-ef1234567890"],
"replaceLicenseAccess": true
}
]
}'Example request — bulk assign to multiple users (mixed identifiers)
curl -X POST "https://example.thoughtindustries.com/incoming/v2/users/bulkClientLicenseAssignment" \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"users": [
{
"id": "3f9a2b18-7c4d-4e2a-9b1f-0c5d6e7f8a90",
"clientId": "c0ffee00-1111-2222-3333-444455556666",
"licenseIds": ["a1b2c3d4-e5f6-7890-abcd-ef1234567890"],
"replaceLicenseAccess": false
},
{
"externalCustomerId": "CRM-88213",
"clientId": "c0ffee00-1111-2222-3333-444455556666",
"licenseIds": ["a1b2c3d4-e5f6-7890-abcd-ef1234567890"],
"replaceLicenseAccess": true
}
]
}'Parameters
Requires the users.edit permission.
| Name | Type | Required | Location | Description |
|---|---|---|---|---|
users | BulkClientLicenseAssignmentUser[] | Yes | body | Array of user–license assignment objects (see below). |
Each object in users (BulkClientLicenseAssignmentUser):
| Field | Type | Required | Description |
|---|---|---|---|
id | uuid | One of id / email / externalCustomerId | ID of the user to assign licenses to. |
email | string | One of id / email / externalCustomerId | Email of the user to assign licenses to. |
externalCustomerId | string | One of id / email / externalCustomerId | External customer ID of the user to assign licenses to. |
clientId | uuid | No | UUID of the Panorama client (tenant) the user should be associated with. |
licenseIds | uuid[] | No | License UUIDs to assign to the user. |
replaceLicenseAccess | boolean | Yes | If true, replaces the user's existing license access with licenseIds; if false, appends to it. |
Example response
{
"updatedRecordCount": 0,
"errors": [
{
"id": "00000000-0000-0000-0000-000000000000",
"identifier": "string",
"error": "string",
"record": "string"
}
]
}Response fields
| Field | Type | Description |
|---|---|---|
updatedRecordCount | integer | Number of records successfully updated. |
errors | object[] | Per-record errors for entries that could not be processed. |
errors.id | uuid | Identifier associated with the failed record, when resolvable. |
errors.identifier | string | The identifier value from the input record. |
errors.error | string | Human-readable message describing why the record failed. |
errors.record | string | Raw input record associated with the failure. |