Create Certificate
curl --request POST \
--url https://api.mokaru.ai/v1/certificates \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"issuer": "<string>",
"description": "<string>",
"issueDate": "<string>",
"expiryDate": "<string>",
"credentialId": "<string>",
"verificationUrl": "<string>"
}
'import requests
url = "https://api.mokaru.ai/v1/certificates"
payload = {
"name": "<string>",
"issuer": "<string>",
"description": "<string>",
"issueDate": "<string>",
"expiryDate": "<string>",
"credentialId": "<string>",
"verificationUrl": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
issuer: '<string>',
description: '<string>',
issueDate: '<string>',
expiryDate: '<string>',
credentialId: '<string>',
verificationUrl: '<string>'
})
};
fetch('https://api.mokaru.ai/v1/certificates', 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://api.mokaru.ai/v1/certificates",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'issuer' => '<string>',
'description' => '<string>',
'issueDate' => '<string>',
'expiryDate' => '<string>',
'credentialId' => '<string>',
'verificationUrl' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://api.mokaru.ai/v1/certificates"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"issuer\": \"<string>\",\n \"description\": \"<string>\",\n \"issueDate\": \"<string>\",\n \"expiryDate\": \"<string>\",\n \"credentialId\": \"<string>\",\n \"verificationUrl\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.post("https://api.mokaru.ai/v1/certificates")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"issuer\": \"<string>\",\n \"description\": \"<string>\",\n \"issueDate\": \"<string>\",\n \"expiryDate\": \"<string>\",\n \"credentialId\": \"<string>\",\n \"verificationUrl\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mokaru.ai/v1/certificates")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"issuer\": \"<string>\",\n \"description\": \"<string>\",\n \"issueDate\": \"<string>\",\n \"expiryDate\": \"<string>\",\n \"credentialId\": \"<string>\",\n \"verificationUrl\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyCertificates
Create Certificate
Add a new certificate to your career profile
POST
/
v1
/
certificates
Create Certificate
curl --request POST \
--url https://api.mokaru.ai/v1/certificates \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"issuer": "<string>",
"description": "<string>",
"issueDate": "<string>",
"expiryDate": "<string>",
"credentialId": "<string>",
"verificationUrl": "<string>"
}
'import requests
url = "https://api.mokaru.ai/v1/certificates"
payload = {
"name": "<string>",
"issuer": "<string>",
"description": "<string>",
"issueDate": "<string>",
"expiryDate": "<string>",
"credentialId": "<string>",
"verificationUrl": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
issuer: '<string>',
description: '<string>',
issueDate: '<string>',
expiryDate: '<string>',
credentialId: '<string>',
verificationUrl: '<string>'
})
};
fetch('https://api.mokaru.ai/v1/certificates', 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://api.mokaru.ai/v1/certificates",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'issuer' => '<string>',
'description' => '<string>',
'issueDate' => '<string>',
'expiryDate' => '<string>',
'credentialId' => '<string>',
'verificationUrl' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://api.mokaru.ai/v1/certificates"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"issuer\": \"<string>\",\n \"description\": \"<string>\",\n \"issueDate\": \"<string>\",\n \"expiryDate\": \"<string>\",\n \"credentialId\": \"<string>\",\n \"verificationUrl\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.post("https://api.mokaru.ai/v1/certificates")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"issuer\": \"<string>\",\n \"description\": \"<string>\",\n \"issueDate\": \"<string>\",\n \"expiryDate\": \"<string>\",\n \"credentialId\": \"<string>\",\n \"verificationUrl\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mokaru.ai/v1/certificates")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"issuer\": \"<string>\",\n \"description\": \"<string>\",\n \"issueDate\": \"<string>\",\n \"expiryDate\": \"<string>\",\n \"credentialId\": \"<string>\",\n \"verificationUrl\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyOverview
Add a new certificate or credential to the authenticated user’s base resume. Common use cases:- AI agent profile building - extract certifications from a LinkedIn export.
- Career tracking - log a freshly earned certificate.
- Verification - link to the issuing authority’s verification page.
Scope required:
certificates:write | Rate limit: 20 requests/minRequest
POST /v1/certificates
Content-Type: application/json
Body Parameters
string
required
Certificate name (max 200 characters)
string
required
Issuing organisation (max 200 characters)
string
Free-text description
string
ISO 8601 date string when the certificate was issued
string
ISO 8601 date string when the certificate expires (omit if no expiry)
string
Credential ID from the issuer (max 200 characters)
string
URL to verify the certificate (max 500 characters)
Query Parameters
string
Target a specific resume by its id (from
list-resumes). Omit to use your base/default resume; the resume must be self-contained.Response
{
"success": true,
"id": "clx..."
}
Was this page helpful?
⌘I
