primarybooleanWhether the email is the primary address. Only one email address for a user can be the primary one.
Replaces an existing user's information.
You must provide all the information for the existing user, as if you're provisioning the user for the first time. This removes any existing information for the user that isn't provided.
If you only want to update a few of the user's attributes, you can use the PATCH operation.
https://www.canva.com /_scim /v2 /Users/{canva_scim_id}Content-TypestringIndicates the media type of the information sent in the request. This must be set to application/scim+json.
For example: Content-Type: application/scim+json
canva_scim_idstringThe Canva-generated SCIM ID for the user.
schemasstring[]The URIs of the SCIM schemas.
Available values: The only valid value is urn:ietf:params:scim:schemas:core:2.0:User.
userNamestringA unique identifier for the user.
emailsobject[]The email address for the user.
The Canva SCIM API only supports one email address for each user.
primarybooleanWhether the email is the primary address. Only one email address for a user can be the primary one.
valuestringThe email address.
typestringThe type of email address for the user. The Canva SCIM API only supports work as the type of the email address.
externalIdstringA string that is an identifier for the resource as defined by the provisioning client.
displayNamestringThe name of the user, suitable for display to end-users.
namenameThe components of the user's name.
givenNamestringThe first or 'given' name for the user.
familyNamestringThe last or 'family' name for the user.
localestringThe user's default location, for example en_AU.
rolestringThe role of the user. This can be one of the following:
MemberTeacherStaffAdminTemplate-designerAideAdministratorSchool administratorSchoolTenantFacultyIf an invalid value is provided, the role defaults to Member.
Except for Member, all other role values map to the Canva "Brand Designer" role. For more information on Canva roles, see Team roles and permissions(opens in a new tab or window).
Default value: Member
activebooleanWhether the user account is active. Setting this to false deprovisions the user in Canva.
Examples for using the /_scim/v2/Users/{canva_scim_id} endpoint:
curl --request PUT 'https://www.canva.com/_scim/v2/Users/{canva_scim_id}' \--header 'Authorization: Bearer {token}' \--header 'Content-Type: application/scim+json' \--data '{"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],"externalId": "{idp_provided_external_id}","userName": "aliddell","displayName": "Alice Liddell","name": {"givenName": "Alice","familyName": "Liddell"},"emails": [{"primary": true,"value": "[email protected]","type": "work"}],"locale": "en_US","role": "Member"}'
const fetch = require("node-fetch");fetch("https://www.canva.com/_scim/v2/Users/{canva_scim_id}", {method: "PUT",headers: {"Authorization": "Bearer {token}","Content-Type": "application/scim+json",},body: JSON.stringify({"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],"externalId": "{idp_provided_external_id}","userName": "aliddell","displayName": "Alice Liddell","name": {"givenName": "Alice","familyName": "Liddell"},"emails": [{"primary": true,"type": "work"}],"locale": "en_US","role": "Member"}),}).then(async (response) => {const data = await response.json();console.log(data);}).catch(err => console.error(err));
import java.io.IOException;import java.net.URI;import java.net.http.*;public class ApiExample {public static void main(String[] args) throws IOException, InterruptedException {HttpRequest request = HttpRequest.newBuilder().uri(URI.create("https://www.canva.com/_scim/v2/Users/{canva_scim_id}")).header("Authorization", "Bearer {token}").header("Content-Type", "application/scim+json").method("PUT", HttpRequest.BodyPublishers.ofString("{\"schemas\": [\"urn:ietf:params:scim:schemas:core:2.0:User\"], \"externalId\": \"{idp_provided_external_id}\", \"userName\": \"aliddell\", \"displayName\": \"Alice Liddell\", \"name\": {\"givenName\": \"Alice\", \"familyName\": \"Liddell\"}, \"emails\": [{\"primary\": true, \"value\": \"[email protected]\", \"type\": \"work\"}], \"locale\": \"en_US\", \"role\": \"Member\"}")).build();HttpResponse<String> response = HttpClient.newHttpClient().send(request,HttpResponse.BodyHandlers.ofString());System.out.println(response.body());}}
import requestsheaders = {"Authorization": "Bearer {token}","Content-Type": "application/scim+json"}data = {"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],"externalId": "{idp_provided_external_id}","userName": "aliddell","displayName": "Alice Liddell","name": {"givenName": "Alice","familyName": "Liddell"},"emails": [{"primary": True,"type": "work"}],"locale": "en_US","role": "Member"}response = requests.put("https://www.canva.com/_scim/v2/Users/{canva_scim_id}",headers=headers,json=data)print(response.json())
using System.Net.Http;var client = new HttpClient();var request = new HttpRequestMessage{Method = HttpMethod.Put,RequestUri = new Uri("https://www.canva.com/_scim/v2/Users/{canva_scim_id}"),Headers ={{ "Authorization", "Bearer {token}" },},Content = new StringContent("{\"schemas\": [\"urn:ietf:params:scim:schemas:core:2.0:User\"], \"externalId\": \"{idp_provided_external_id}\", \"userName\": \"aliddell\", \"displayName\": \"Alice Liddell\", \"name\": {\"givenName\": \"Alice\", \"familyName\": \"Liddell\"}, \"emails\": [{\"primary\": true, \"value\": \"[email protected]\", \"type\": \"work\"}], \"locale\": \"en_US\", \"role\": \"Member\"}",Encoding.UTF8,"application/scim+json"),};using (var response = await client.SendAsync(request)){response.EnsureSuccessStatusCode();var body = await response.Content.ReadAsStringAsync();Console.WriteLine(body);};
package mainimport ("fmt""io""net/http""strings")func main() {payload := strings.NewReader(`{"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],"externalId": "{idp_provided_external_id}","userName": "aliddell","displayName": "Alice Liddell","name": {"givenName": "Alice","familyName": "Liddell"},"emails": [{"primary": true,"value": "[email protected]","type": "work"}],"locale": "en_US","role": "Member"}`)url := "https://www.canva.com/_scim/v2/Users/{canva_scim_id}"req, _ := http.NewRequest("PUT", url, payload)req.Header.Add("Authorization", "Bearer {token}")req.Header.Add("Content-Type", "application/scim+json")res, _ := http.DefaultClient.Do(req)defer res.Body.Close()body, _ := io.ReadAll(res.Body)fmt.Println(string(body))}
$curl = curl_init();curl_setopt_array($curl, array(CURLOPT_URL => "https://www.canva.com/_scim/v2/Users/{canva_scim_id}",CURLOPT_CUSTOMREQUEST => "PUT",CURLOPT_RETURNTRANSFER => true,CURLOPT_HTTPHEADER => array('Authorization: Bearer {token}','Content-Type: application/scim+json',),CURLOPT_POSTFIELDS => json_encode(["schemas" => ["urn:ietf:params:scim:schemas:core:2.0:User"],"externalId" => "{idp_provided_external_id}","userName" => "aliddell","displayName" => "Alice Liddell","name" => ["givenName" => "Alice","familyName" => "Liddell"],"emails" => [["primary" => true,"type" => "work"]],"locale" => "en_US","role" => "Member"])));$response = curl_exec($curl);$err = curl_error($curl);curl_close($curl);if (empty($err)) {echo $response;} else {echo "Error: " . $err;}
require 'net/http'require 'uri'url = URI('https://www.canva.com/_scim/v2/Users/{canva_scim_id}')http = Net::HTTP.new(url.host, url.port)http.use_ssl = truerequest = Net::HTTP::Put.new(url)request['Authorization'] = 'Bearer {token}'request['Content-Type'] = 'application/scim+json'request.body = <<REQUEST_BODY{"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],"externalId": "{idp_provided_external_id}","userName": "aliddell","displayName": "Alice Liddell","name": {"givenName": "Alice","familyName": "Liddell"},"emails": [{"primary": true,"value": "[email protected]","type": "work"}],"locale": "en_US","role": "Member"}REQUEST_BODYresponse = http.request(request)puts response.read_body
If successful, the endpoint returns a 200 response with a JSON body with the following parameters:
schemasstring[]The URIs of the SCIM schemas.
Available values: The only valid value is urn:ietf:params:scim:schemas:core:2.0:User.
idstringThe Canva-generated SCIM ID for the user.
metaobjectMeta properties for the user.
resourceTypestringThe SCIM resource type of the object.
Available values: The only valid value is User.
createdstringThe timestamp when the object was created.
userNamestringA unique identifier for the user.
displayNamestringThe name of the user, suitable for display to end-users.
emailsobject[]The email address for the user.
The Canva SCIM API only supports one email address for each user.
primarybooleanWhether the email is the primary address. Only one email address for a user can be the primary one.
valuestringThe email address.
typestringThe type of email address for the user. The Canva SCIM API only supports work as the type of the email address.
activebooleanWhether the user account is active. Setting this to false deprovisions the user in Canva.
rolestringThe role of the user. This can be one of the following:
MemberTeacherStaffAdminTemplate-designerAideAdministratorSchool administratorSchoolTenantFacultyIf an invalid value is provided, the role defaults to Member.
Except for Member, all other role values map to the Canva "Brand Designer" role. For more information on Canva roles, see Team roles and permissions(opens in a new tab or window).
Default value: Member
externalIdstringA string that is an identifier for the resource as defined by the provisioning client.
namenameThe components of the user's name.
givenNamestringThe first or 'given' name for the user.
familyNamestringThe last or 'family' name for the user.
localestringThe user's default location, for example en_AU.
{"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],"id": "UAFdxab1abC","externalId": "abcd1234","meta": {"resourceType": "User","created": "2023-09-18T06:08:35Z"},"userName": "aliddell","displayName": "Alice Liddell","name": {"givenName": "Alice","familyName": "Liddell"},"emails": [{"primary": true,"type": "work"}],"active": true,"locale": "en_US","role": "Member"}
schemasstring[]Available values: The only valid value is urn:ietf:params:scim:api:messages:2.0:Error.
detailstringAvailable values: The only valid value is No SSO configurations found, please check the settings page.
statusstringThe HTTP status code of the error.
{"schemas": ["urn:ietf:params:scim:api:messages:2.0:Error"],"detail": "No SSO configurations found, please check the settings page","status": "400"}
schemasstring[]Available values: The only valid value is urn:ietf:params:scim:api:messages:2.0:Error.
detailstringAvailable values: The only valid value is Email domain not authorized for SCIM..
statusstringThe HTTP status code of the error.
{"schemas": ["urn:ietf:params:scim:api:messages:2.0:Error"],"detail": "Email domain not authorized for SCIM.","status": "403"}
schemasstring[]Available values: The only valid value is urn:ietf:params:scim:api:messages:2.0:Error.
detailstringAvailable values: The only valid value is No user found for id {canva_scim_id}.
statusstringThe HTTP status code of the error.
{"schemas": ["urn:ietf:params:scim:api:messages:2.0:Error"],"detail": "No user found for id {canva_scim_id}","status": "404"}
schemasstring[]Available values: The only valid value is urn:ietf:params:scim:api:messages:2.0:Error.
detailstringAvailable values:
userName not availableAccount with email can not be updated. User needs to accept SSO linkingAccount with email already exists. User must first log in with SAML to confirm account ownershipAccount with email is soft deleted. The user must first log in to reactivate their accountstatusstringThe HTTP status code of the error.
{"schemas": ["urn:ietf:params:scim:api:messages:2.0:Error"],"detail": "userName not available","status": "409"}