The API token used for authenticating the request. This must be passed as a header parameter. To generate an API token, go to Settings > Knowledge base portal > API tokens. This token must correspond to a valid workspace and permission level.
The ID of the team account for which the content role has to be updated
Here you can edit the existing portal role for individual user with access scope level as None. Also to update an SSO user who hasn't logged into the system, you can pass the invitation ID as userId and in the body set is_invitation_id to true.
{
"content_permissions": [
{
"associated_content_role_id": "2e29fa1a-37db-4d15-b06b-0261c60d1898",
"access_scope": {
"access_level": 0,
"categories": [],
"project_versions": [],
"languages": []
}
}
],
"is_invitation_id": false
}
Here you can edit the existing portal role for individual user with access scope level as Category. Also to update an SSO user who hasn't logged into the system, you can pass the invitation ID as userId and in the body set is_invitation_id to true.
{
"content_permissions": [
{
"associated_content_role_id": "2e29fa1a-37db-4d15-b06b-0261c60d1898",
"access_scope": {
"access_level": 1,
"categories": [
{
"project_version_id": "9fa1a-37db-4d15-b06b-0261c60d1v4r",
"category_id": "23ra1a-37db-4d15-b06b-0261c60d1g4t",
"language_code": "en"
}
],
"project_versions": [],
"languages": []
}
}
],
"is_invitation_id": false
}
Here you can edit the existing portal role for individual user with access scope level as Language. Also to update an SSO user who hasn't logged into the system, you can pass the invitation ID as userId and in the body set is_invitation_id to true.
{
"content_permissions": [
{
"associated_content_role_id": "2e29fa1a-37db-4d15-b06b-0261c60d1898",
"access_scope": {
"access_level": 4,
"categories": [],
"project_versions": [],
"languages": [
{
"project_version_id": "2f29faa-7bdb-4d15-b06b-61c60d183",
"language_code": "en"
}
]
}
}
],
"is_invitation_id": false
}
Here you can edit the existing portal role for individual user with access scope level as Project. Also to update an SSO user who hasn't logged into the system, you can pass the invitation ID as userId and in the body set is_invitation_id to true.
{
"content_permissions": [
{
"associated_content_role_id": "2e29fa1a-37db-4d15-b06b-0261c60d1898",
"access_scope": {
"access_level": 3,
"categories": [],
"project_versions": [],
"languages": []
}
}
],
"is_invitation_id": false
}
Here you can edit the existing portal role for individual user with access scope level as Version. Also to update an SSO user who hasn't logged into the system, you can pass the invitation ID as userId and in the body set is_invitation_id to true.
{
"content_permissions": [
{
"associated_content_role_id": "2e29fa1a-37db-4d15-b06b-0261c60d1898",
"access_scope": {
"access_level": 2,
"categories": [],
"project_versions": [
"dwqd41a-3f7db-4we415-b06b-0261c60d14rf3",
"sdfda1a-37fdb-4gd15-b06b-0261c60dsdfdsf"
],
"languages": []
}
}
],
"is_invitation_id": false
}
Content permissions of the team account. Note that a team account can have multiple content permissions.
The content permission of the team account
The content role id of the team account.Please refer GET /Teams/roles endpoint to get the list of content roles.
The access level of the team account. With the access level, you will be able to set the permissions at a granular level. For example, you can limit the user to view articles only for a particular language/category/version.
This is an enum. Possible values are 0 - None 1 - Category 2 - Version 3 - Project 4 - Lanaguage
A list of category scope objects. This is only required if the access level is set 1 - Category
The project version id to which the category belongs.
The category id to which the user should be given access.
The language to which the user should be given access.
A list of project versions This is only required if the access level is set to 2 - Version
A list of language scope objects This is only required if the access level is set to 4 - Language
The project version id to which the user should be given access.
The language to which the user should be given access.
Applicable only for SSO team accounts. If temporary invitation ID is passed as team account ID, then set this to true.
Here you can edit the existing portal role for individual user with access scope level as None. Also to update an SSO user who hasn't logged into the system, you can pass the invitation ID as userId and in the body set is_invitation_id to true.
{
"content_permissions": [
{
"associated_content_role_id": "2e29fa1a-37db-4d15-b06b-0261c60d1898",
"access_scope": {
"access_level": 0,
"categories": [],
"project_versions": [],
"languages": []
}
}
],
"is_invitation_id": false
}
Here you can edit the existing portal role for individual user with access scope level as Category. Also to update an SSO user who hasn't logged into the system, you can pass the invitation ID as userId and in the body set is_invitation_id to true.
{
"content_permissions": [
{
"associated_content_role_id": "2e29fa1a-37db-4d15-b06b-0261c60d1898",
"access_scope": {
"access_level": 1,
"categories": [
{
"project_version_id": "9fa1a-37db-4d15-b06b-0261c60d1v4r",
"category_id": "23ra1a-37db-4d15-b06b-0261c60d1g4t",
"language_code": "en"
}
],
"project_versions": [],
"languages": []
}
}
],
"is_invitation_id": false
}
Here you can edit the existing portal role for individual user with access scope level as Language. Also to update an SSO user who hasn't logged into the system, you can pass the invitation ID as userId and in the body set is_invitation_id to true.
{
"content_permissions": [
{
"associated_content_role_id": "2e29fa1a-37db-4d15-b06b-0261c60d1898",
"access_scope": {
"access_level": 4,
"categories": [],
"project_versions": [],
"languages": [
{
"project_version_id": "2f29faa-7bdb-4d15-b06b-61c60d183",
"language_code": "en"
}
]
}
}
],
"is_invitation_id": false
}
Here you can edit the existing portal role for individual user with access scope level as Project. Also to update an SSO user who hasn't logged into the system, you can pass the invitation ID as userId and in the body set is_invitation_id to true.
{
"content_permissions": [
{
"associated_content_role_id": "2e29fa1a-37db-4d15-b06b-0261c60d1898",
"access_scope": {
"access_level": 3,
"categories": [],
"project_versions": [],
"languages": []
}
}
],
"is_invitation_id": false
}
Here you can edit the existing portal role for individual user with access scope level as Version. Also to update an SSO user who hasn't logged into the system, you can pass the invitation ID as userId and in the body set is_invitation_id to true.
{
"content_permissions": [
{
"associated_content_role_id": "2e29fa1a-37db-4d15-b06b-0261c60d1898",
"access_scope": {
"access_level": 2,
"categories": [],
"project_versions": [
"dwqd41a-3f7db-4we415-b06b-0261c60d14rf3",
"sdfda1a-37fdb-4gd15-b06b-0261c60dsdfdsf"
],
"languages": []
}
}
],
"is_invitation_id": false
}
Content permissions of the team account. Note that a team account can have multiple content permissions.
The content permission of the team account
The content role id of the team account.Please refer GET /Teams/roles endpoint to get the list of content roles.
The access level of the team account. With the access level, you will be able to set the permissions at a granular level. For example, you can limit the user to view articles only for a particular language/category/version.
This is an enum. Possible values are 0 - None 1 - Category 2 - Version 3 - Project 4 - Lanaguage
A list of category scope objects. This is only required if the access level is set 1 - Category
The project version id to which the category belongs.
The category id to which the user should be given access.
The language to which the user should be given access.
A list of project versions This is only required if the access level is set to 2 - Version
A list of language scope objects This is only required if the access level is set to 4 - Language
The project version id to which the user should be given access.
The language to which the user should be given access.
Applicable only for SSO team accounts. If temporary invitation ID is passed as team account ID, then set this to true.
Here you can edit the existing portal role for individual user with access scope level as None. Also to update an SSO user who hasn't logged into the system, you can pass the invitation ID as userId and in the body set is_invitation_id to true.
{
"content_permissions": [
{
"associated_content_role_id": "2e29fa1a-37db-4d15-b06b-0261c60d1898",
"access_scope": {
"access_level": 0,
"categories": [],
"project_versions": [],
"languages": []
}
}
],
"is_invitation_id": false
}
Here you can edit the existing portal role for individual user with access scope level as Category. Also to update an SSO user who hasn't logged into the system, you can pass the invitation ID as userId and in the body set is_invitation_id to true.
{
"content_permissions": [
{
"associated_content_role_id": "2e29fa1a-37db-4d15-b06b-0261c60d1898",
"access_scope": {
"access_level": 1,
"categories": [
{
"project_version_id": "9fa1a-37db-4d15-b06b-0261c60d1v4r",
"category_id": "23ra1a-37db-4d15-b06b-0261c60d1g4t",
"language_code": "en"
}
],
"project_versions": [],
"languages": []
}
}
],
"is_invitation_id": false
}
Here you can edit the existing portal role for individual user with access scope level as Language. Also to update an SSO user who hasn't logged into the system, you can pass the invitation ID as userId and in the body set is_invitation_id to true.
{
"content_permissions": [
{
"associated_content_role_id": "2e29fa1a-37db-4d15-b06b-0261c60d1898",
"access_scope": {
"access_level": 4,
"categories": [],
"project_versions": [],
"languages": [
{
"project_version_id": "2f29faa-7bdb-4d15-b06b-61c60d183",
"language_code": "en"
}
]
}
}
],
"is_invitation_id": false
}
Here you can edit the existing portal role for individual user with access scope level as Project. Also to update an SSO user who hasn't logged into the system, you can pass the invitation ID as userId and in the body set is_invitation_id to true.
{
"content_permissions": [
{
"associated_content_role_id": "2e29fa1a-37db-4d15-b06b-0261c60d1898",
"access_scope": {
"access_level": 3,
"categories": [],
"project_versions": [],
"languages": []
}
}
],
"is_invitation_id": false
}
Here you can edit the existing portal role for individual user with access scope level as Version. Also to update an SSO user who hasn't logged into the system, you can pass the invitation ID as userId and in the body set is_invitation_id to true.
{
"content_permissions": [
{
"associated_content_role_id": "2e29fa1a-37db-4d15-b06b-0261c60d1898",
"access_scope": {
"access_level": 2,
"categories": [],
"project_versions": [
"dwqd41a-3f7db-4we415-b06b-0261c60d14rf3",
"sdfda1a-37fdb-4gd15-b06b-0261c60dsdfdsf"
],
"languages": []
}
}
],
"is_invitation_id": false
}
Content permissions of the team account. Note that a team account can have multiple content permissions.
The content permission of the team account
The content role id of the team account.Please refer GET /Teams/roles endpoint to get the list of content roles.
The access level of the team account. With the access level, you will be able to set the permissions at a granular level. For example, you can limit the user to view articles only for a particular language/category/version.
This is an enum. Possible values are 0 - None 1 - Category 2 - Version 3 - Project 4 - Lanaguage
A list of category scope objects. This is only required if the access level is set 1 - Category
The project version id to which the category belongs.
The category id to which the user should be given access.
The language to which the user should be given access.
A list of project versions This is only required if the access level is set to 2 - Version
A list of language scope objects This is only required if the access level is set to 4 - Language
The project version id to which the user should be given access.
The language to which the user should be given access.
Applicable only for SSO team accounts. If temporary invitation ID is passed as team account ID, then set this to true.
Here you can edit the existing portal role for individual user with access scope level as None. Also to update an SSO user who hasn't logged into the system, you can pass the invitation ID as userId and in the body set is_invitation_id to true.
{
"content_permissions": [
{
"associated_content_role_id": "2e29fa1a-37db-4d15-b06b-0261c60d1898",
"access_scope": {
"access_level": 0,
"categories": [],
"project_versions": [],
"languages": []
}
}
],
"is_invitation_id": false
}
Here you can edit the existing portal role for individual user with access scope level as Category. Also to update an SSO user who hasn't logged into the system, you can pass the invitation ID as userId and in the body set is_invitation_id to true.
{
"content_permissions": [
{
"associated_content_role_id": "2e29fa1a-37db-4d15-b06b-0261c60d1898",
"access_scope": {
"access_level": 1,
"categories": [
{
"project_version_id": "9fa1a-37db-4d15-b06b-0261c60d1v4r",
"category_id": "23ra1a-37db-4d15-b06b-0261c60d1g4t",
"language_code": "en"
}
],
"project_versions": [],
"languages": []
}
}
],
"is_invitation_id": false
}
Here you can edit the existing portal role for individual user with access scope level as Language. Also to update an SSO user who hasn't logged into the system, you can pass the invitation ID as userId and in the body set is_invitation_id to true.
{
"content_permissions": [
{
"associated_content_role_id": "2e29fa1a-37db-4d15-b06b-0261c60d1898",
"access_scope": {
"access_level": 4,
"categories": [],
"project_versions": [],
"languages": [
{
"project_version_id": "2f29faa-7bdb-4d15-b06b-61c60d183",
"language_code": "en"
}
]
}
}
],
"is_invitation_id": false
}
Here you can edit the existing portal role for individual user with access scope level as Project. Also to update an SSO user who hasn't logged into the system, you can pass the invitation ID as userId and in the body set is_invitation_id to true.
{
"content_permissions": [
{
"associated_content_role_id": "2e29fa1a-37db-4d15-b06b-0261c60d1898",
"access_scope": {
"access_level": 3,
"categories": [],
"project_versions": [],
"languages": []
}
}
],
"is_invitation_id": false
}
Here you can edit the existing portal role for individual user with access scope level as Version. Also to update an SSO user who hasn't logged into the system, you can pass the invitation ID as userId and in the body set is_invitation_id to true.
{
"content_permissions": [
{
"associated_content_role_id": "2e29fa1a-37db-4d15-b06b-0261c60d1898",
"access_scope": {
"access_level": 2,
"categories": [],
"project_versions": [
"dwqd41a-3f7db-4we415-b06b-0261c60d14rf3",
"sdfda1a-37fdb-4gd15-b06b-0261c60dsdfdsf"
],
"languages": []
}
}
],
"is_invitation_id": false
}
Content permissions of the team account. Note that a team account can have multiple content permissions.
The content permission of the team account
The content role id of the team account.Please refer GET /Teams/roles endpoint to get the list of content roles.
The access level of the team account. With the access level, you will be able to set the permissions at a granular level. For example, you can limit the user to view articles only for a particular language/category/version.
This is an enum. Possible values are 0 - None 1 - Category 2 - Version 3 - Project 4 - Lanaguage
A list of category scope objects. This is only required if the access level is set 1 - Category
The project version id to which the category belongs.
The category id to which the user should be given access.
The language to which the user should be given access.
A list of project versions This is only required if the access level is set to 2 - Version
A list of language scope objects This is only required if the access level is set to 4 - Language
The project version id to which the user should be given access.
The language to which the user should be given access.
Applicable only for SSO team accounts. If temporary invitation ID is passed as team account ID, then set this to true.
Success
New role updated successfully.
{
"result": true,
"extension_data": null,
"success": true,
"errors": [],
"warnings": [],
"information": []
}
Customer API response data
Extension data for customer API response
Indicates the status of the API response. A value of true signifies that the request was successfully processed, while false indicates a failure or error occurred.
A list of errors encountered during the API request. Each error object provides details about the problem, including an error code and a message explaining the issue. This field is populated when the request fails or encounters issues.
This is the Extension data object
A technical trace showing where the error occurred within the system. Intended for backend debugging.
A clear message explaining what caused the error. This helps quickly understand what went wrong.
A short, predefined code that identifies the type of error. Useful for logging the error or raising a support request.
Any structured metadata for the error object.
A list of warnings generated during the API request. These are non-critical issues or recommendations that might affect the request but won't stop it from processing. Each warning object provides a message to inform the user of potential problems.
Extension Data for customer Api warning
A plain message that describes the warning and helps understand what should be reviewed.
A short, predefined code that uniquely identifies the warning type.
Contains additional non-critical information relevant to the request or response. This field provides extra details that might assist in understanding the context of the API response but is not essential for processing.
Extension data for customer Api response information
A plain message offering helpful context about the response, such as confirmation of fallback logic or skipped operations.
Bad Request
Kindly verify the userId and perform the task again.
{
"extension_data": null,
"success": true,
"errors": [
{
"extension_data": null,
"stack_trace": null,
"description": "The invitation id 2e63692d-894b-4a41-90ce-1d0ba87a4b17 does not exist.",
"error_code": "400",
"custom_data": null
}
],
"warnings": [],
"information": []
}
Extension data for customer API response
Indicates the status of the API response. A value of true signifies that the request was successfully processed, while false indicates a failure or error occurred.
A list of errors encountered during the API request. Each error object provides details about the problem, including an error code and a message explaining the issue. This field is populated when the request fails or encounters issues.
This is the Extension data object
A technical trace showing where the error occurred within the system. Intended for backend debugging.
A clear message explaining what caused the error. This helps quickly understand what went wrong.
A short, predefined code that identifies the type of error. Useful for logging the error or raising a support request.
Any structured metadata for the error object.
A list of warnings generated during the API request. These are non-critical issues or recommendations that might affect the request but won't stop it from processing. Each warning object provides a message to inform the user of potential problems.
Extension Data for customer Api warning
A plain message that describes the warning and helps understand what should be reviewed.
A short, predefined code that uniquely identifies the warning type.
Contains additional non-critical information relevant to the request or response. This field provides extra details that might assist in understanding the context of the API response but is not essential for processing.
Extension data for customer Api response information
A plain message offering helpful context about the response, such as confirmation of fallback logic or skipped operations.