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[]
The value for this can only be 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[]
The value for this can only be 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. The value for this can only be 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[]
The value for this can only be urn:ietf:params:scim:api:messages:2.0:Error
.
detail
string
The value for this can only be 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"}