Create position
curl --request POST \
--url https://staging.api.us.aptlydone.com/settings/v1/positions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"tenantId": "33734ff7-af8d-4f2e-b531-b85b7b0873df",
"positionName": "Senior Developer",
"isSCIMProvisioned": false,
"externalId": "EXT-POS-12345",
"instanceId": "e2c40d51-b040-4168-b147-71532f8c6788",
"status": "ACTIVE",
"groupIds": [
"6fee9957-d395-4494-8331-45f63b4333e9, 85172028-328a-4815-8a4f-564c725ed415"
]
}
'import requests
url = "https://staging.api.us.aptlydone.com/settings/v1/positions"
payload = {
"tenantId": "33734ff7-af8d-4f2e-b531-b85b7b0873df",
"positionName": "Senior Developer",
"isSCIMProvisioned": False,
"externalId": "EXT-POS-12345",
"instanceId": "e2c40d51-b040-4168-b147-71532f8c6788",
"status": "ACTIVE",
"groupIds": ["6fee9957-d395-4494-8331-45f63b4333e9, 85172028-328a-4815-8a4f-564c725ed415"]
}
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({
tenantId: '33734ff7-af8d-4f2e-b531-b85b7b0873df',
positionName: 'Senior Developer',
isSCIMProvisioned: false,
externalId: 'EXT-POS-12345',
instanceId: 'e2c40d51-b040-4168-b147-71532f8c6788',
status: 'ACTIVE',
groupIds: ['6fee9957-d395-4494-8331-45f63b4333e9, 85172028-328a-4815-8a4f-564c725ed415']
})
};
fetch('https://staging.api.us.aptlydone.com/settings/v1/positions', 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.api.us.aptlydone.com/settings/v1/positions",
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([
'tenantId' => '33734ff7-af8d-4f2e-b531-b85b7b0873df',
'positionName' => 'Senior Developer',
'isSCIMProvisioned' => false,
'externalId' => 'EXT-POS-12345',
'instanceId' => 'e2c40d51-b040-4168-b147-71532f8c6788',
'status' => 'ACTIVE',
'groupIds' => [
'6fee9957-d395-4494-8331-45f63b4333e9, 85172028-328a-4815-8a4f-564c725ed415'
]
]),
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://staging.api.us.aptlydone.com/settings/v1/positions"
payload := strings.NewReader("{\n \"tenantId\": \"33734ff7-af8d-4f2e-b531-b85b7b0873df\",\n \"positionName\": \"Senior Developer\",\n \"isSCIMProvisioned\": false,\n \"externalId\": \"EXT-POS-12345\",\n \"instanceId\": \"e2c40d51-b040-4168-b147-71532f8c6788\",\n \"status\": \"ACTIVE\",\n \"groupIds\": [\n \"6fee9957-d395-4494-8331-45f63b4333e9, 85172028-328a-4815-8a4f-564c725ed415\"\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://staging.api.us.aptlydone.com/settings/v1/positions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"tenantId\": \"33734ff7-af8d-4f2e-b531-b85b7b0873df\",\n \"positionName\": \"Senior Developer\",\n \"isSCIMProvisioned\": false,\n \"externalId\": \"EXT-POS-12345\",\n \"instanceId\": \"e2c40d51-b040-4168-b147-71532f8c6788\",\n \"status\": \"ACTIVE\",\n \"groupIds\": [\n \"6fee9957-d395-4494-8331-45f63b4333e9, 85172028-328a-4815-8a4f-564c725ed415\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.api.us.aptlydone.com/settings/v1/positions")
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 \"tenantId\": \"33734ff7-af8d-4f2e-b531-b85b7b0873df\",\n \"positionName\": \"Senior Developer\",\n \"isSCIMProvisioned\": false,\n \"externalId\": \"EXT-POS-12345\",\n \"instanceId\": \"e2c40d51-b040-4168-b147-71532f8c6788\",\n \"status\": \"ACTIVE\",\n \"groupIds\": [\n \"6fee9957-d395-4494-8331-45f63b4333e9, 85172028-328a-4815-8a4f-564c725ed415\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"statusCode": 200,
"timestamp": "2026-01-08T06:33:20.711Z",
"message": "Success",
"data": {
"id": "1533d1e1-b367-4b1e-bd45-bec6d1939149",
"tenantId": "7991d6c1-8488-406e-acf6-f07e7d1399e8",
"positionId": "10000",
"positionName": "Senior Developer",
"isSCIMProvisioned": false,
"status": "ACTIVE",
"isDeleted": false,
"createdOn": "2025-01-13T12:34:59.300Z",
"updatedOn": "2025-01-13T12:34:59.300Z",
"groups": [
{
"groupName": "Engineering Team",
"displayName": "Engineering Team Display",
"groupTypeName": "Organizations",
"groupId": "9fbe4911-1eae-499e-9190-a447a7134fe7",
"groupTypeId": "a51e8d10-388f-4042-b8a8-578b7ace6992",
"parentId": 2,
"parentName": "Technology Division",
"createdAt": "2025-01-13T12:34:59.303Z",
"updatedAt": "2025-01-13T12:34:59.303Z"
}
],
"delegationsReceived": 1,
"delegationsIssued": 1,
"externalId": "EXT-POS-12345",
"instanceId": "db036aaa-14fe-454a-bc23-a722e4106925"
}
}Positions
Create position
POST
/
v1
/
positions
Create position
curl --request POST \
--url https://staging.api.us.aptlydone.com/settings/v1/positions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"tenantId": "33734ff7-af8d-4f2e-b531-b85b7b0873df",
"positionName": "Senior Developer",
"isSCIMProvisioned": false,
"externalId": "EXT-POS-12345",
"instanceId": "e2c40d51-b040-4168-b147-71532f8c6788",
"status": "ACTIVE",
"groupIds": [
"6fee9957-d395-4494-8331-45f63b4333e9, 85172028-328a-4815-8a4f-564c725ed415"
]
}
'import requests
url = "https://staging.api.us.aptlydone.com/settings/v1/positions"
payload = {
"tenantId": "33734ff7-af8d-4f2e-b531-b85b7b0873df",
"positionName": "Senior Developer",
"isSCIMProvisioned": False,
"externalId": "EXT-POS-12345",
"instanceId": "e2c40d51-b040-4168-b147-71532f8c6788",
"status": "ACTIVE",
"groupIds": ["6fee9957-d395-4494-8331-45f63b4333e9, 85172028-328a-4815-8a4f-564c725ed415"]
}
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({
tenantId: '33734ff7-af8d-4f2e-b531-b85b7b0873df',
positionName: 'Senior Developer',
isSCIMProvisioned: false,
externalId: 'EXT-POS-12345',
instanceId: 'e2c40d51-b040-4168-b147-71532f8c6788',
status: 'ACTIVE',
groupIds: ['6fee9957-d395-4494-8331-45f63b4333e9, 85172028-328a-4815-8a4f-564c725ed415']
})
};
fetch('https://staging.api.us.aptlydone.com/settings/v1/positions', 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.api.us.aptlydone.com/settings/v1/positions",
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([
'tenantId' => '33734ff7-af8d-4f2e-b531-b85b7b0873df',
'positionName' => 'Senior Developer',
'isSCIMProvisioned' => false,
'externalId' => 'EXT-POS-12345',
'instanceId' => 'e2c40d51-b040-4168-b147-71532f8c6788',
'status' => 'ACTIVE',
'groupIds' => [
'6fee9957-d395-4494-8331-45f63b4333e9, 85172028-328a-4815-8a4f-564c725ed415'
]
]),
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://staging.api.us.aptlydone.com/settings/v1/positions"
payload := strings.NewReader("{\n \"tenantId\": \"33734ff7-af8d-4f2e-b531-b85b7b0873df\",\n \"positionName\": \"Senior Developer\",\n \"isSCIMProvisioned\": false,\n \"externalId\": \"EXT-POS-12345\",\n \"instanceId\": \"e2c40d51-b040-4168-b147-71532f8c6788\",\n \"status\": \"ACTIVE\",\n \"groupIds\": [\n \"6fee9957-d395-4494-8331-45f63b4333e9, 85172028-328a-4815-8a4f-564c725ed415\"\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://staging.api.us.aptlydone.com/settings/v1/positions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"tenantId\": \"33734ff7-af8d-4f2e-b531-b85b7b0873df\",\n \"positionName\": \"Senior Developer\",\n \"isSCIMProvisioned\": false,\n \"externalId\": \"EXT-POS-12345\",\n \"instanceId\": \"e2c40d51-b040-4168-b147-71532f8c6788\",\n \"status\": \"ACTIVE\",\n \"groupIds\": [\n \"6fee9957-d395-4494-8331-45f63b4333e9, 85172028-328a-4815-8a4f-564c725ed415\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.api.us.aptlydone.com/settings/v1/positions")
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 \"tenantId\": \"33734ff7-af8d-4f2e-b531-b85b7b0873df\",\n \"positionName\": \"Senior Developer\",\n \"isSCIMProvisioned\": false,\n \"externalId\": \"EXT-POS-12345\",\n \"instanceId\": \"e2c40d51-b040-4168-b147-71532f8c6788\",\n \"status\": \"ACTIVE\",\n \"groupIds\": [\n \"6fee9957-d395-4494-8331-45f63b4333e9, 85172028-328a-4815-8a4f-564c725ed415\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"statusCode": 200,
"timestamp": "2026-01-08T06:33:20.711Z",
"message": "Success",
"data": {
"id": "1533d1e1-b367-4b1e-bd45-bec6d1939149",
"tenantId": "7991d6c1-8488-406e-acf6-f07e7d1399e8",
"positionId": "10000",
"positionName": "Senior Developer",
"isSCIMProvisioned": false,
"status": "ACTIVE",
"isDeleted": false,
"createdOn": "2025-01-13T12:34:59.300Z",
"updatedOn": "2025-01-13T12:34:59.300Z",
"groups": [
{
"groupName": "Engineering Team",
"displayName": "Engineering Team Display",
"groupTypeName": "Organizations",
"groupId": "9fbe4911-1eae-499e-9190-a447a7134fe7",
"groupTypeId": "a51e8d10-388f-4042-b8a8-578b7ace6992",
"parentId": 2,
"parentName": "Technology Division",
"createdAt": "2025-01-13T12:34:59.303Z",
"updatedAt": "2025-01-13T12:34:59.303Z"
}
],
"delegationsReceived": 1,
"delegationsIssued": 1,
"externalId": "EXT-POS-12345",
"instanceId": "db036aaa-14fe-454a-bc23-a722e4106925"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
Tenant ID
Example:
"33734ff7-af8d-4f2e-b531-b85b7b0873df"
Position name
Example:
"Senior Developer"
SCIMP provisioned flag
Example:
false
External ID
Maximum string length:
100Example:
"EXT-POS-12345"
Instance ID
Example:
"e2c40d51-b040-4168-b147-71532f8c6788"
Status
Available options:
ACTIVE, INACTIVE Group IDs
Example:
[
"6fee9957-d395-4494-8331-45f63b4333e9, 85172028-328a-4815-8a4f-564c725ed415"
]
Response
201 - application/json
Position created successfully
Was this page helpful?
āI