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 whose content roles are being updated. Fetch via GET /v2/teams.
Content role update payload — carries the target content role IDs. Fetch available roles via GET /v2/teams/roles.
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.
Operation succeeded. Inspect the response envelope's success flag and the result/data payload.
New role updated successfully.
{
"result": true,
"extension_data": null,
"success": true,
"errors": [],
"warnings": [],
"information": []
}Generic Customer API response envelope — a Document360.Core.Messages.Core.CustomerApiBaseResponse with a typed
Document360.Core.Messages.Common.CustomerApiResponse1.Result payload. Used when the success-shape is a single strongly-typed value (an entity, list, count, etc.). Always check Document360.Core.Messages.Core.CustomerApiBaseResponse.success before consuming Document360.Core.Messages.Common.CustomerApiResponse1.Result.
The operation's payload. Populated when Document360.Core.Messages.Core.CustomerApiBaseResponse.success is true.
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.
One structured error in a response's Document360.Core.Messages.Core.BaseResponse.errors array.
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.
One non-fatal warning attached to an otherwise-successful response.
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.
One informational message in a response's Document360.Core.Messages.Core.BaseResponse.information array. Non-error context the SPA may surface to the user.
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.
The request body or query parameters failed validation. Inspect errors[].description for the offending fields.
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.
One structured error in a response's Document360.Core.Messages.Core.BaseResponse.errors array.
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.
One non-fatal warning attached to an otherwise-successful response.
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.
One informational message in a response's Document360.Core.Messages.Core.BaseResponse.information array. Non-error context the SPA may surface to the user.
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.
Authentication failed — the api_token header is missing, malformed, or has been revoked.
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.
One structured error in a response's Document360.Core.Messages.Core.BaseResponse.errors array.
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.
One non-fatal warning attached to an otherwise-successful response.
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.
One informational message in a response's Document360.Core.Messages.Core.BaseResponse.information array. Non-error context the SPA may surface to the user.
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.
The requested resource was not found, or the supplied identifier does not exist in the project.
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.
One structured error in a response's Document360.Core.Messages.Core.BaseResponse.errors array.
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.
One non-fatal warning attached to an otherwise-successful response.
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.
One informational message in a response's Document360.Core.Messages.Core.BaseResponse.information array. Non-error context the SPA may surface to the user.
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.
Rate limit exceeded for this api_token. Wait for the duration in the Retry-After header before retrying.
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.
One structured error in a response's Document360.Core.Messages.Core.BaseResponse.errors array.
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.
One non-fatal warning attached to an otherwise-successful response.
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.
One informational message in a response's Document360.Core.Messages.Core.BaseResponse.information array. Non-error context the SPA may surface to the user.
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.