curl --request GET \
--url https://{tenant_name}.{region}.techwolf.ai/employees/{employee_external_id}/skill_events/{skill_event_external_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://{tenant_name}.{region}.techwolf.ai/employees/{employee_external_id}/skill_events/{skill_event_external_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{tenant_name}.{region}.techwolf.ai/employees/{employee_external_id}/skill_events/{skill_event_external_id}', 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://{tenant_name}.{region}.techwolf.ai/employees/{employee_external_id}/skill_events/{skill_event_external_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://{tenant_name}.{region}.techwolf.ai/employees/{employee_external_id}/skill_events/{skill_event_external_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://{tenant_name}.{region}.techwolf.ai/employees/{employee_external_id}/skill_events/{skill_event_external_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{tenant_name}.{region}.techwolf.ai/employees/{employee_external_id}/skill_events/{skill_event_external_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
"event_type": "working_history",
"timestamp": "2025-05-02",
"content": {
"job_title": "HR Manager",
"start_date": "2018-09-05",
"end_date": "2020-06-17",
"company": "TechWolf BV",
"job_description": "Manage the HR department and perform workforce planning"
},
"source": "employee-archives"
}[
{
"title": "401 Unauthorized",
"description": "OAuth access token is missing, invalid or expired."
}
][
{
"title": "403 Forbidden",
"description": "You don't have access to this resource."
}
][
{
"title": "404 Not Found",
"description": "Unknown external_id describing this resource. Please create this resource first."
}
][
{
"title": "405 Method Not Allowed",
"description": "This method is not allowed for the requested URL."
}
]"max connections reached: <limit>"[
{
"title": "503 Service Unavailable",
"description": "The Skill Engine API is currently not available. Please contact TechWolf or try again later."
}
]Get a Skill Event
Get a single Skill Event for an Employee.
curl --request GET \
--url https://{tenant_name}.{region}.techwolf.ai/employees/{employee_external_id}/skill_events/{skill_event_external_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://{tenant_name}.{region}.techwolf.ai/employees/{employee_external_id}/skill_events/{skill_event_external_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{tenant_name}.{region}.techwolf.ai/employees/{employee_external_id}/skill_events/{skill_event_external_id}', 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://{tenant_name}.{region}.techwolf.ai/employees/{employee_external_id}/skill_events/{skill_event_external_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://{tenant_name}.{region}.techwolf.ai/employees/{employee_external_id}/skill_events/{skill_event_external_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://{tenant_name}.{region}.techwolf.ai/employees/{employee_external_id}/skill_events/{skill_event_external_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{tenant_name}.{region}.techwolf.ai/employees/{employee_external_id}/skill_events/{skill_event_external_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
"event_type": "working_history",
"timestamp": "2025-05-02",
"content": {
"job_title": "HR Manager",
"start_date": "2018-09-05",
"end_date": "2020-06-17",
"company": "TechWolf BV",
"job_description": "Manage the HR department and perform workforce planning"
},
"source": "employee-archives"
}[
{
"title": "401 Unauthorized",
"description": "OAuth access token is missing, invalid or expired."
}
][
{
"title": "403 Forbidden",
"description": "You don't have access to this resource."
}
][
{
"title": "404 Not Found",
"description": "Unknown external_id describing this resource. Please create this resource first."
}
][
{
"title": "405 Method Not Allowed",
"description": "This method is not allowed for the requested URL."
}
]"max connections reached: <limit>"[
{
"title": "503 Service Unavailable",
"description": "The Skill Engine API is currently not available. Please contact TechWolf or try again later."
}
]Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Path Parameters
Unique ID linked to an Employee, consisting of alphanumeric characters, hyphens and underscores. The unique ID in your system, consisting of alphanumeric characters, hyphens and underscores.
1 - 100[a-zA-Z0-9_-]+"a3903505-eb84-42dc-a79f-5e7b1fe897b7"
Unique ID linked to a Skill Event, consisting of alphanumeric characters, hyphens and underscores. The unique ID in your system, consisting of alphanumeric characters, hyphens and underscores.
1 - 100[a-zA-Z0-9_-]+"a3903505-eb84-42dc-a79f-5e7b1fe897b7"
Response
OK
Default structure of a Skill Event.
The unique Skill Event ID in your system, consisting of alphanumeric characters, hyphens and underscores.
1 - 100[a-zA-Z0-9_-]+"a3903505-eb84-42dc-a79f-5e7b1fe897b7"
Type of the Skill Event. Learn more about the Skill Event Types at How it works.
working_history, education_history, resume_document, learning, feedback, goal, project, ticket, merge_request, certificate, skill_notes, skill_profile_feedback "working_history"
The completion date (in IS08601 format) of the Skill Event. From this point on, the Employee is considered to have obtained the Skills of this Event.
"2025-05-02"
The content of the Skill Event. Each type of Skill Event has a different content. The content should align with the event_type. Expanding this field shows you the supported Skill Event content bodies.
- working_history
- working_history_job
- education_history
- resume_document
- learning
- learning_course
- feedback
- goal
- project
- ticket
- merge_request
- certificate
- skill_notes
- skill_profile_feedback
Show child attributes
Show child attributes
The source system of the Skill Event. This is used to keep track of where Skill Events originate from.
"employee-archives"
Was this page helpful?