curl --request POST \
--url https://myorg.tribalhabits.com/papi/external_knowledges \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"user_name": "johnny",
"title": "title1",
"provider": "prov1",
"knowledge_type": 1,
"date_obtained": "1/6/2021",
"skills_attained": "First Aid;CPR",
"category_1": "Health",
"category_1_points": 10,
"category_1_time": 60
}
'import requests
url = "https://myorg.tribalhabits.com/papi/external_knowledges"
payload = {
"user_name": "johnny",
"title": "title1",
"provider": "prov1",
"knowledge_type": 1,
"date_obtained": "1/6/2021",
"skills_attained": "First Aid;CPR",
"category_1": "Health",
"category_1_points": 10,
"category_1_time": 60
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
user_name: 'johnny',
title: 'title1',
provider: 'prov1',
knowledge_type: 1,
date_obtained: '1/6/2021',
skills_attained: 'First Aid;CPR',
category_1: 'Health',
category_1_points: 10,
category_1_time: 60
})
};
fetch('https://myorg.tribalhabits.com/papi/external_knowledges', 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://myorg.tribalhabits.com/papi/external_knowledges",
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([
'user_name' => 'johnny',
'title' => 'title1',
'provider' => 'prov1',
'knowledge_type' => 1,
'date_obtained' => '1/6/2021',
'skills_attained' => 'First Aid;CPR',
'category_1' => 'Health',
'category_1_points' => 10,
'category_1_time' => 60
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}using RestSharp;
var options = new RestClientOptions("https://myorg.tribalhabits.com/papi/external_knowledges");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "<api-key>");
request.AddJsonBody("{\n \"user_name\": \"johnny\",\n \"title\": \"title1\",\n \"provider\": \"prov1\",\n \"knowledge_type\": 1,\n \"date_obtained\": \"1/6/2021\",\n \"skills_attained\": \"First Aid;CPR\",\n \"category_1\": \"Health\",\n \"category_1_points\": 10,\n \"category_1_time\": 60\n}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
require 'uri'
require 'net/http'
url = URI("https://myorg.tribalhabits.com/papi/external_knowledges")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"user_name\": \"johnny\",\n \"title\": \"title1\",\n \"provider\": \"prov1\",\n \"knowledge_type\": 1,\n \"date_obtained\": \"1/6/2021\",\n \"skills_attained\": \"First Aid;CPR\",\n \"category_1\": \"Health\",\n \"category_1_points\": 10,\n \"category_1_time\": 60\n}"
response = http.request(request)
puts response.read_body{
"id": 12345,
"knowledge_type": 1,
"title": "title1",
"code": "code1",
"provider": "prov1",
"date_obtained": "2021-06-01",
"certificate_number": "CI1",
"country_obtained": "AU",
"state_obtained": "NSW",
"expires": null,
"qualification_level": null,
"assessment_score": 1,
"total_time": 2,
"notes": "Notes",
"klass": "ClassA",
"created_at": "2019-08-08T15:51:31.424+10:00",
"updated_at": "2020-01-22T14:38:39.099+11:00",
"development_focus": null
}"<string>"{
"reason": "<string>",
"errors": [
"<string>"
]
}{
"error": "Rate limit exceeded. Please slow down.",
"retry_after_seconds": 23
}Create a new external knowledge
This endpoint creates a new external knowledge record for a user. If the user cannot be found, 400 is returned and nothing is saved. Missing required fields return 422.
The country and region codes can be found in this site: https://github.com/country-regions/country-region-data/blob/master/data.json
curl --request POST \
--url https://myorg.tribalhabits.com/papi/external_knowledges \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"user_name": "johnny",
"title": "title1",
"provider": "prov1",
"knowledge_type": 1,
"date_obtained": "1/6/2021",
"skills_attained": "First Aid;CPR",
"category_1": "Health",
"category_1_points": 10,
"category_1_time": 60
}
'import requests
url = "https://myorg.tribalhabits.com/papi/external_knowledges"
payload = {
"user_name": "johnny",
"title": "title1",
"provider": "prov1",
"knowledge_type": 1,
"date_obtained": "1/6/2021",
"skills_attained": "First Aid;CPR",
"category_1": "Health",
"category_1_points": 10,
"category_1_time": 60
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
user_name: 'johnny',
title: 'title1',
provider: 'prov1',
knowledge_type: 1,
date_obtained: '1/6/2021',
skills_attained: 'First Aid;CPR',
category_1: 'Health',
category_1_points: 10,
category_1_time: 60
})
};
fetch('https://myorg.tribalhabits.com/papi/external_knowledges', 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://myorg.tribalhabits.com/papi/external_knowledges",
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([
'user_name' => 'johnny',
'title' => 'title1',
'provider' => 'prov1',
'knowledge_type' => 1,
'date_obtained' => '1/6/2021',
'skills_attained' => 'First Aid;CPR',
'category_1' => 'Health',
'category_1_points' => 10,
'category_1_time' => 60
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}using RestSharp;
var options = new RestClientOptions("https://myorg.tribalhabits.com/papi/external_knowledges");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "<api-key>");
request.AddJsonBody("{\n \"user_name\": \"johnny\",\n \"title\": \"title1\",\n \"provider\": \"prov1\",\n \"knowledge_type\": 1,\n \"date_obtained\": \"1/6/2021\",\n \"skills_attained\": \"First Aid;CPR\",\n \"category_1\": \"Health\",\n \"category_1_points\": 10,\n \"category_1_time\": 60\n}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
require 'uri'
require 'net/http'
url = URI("https://myorg.tribalhabits.com/papi/external_knowledges")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"user_name\": \"johnny\",\n \"title\": \"title1\",\n \"provider\": \"prov1\",\n \"knowledge_type\": 1,\n \"date_obtained\": \"1/6/2021\",\n \"skills_attained\": \"First Aid;CPR\",\n \"category_1\": \"Health\",\n \"category_1_points\": 10,\n \"category_1_time\": 60\n}"
response = http.request(request)
puts response.read_body{
"id": 12345,
"knowledge_type": 1,
"title": "title1",
"code": "code1",
"provider": "prov1",
"date_obtained": "2021-06-01",
"certificate_number": "CI1",
"country_obtained": "AU",
"state_obtained": "NSW",
"expires": null,
"qualification_level": null,
"assessment_score": 1,
"total_time": 2,
"notes": "Notes",
"klass": "ClassA",
"created_at": "2019-08-08T15:51:31.424+10:00",
"updated_at": "2020-01-22T14:38:39.099+11:00",
"development_focus": null
}"<string>"{
"reason": "<string>",
"errors": [
"<string>"
]
}{
"error": "Rate limit exceeded. Please slow down.",
"retry_after_seconds": 23
}Authorizations
Your organisation's API key, sent as Authorization: my_api_key. The key can also be passed as an api_key query parameter. See Authentication.
Body
User name of the person this knowledge belongs to (case-insensitive)
Title of external knowledge. Set automatically to Development Plan for Development Plans
Provider
The date you obtained this knowledge. Formats: 'yyyy-mm-dd', 'dd/mm/yyyy' or 'dd/mm/yy'. date is accepted as an alternative name
Required, unless type is given. 1 = Training, 2 = Certificate, 3 = Qualification, 4 = License, 5 = Document, 6 = Development Plan. Can also be sent as a string, eg "1". Or use type
1, 2, 3, 4, 5, 6 Alternative to knowledge_type, as text: Training, Certificate, Qualification, License, Document or Development Plan (case-insensitive). Required to use document_type or the Development Plan fields
For type Document only. The type of Document, eg General, Employment, Financial, Medical, Performance, Policy, Travel, Registration, Membership. Stored in code
Optional code for the external knowledge
Certificate Number
Country in code form (eg 'AU' for Australia)
State or Region in code form (eg 'NSW'). region_obtained is accepted as an alternative name
Date the knowledge expires. Same formats as date_obtained
Qualification level, eg Certificate IV, Diploma, Bachelor Degree
Assessment score as a decimal, eg 1.2
Time in minutes, as a whole number
Notes
Class of knowledge. class is accepted as an alternative name
For type Development Plan only. Stored in provider
For type Development Plan only. Stored in date_obtained
For type Development Plan only. Stored in expires
For type Development Plan only. Initial, Mid Review or End Review. Stored in code
Initial, Mid Review, End Review For Development Plans: At Level, Transition or Progression
At Level, Transition, Progression Skill names attained by this knowledge. Separate multiple skills with ;. Unknown skills are ignored
Category name attained in the knowledge. Unknown categories return 400
Points for category 1, eg 10 or 12.5. Stored to 2 decimal places. Can also be sent as a numeric string, eg "10"
Time in minutes for category 1, eg 60 or 90.5. Can also be sent as a numeric string, eg "60"
Category name attained in the knowledge. Unknown categories return 400
Points for category 2, eg 10 or 12.5. Stored to 2 decimal places. Can also be sent as a numeric string, eg "10"
Time in minutes for category 2, eg 60 or 90.5. Can also be sent as a numeric string, eg "60"
Category name attained in the knowledge. Unknown categories return 400
Points for category 3, eg 10 or 12.5. Stored to 2 decimal places. Can also be sent as a numeric string, eg "10"
Time in minutes for category 3, eg 60 or 90.5. Can also be sent as a numeric string, eg "60"
Response
The external knowledge record was created
Unique identifier of the external knowledge record, used with show and update
1 = Training, 2 = Certificate, 3 = Qualification, 4 = License, 5 = Document, 6 = Development Plan
1, 2, 3, 4, 5, 6 Code for the knowledge. For Documents this holds the document type, and for Development Plans the stage
Date in the form 'yyyy-mm-dd'
State or region code
Date in the form 'yyyy-mm-dd'
Class of knowledge

