Update all information for a group
Replaces an existing group's information.
You must provide all the information for the group, as if you're creating the group for the first time. Any existing information for the group that isn't provided, including group members, is removed.
The members
attribute of a group is an array of users, with each user represented as a value
attribute that corresponds to the user's Canva SCIM ID.
If you only want to update a some of the group's attributes, you can use the PATCH
operation .
HTTP method and URL path
PUT https://www.canva.com /_scim /v2 /Groups/{canva_scim_id}
Provides credentials to authenticate the request, in the form of a Bearer
token.
For example: Authorization: Bearer {token}
Indicates 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
Path parameters
The Canva-generated SCIM ID for the group.
Body parameters
The value for this can only be urn:ietf:params:scim:schemas:core:2.0:Group
.
The name of the group, suitable for display to end-users.
The members of the group.
Properties of members
The Canva-generated SCIM ID for the user.
Example request
Examples for using the /_scim/v2/Groups/{canva_scim_id}
endpoint:
cURL Node.js Java Python C# Go PHP Ruby
curl --request PUT 'https://www.canva.com/_scim/v2/Groups/{canva_scim_id}' \
--header 'Authorization: Bearer {token}' \
--header 'Content-Type: application/scim+json' \
--data '{
"schemas": "urn:ietf:params:scim:schemas:core:2.0:Group",
"displayName": "White rabbits",
"members": [
{
"value": "UAFdxab1abC"
}
]
}'
const fetch = require ( "node-fetch" ) ;
fetch ( "https://www.canva.com/_scim/v2/Groups/{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:Group" ,
"displayName" : "White rabbits" ,
"members" : [
{
"value" : "UAFdxab1abC"
}
]
} ) ,
} )
. 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/Groups/{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:Group\", \"displayName\": \"White rabbits\", \"members\": [{\"value\": \"UAFdxab1abC\"}]}" ) )
. build ( ) ;
HttpResponse < String > response = HttpClient . newHttpClient ( ) . send (
request ,
HttpResponse . BodyHandlers . ofString ( )
) ;
System . out . println ( response . body ( ) ) ;
}
}
import requests
headers = {
"Authorization" : "Bearer {token}" ,
"Content-Type" : "application/scim+json"
}
data = {
"schemas" : "urn:ietf:params:scim:schemas:core:2.0:Group" ,
"displayName" : "White rabbits" ,
"members" : [
{
"value" : "UAFdxab1abC"
}
]
}
response = requests . put ( "https://www.canva.com/_scim/v2/Groups/{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/Groups/{canva_scim_id}" ) ,
Headers =
{
{ "Authorization" , "Bearer {token}" } ,
} ,
Content = new StringContent (
"{\"schemas\": \"urn:ietf:params:scim:schemas:core:2.0:Group\", \"displayName\": \"White rabbits\", \"members\": [{\"value\": \"UAFdxab1abC\"}]}" ,
Encoding . UTF8 ,
"application/scim+json"
) ,
} ;
using ( var response = await client . SendAsync ( request ) )
{
response . EnsureSuccessStatusCode ( ) ;
var body = await response . Content . ReadAsStringAsync ( ) ;
Console . WriteLine ( body ) ;
} ;
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main ( ) {
payload := strings . NewReader ( `{
"schemas": "urn:ietf:params:scim:schemas:core:2.0:Group",
"displayName": "White rabbits",
"members": [
{
"value": "UAFdxab1abC"
}
]
}` )
url := "https://www.canva.com/_scim/v2/Groups/{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/Groups/{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:Group" ,
"displayName" => "White rabbits" ,
"members" => [
[
"value" => "UAFdxab1abC"
]
]
] )
) ) ;
$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/Groups/{canva_scim_id}' )
http = Net :: HTTP . new ( url . host , url . port )
http . use_ssl = true
request = 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:Group",
"displayName": "White rabbits",
"members": [
{
"value": "UAFdxab1abC"
}
]
}
REQUEST_BODY
response = http . request ( request )
puts response . read_body
Success response
If successful, the endpoint returns a 200
response with a JSON body with the following parameters:
The value for this can only be urn:ietf:params:scim:schemas:core:2.0:Group
.
The Canva-generated SCIM ID for the group.
The name of the group, suitable for display to end-users.
Example response
{
"schemas" : [
"urn:ietf:params:scim:schemas:core:2.0:Group"
] ,
"id" : "UAFgrpb1abC" ,
"meta" : {
"resourceType" : "Group" ,
"created" : "2023-09-18T06:08:35Z"
} ,
"displayName" : "White rabbits" ,
"members" : [ ]
}
Error responses
404 Not found
The value for this can only be urn:ietf:params:scim:api:messages:2.0:Error
.
The value for this can only be group {canva_scim_id} not found
.
The HTTP status code of the error.
Example error response
{
"schemas" : [
"urn:ietf:params:scim:api:messages:2.0:Error"
] ,
"detail" : "group {canva_scim_id} not found" ,
"status" : "404"
}
409 Conflict
The value for this can only be urn:ietf:params:scim:api:messages:2.0:Error
.
The value for this can only be Group with name {group_name} already exists.
.
The HTTP status code of the error.
Example error response
{
"schemas" : [
"urn:ietf:params:scim:api:messages:2.0:Error"
] ,
"detail" : "Group with name White rabbits already exists." ,
"status" : "409"
}