Create a group with SCIM
Creates a user group in a Canva team.
The displayName
of the group can't already be in use by an existing group within the same Canva Team.
HTTP method and URL path
https://www.canva.com /_scim /v2 /Groups
Header parameters
Content-Type
string
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
Body parameters
schemas
string[]
Available values: The only valid value is urn:ietf:params:scim:schemas:core:2.0:Group
.
displayName
string
The name of the group, suitable for display to end-users.
Example request
Examples for using the /_scim/v2/Groups
endpoint:
curl --request POST 'https://www.canva.com/_scim/v2/Groups' \--header 'Authorization: Bearer {token}' \--header 'Content-Type: application/scim+json' \--data '{"schemas": "urn:ietf:params:scim:schemas:core:2.0:Group","displayName": "White rabbits"}'
const fetch = require("node-fetch");fetch("https://www.canva.com/_scim/v2/Groups", {method: "POST",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"}),}).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")).header("Authorization", "Bearer {token}").header("Content-Type", "application/scim+json").method("POST", HttpRequest.BodyPublishers.ofString("{\"schemas\": \"urn:ietf:params:scim:schemas:core:2.0:Group\", \"displayName\": \"White rabbits\"}")).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:Group","displayName": "White rabbits"}response = requests.post("https://www.canva.com/_scim/v2/Groups",headers=headers,json=data)print(response.json())
using System.Net.Http;var client = new HttpClient();var request = new HttpRequestMessage{Method = HttpMethod.Post,RequestUri = new Uri("https://www.canva.com/_scim/v2/Groups"),Headers ={{ "Authorization", "Bearer {token}" },},Content = new StringContent("{\"schemas\": \"urn:ietf:params:scim:schemas:core:2.0:Group\", \"displayName\": \"White rabbits\"}",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:Group","displayName": "White rabbits"}`)url := "https://www.canva.com/_scim/v2/Groups"req, _ := http.NewRequest("POST", 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",CURLOPT_CUSTOMREQUEST => "POST",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"])));$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')http = Net::HTTP.new(url.host, url.port)http.use_ssl = truerequest = Net::HTTP::Post.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"}REQUEST_BODYresponse = http.request(request)puts response.read_body
Success response
If successful, the endpoint returns a 201
response with a JSON body with the following parameters:
schemas
string[]
Available values: The only valid value is urn:ietf:params:scim:schemas:core:2.0:Group
.
id
string
The Canva-generated SCIM ID for the group.
meta
object
Meta properties for the group.
Properties of meta
resourceType
string
The SCIM resource type of the object.
Available values: The only valid value is Group
.
created
string
The timestamp when the object was created.
displayName
string
The name of the group, suitable for display to end-users.
members
object[]
The members
array returned in a group's API response is always empty, even if there are members in the group. To see members of a group, you must use the Canva web interface(opens in a new tab or window).
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
409 Conflict
schemas
string[]
Available values: The only valid value is urn:ietf:params:scim:api:messages:2.0:Error
.
detail
string
Available values: The only valid value is Group with name {group_name} already exists.
.
status
string
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"}