Create Credential Type with Name
curl --request PUT \
--url https://staging.crossmint.com/api/v1-alpha1/credentials/types/{typeName} \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Course completion",
"description": "Describes the course completed and the assigned grade",
"type": "object",
"properties": {
"credentialSubject": {
"type": "object",
"properties": {
"course": {
"type": "string"
},
"grade": {
"type": "string"
},
"id": {
"type": "string"
}
},
"required": [
"course",
"grade"
],
"additionalProperties": false
}
}
}
'import requests
url = "https://staging.crossmint.com/api/v1-alpha1/credentials/types/{typeName}"
payload = {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Course completion",
"description": "Describes the course completed and the assigned grade",
"type": "object",
"properties": { "credentialSubject": {
"type": "object",
"properties": {
"course": { "type": "string" },
"grade": { "type": "string" },
"id": { "type": "string" }
},
"required": ["course", "grade"],
"additionalProperties": False
} }
}
headers = {
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
$schema: 'https://json-schema.org/draft/2020-12/schema',
title: 'Course completion',
description: 'Describes the course completed and the assigned grade',
type: 'object',
properties: {
credentialSubject: {
type: 'object',
properties: {course: {type: 'string'}, grade: {type: 'string'}, id: {type: 'string'}},
required: ['course', 'grade'],
additionalProperties: false
}
}
})
};
fetch('https://staging.crossmint.com/api/v1-alpha1/credentials/types/{typeName}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://staging.crossmint.com/api/v1-alpha1/credentials/types/{typeName}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'$schema' => 'https://json-schema.org/draft/2020-12/schema',
'title' => 'Course completion',
'description' => 'Describes the course completed and the assigned grade',
'type' => 'object',
'properties' => [
'credentialSubject' => [
'type' => 'object',
'properties' => [
'course' => [
'type' => 'string'
],
'grade' => [
'type' => 'string'
],
'id' => [
'type' => 'string'
]
],
'required' => [
'course',
'grade'
],
'additionalProperties' => false
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://staging.crossmint.com/api/v1-alpha1/credentials/types/{typeName}"
payload := strings.NewReader("{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"title\": \"Course completion\",\n \"description\": \"Describes the course completed and the assigned grade\",\n \"type\": \"object\",\n \"properties\": {\n \"credentialSubject\": {\n \"type\": \"object\",\n \"properties\": {\n \"course\": {\n \"type\": \"string\"\n },\n \"grade\": {\n \"type\": \"string\"\n },\n \"id\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"course\",\n \"grade\"\n ],\n \"additionalProperties\": false\n }\n }\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://staging.crossmint.com/api/v1-alpha1/credentials/types/{typeName}")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"title\": \"Course completion\",\n \"description\": \"Describes the course completed and the assigned grade\",\n \"type\": \"object\",\n \"properties\": {\n \"credentialSubject\": {\n \"type\": \"object\",\n \"properties\": {\n \"course\": {\n \"type\": \"string\"\n },\n \"grade\": {\n \"type\": \"string\"\n },\n \"id\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"course\",\n \"grade\"\n ],\n \"additionalProperties\": false\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.crossmint.com/api/v1-alpha1/credentials/types/{typeName}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["X-API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"title\": \"Course completion\",\n \"description\": \"Describes the course completed and the assigned grade\",\n \"type\": \"object\",\n \"properties\": {\n \"credentialSubject\": {\n \"type\": \"object\",\n \"properties\": {\n \"course\": {\n \"type\": \"string\"\n },\n \"grade\": {\n \"type\": \"string\"\n },\n \"id\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"course\",\n \"grade\"\n ],\n \"additionalProperties\": false\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "crossmint:bfb292e7-2700-4924-9213-478f3d71f2d8:CourseCompletionCertificate",
"typeSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Course completion",
"description": "Describes the course completed and the assigned grade",
"type": "object",
"properties": {
"credentialSubject": {
"type": "object",
"properties": {
"course": {
"type": "string"
},
"grade": {
"type": "string"
},
"id": {
"type": "string"
}
},
"required": [
"course",
"grade"
],
"additionalProperties": false
}
},
"$id": "https://staging.crossmint.com/api/v1-alpha1/credentials/types/crossmint:bfb292e7-2700-4924-9213-478f3d71f2d8:CourseCompletionCertificate"
}
}Verifiable Credential Types
Create Credential Type with Name
Create or import a type with a given name. This is how you define a custom credential schema.
API scope required credentials.create
PUT
/
v1-alpha1
/
credentials
/
types
/
{typeName}
Create Credential Type with Name
curl --request PUT \
--url https://staging.crossmint.com/api/v1-alpha1/credentials/types/{typeName} \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Course completion",
"description": "Describes the course completed and the assigned grade",
"type": "object",
"properties": {
"credentialSubject": {
"type": "object",
"properties": {
"course": {
"type": "string"
},
"grade": {
"type": "string"
},
"id": {
"type": "string"
}
},
"required": [
"course",
"grade"
],
"additionalProperties": false
}
}
}
'import requests
url = "https://staging.crossmint.com/api/v1-alpha1/credentials/types/{typeName}"
payload = {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Course completion",
"description": "Describes the course completed and the assigned grade",
"type": "object",
"properties": { "credentialSubject": {
"type": "object",
"properties": {
"course": { "type": "string" },
"grade": { "type": "string" },
"id": { "type": "string" }
},
"required": ["course", "grade"],
"additionalProperties": False
} }
}
headers = {
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
$schema: 'https://json-schema.org/draft/2020-12/schema',
title: 'Course completion',
description: 'Describes the course completed and the assigned grade',
type: 'object',
properties: {
credentialSubject: {
type: 'object',
properties: {course: {type: 'string'}, grade: {type: 'string'}, id: {type: 'string'}},
required: ['course', 'grade'],
additionalProperties: false
}
}
})
};
fetch('https://staging.crossmint.com/api/v1-alpha1/credentials/types/{typeName}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://staging.crossmint.com/api/v1-alpha1/credentials/types/{typeName}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'$schema' => 'https://json-schema.org/draft/2020-12/schema',
'title' => 'Course completion',
'description' => 'Describes the course completed and the assigned grade',
'type' => 'object',
'properties' => [
'credentialSubject' => [
'type' => 'object',
'properties' => [
'course' => [
'type' => 'string'
],
'grade' => [
'type' => 'string'
],
'id' => [
'type' => 'string'
]
],
'required' => [
'course',
'grade'
],
'additionalProperties' => false
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://staging.crossmint.com/api/v1-alpha1/credentials/types/{typeName}"
payload := strings.NewReader("{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"title\": \"Course completion\",\n \"description\": \"Describes the course completed and the assigned grade\",\n \"type\": \"object\",\n \"properties\": {\n \"credentialSubject\": {\n \"type\": \"object\",\n \"properties\": {\n \"course\": {\n \"type\": \"string\"\n },\n \"grade\": {\n \"type\": \"string\"\n },\n \"id\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"course\",\n \"grade\"\n ],\n \"additionalProperties\": false\n }\n }\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://staging.crossmint.com/api/v1-alpha1/credentials/types/{typeName}")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"title\": \"Course completion\",\n \"description\": \"Describes the course completed and the assigned grade\",\n \"type\": \"object\",\n \"properties\": {\n \"credentialSubject\": {\n \"type\": \"object\",\n \"properties\": {\n \"course\": {\n \"type\": \"string\"\n },\n \"grade\": {\n \"type\": \"string\"\n },\n \"id\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"course\",\n \"grade\"\n ],\n \"additionalProperties\": false\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.crossmint.com/api/v1-alpha1/credentials/types/{typeName}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["X-API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"title\": \"Course completion\",\n \"description\": \"Describes the course completed and the assigned grade\",\n \"type\": \"object\",\n \"properties\": {\n \"credentialSubject\": {\n \"type\": \"object\",\n \"properties\": {\n \"course\": {\n \"type\": \"string\"\n },\n \"grade\": {\n \"type\": \"string\"\n },\n \"id\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"course\",\n \"grade\"\n ],\n \"additionalProperties\": false\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "crossmint:bfb292e7-2700-4924-9213-478f3d71f2d8:CourseCompletionCertificate",
"typeSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Course completion",
"description": "Describes the course completed and the assigned grade",
"type": "object",
"properties": {
"credentialSubject": {
"type": "object",
"properties": {
"course": {
"type": "string"
},
"grade": {
"type": "string"
},
"id": {
"type": "string"
}
},
"required": [
"course",
"grade"
],
"additionalProperties": false
}
},
"$id": "https://staging.crossmint.com/api/v1-alpha1/credentials/types/crossmint:bfb292e7-2700-4924-9213-478f3d71f2d8:CourseCompletionCertificate"
}
}This is an alpha API and subject to change.
Authorizations
Key obtained from the Crossmint developer console, reflecting the API scope granted.
Path Parameters
The name of the type.
Body
application/json
Was this page helpful?
⌘I

