Apply Taxonomy changes
curl --request POST \
--url https://{tenant_name}.{region}.techwolf.ai/taxonomy/apply \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"changes": [
{
"operation_type": "create_domain",
"content": {
"domain_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
"domain_name": "HR management"
}
}
]
}
'import requests
url = "https://{tenant_name}.{region}.techwolf.ai/taxonomy/apply"
payload = { "changes": [
{
"operation_type": "create_domain",
"content": {
"domain_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
"domain_name": "HR management"
}
}
] }
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({
changes: [
{
operation_type: 'create_domain',
content: {
domain_id: 'a3903505-eb84-42dc-a79f-5e7b1fe897b7',
domain_name: 'HR management'
}
}
]
})
};
fetch('https://{tenant_name}.{region}.techwolf.ai/taxonomy/apply', 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/taxonomy/apply",
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([
'changes' => [
[
'operation_type' => 'create_domain',
'content' => [
'domain_id' => 'a3903505-eb84-42dc-a79f-5e7b1fe897b7',
'domain_name' => 'HR management'
]
]
]
]),
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://{tenant_name}.{region}.techwolf.ai/taxonomy/apply"
payload := strings.NewReader("{\n \"changes\": [\n {\n \"operation_type\": \"create_domain\",\n \"content\": {\n \"domain_id\": \"a3903505-eb84-42dc-a79f-5e7b1fe897b7\",\n \"domain_name\": \"HR management\"\n }\n }\n ]\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://{tenant_name}.{region}.techwolf.ai/taxonomy/apply")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"changes\": [\n {\n \"operation_type\": \"create_domain\",\n \"content\": {\n \"domain_id\": \"a3903505-eb84-42dc-a79f-5e7b1fe897b7\",\n \"domain_name\": \"HR management\"\n }\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{tenant_name}.{region}.techwolf.ai/taxonomy/apply")
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 \"changes\": [\n {\n \"operation_type\": \"create_domain\",\n \"content\": {\n \"domain_id\": \"a3903505-eb84-42dc-a79f-5e7b1fe897b7\",\n \"domain_name\": \"HR management\"\n }\n }\n ]\n}"
response = http.request(request)
puts response.read_body[
{
"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."
}
][
{
"title": "422 Unprocessable entity",
"description": "The request body contains conflicting changes."
}
]"max connections reached: <limit>"[
{
"title": "503 Service Unavailable",
"description": "The Skill Engine API is currently not available. Please contact TechWolf or try again later."
}
]Taxonomy operations
Apply Taxonomy changes
Apply a set of changes to the Taxonomy in the system. The changes are applied in the order they are given in the request body.
Apply Taxonomy changes
curl --request POST \
--url https://{tenant_name}.{region}.techwolf.ai/taxonomy/apply \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"changes": [
{
"operation_type": "create_domain",
"content": {
"domain_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
"domain_name": "HR management"
}
}
]
}
'import requests
url = "https://{tenant_name}.{region}.techwolf.ai/taxonomy/apply"
payload = { "changes": [
{
"operation_type": "create_domain",
"content": {
"domain_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
"domain_name": "HR management"
}
}
] }
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({
changes: [
{
operation_type: 'create_domain',
content: {
domain_id: 'a3903505-eb84-42dc-a79f-5e7b1fe897b7',
domain_name: 'HR management'
}
}
]
})
};
fetch('https://{tenant_name}.{region}.techwolf.ai/taxonomy/apply', 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/taxonomy/apply",
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([
'changes' => [
[
'operation_type' => 'create_domain',
'content' => [
'domain_id' => 'a3903505-eb84-42dc-a79f-5e7b1fe897b7',
'domain_name' => 'HR management'
]
]
]
]),
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://{tenant_name}.{region}.techwolf.ai/taxonomy/apply"
payload := strings.NewReader("{\n \"changes\": [\n {\n \"operation_type\": \"create_domain\",\n \"content\": {\n \"domain_id\": \"a3903505-eb84-42dc-a79f-5e7b1fe897b7\",\n \"domain_name\": \"HR management\"\n }\n }\n ]\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://{tenant_name}.{region}.techwolf.ai/taxonomy/apply")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"changes\": [\n {\n \"operation_type\": \"create_domain\",\n \"content\": {\n \"domain_id\": \"a3903505-eb84-42dc-a79f-5e7b1fe897b7\",\n \"domain_name\": \"HR management\"\n }\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{tenant_name}.{region}.techwolf.ai/taxonomy/apply")
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 \"changes\": [\n {\n \"operation_type\": \"create_domain\",\n \"content\": {\n \"domain_id\": \"a3903505-eb84-42dc-a79f-5e7b1fe897b7\",\n \"domain_name\": \"HR management\"\n }\n }\n ]\n}"
response = http.request(request)
puts response.read_body[
{
"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."
}
][
{
"title": "422 Unprocessable entity",
"description": "The request body contains conflicting changes."
}
]"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.
Query Parameters
The external vendor vocabulary in which the input Skills exist. This will only work for vendors that are activated on your tenant. If not passed, the input Skills have to be in the TechWolf vocabulary.
Available options:
techwolf, workday, sap_attribute_library Example:
"workday"
Body
application/json
- 3-level Taxonomy
- 4-level Taxonomy
Default structure of a set of changes.
Show child attributes
Show child attributes
Response
No Content
Was this page helpful?