curl --request POST \
--url https://api.abloatai.com/api/v1/models/role \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"data": {
"name": "<string>",
"permissions": "<unknown>",
"level": 123,
"description": "<string>",
"isDefault": false,
"isActive": true,
"metadata": "<string>"
},
"id": "<string>",
"claim": "<string>",
"readAt": 123
}
'import requests
url = "https://api.abloatai.com/api/v1/models/role"
payload = {
"data": {
"name": "<string>",
"permissions": "<unknown>",
"level": 123,
"description": "<string>",
"isDefault": False,
"isActive": True,
"metadata": "<string>"
},
"id": "<string>",
"claim": "<string>",
"readAt": 123
}
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({
data: {
name: '<string>',
permissions: '<unknown>',
level: 123,
description: '<string>',
isDefault: false,
isActive: true,
metadata: '<string>'
},
id: '<string>',
claim: '<string>',
readAt: 123
})
};
fetch('https://api.abloatai.com/api/v1/models/role', 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.abloatai.com/api/v1/models/role",
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([
'data' => [
'name' => '<string>',
'permissions' => '<unknown>',
'level' => 123,
'description' => '<string>',
'isDefault' => false,
'isActive' => true,
'metadata' => '<string>'
],
'id' => '<string>',
'claim' => '<string>',
'readAt' => 123
]),
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.abloatai.com/api/v1/models/role"
payload := strings.NewReader("{\n \"data\": {\n \"name\": \"<string>\",\n \"permissions\": \"<unknown>\",\n \"level\": 123,\n \"description\": \"<string>\",\n \"isDefault\": false,\n \"isActive\": true,\n \"metadata\": \"<string>\"\n },\n \"id\": \"<string>\",\n \"claim\": \"<string>\",\n \"readAt\": 123\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.abloatai.com/api/v1/models/role")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"data\": {\n \"name\": \"<string>\",\n \"permissions\": \"<unknown>\",\n \"level\": 123,\n \"description\": \"<string>\",\n \"isDefault\": false,\n \"isActive\": true,\n \"metadata\": \"<string>\"\n },\n \"id\": \"<string>\",\n \"claim\": \"<string>\",\n \"readAt\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.abloatai.com/api/v1/models/role")
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 \"data\": {\n \"name\": \"<string>\",\n \"permissions\": \"<unknown>\",\n \"level\": 123,\n \"description\": \"<string>\",\n \"isDefault\": false,\n \"isActive\": true,\n \"metadata\": \"<string>\"\n },\n \"id\": \"<string>\",\n \"claim\": \"<string>\",\n \"readAt\": 123\n}"
response = http.request(request)
puts response.read_body{
"object": "<string>",
"clientTxId": "<string>",
"serverTxId": "<string>",
"success": true,
"lastSyncId": 123,
"ops": 123,
"missingIds": [
"<string>"
],
"notifications": [
{
"object": "<string>",
"model": "<string>",
"id": "<string>",
"readAt": 123,
"observedSyncId": 123,
"conflictingFields": [
"<string>"
],
"currentValues": {},
"writtenBy": "<string>",
"group": "<string>"
}
],
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"requiredCapability": {
"can": "<string>",
"model": "<string>",
"syncGroup": "<string>"
}
}
}{
"type": "<string>",
"message": "<string>",
"code": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}{
"type": "<string>",
"message": "<string>",
"code": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}Create role
curl --request POST \
--url https://api.abloatai.com/api/v1/models/role \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"data": {
"name": "<string>",
"permissions": "<unknown>",
"level": 123,
"description": "<string>",
"isDefault": false,
"isActive": true,
"metadata": "<string>"
},
"id": "<string>",
"claim": "<string>",
"readAt": 123
}
'import requests
url = "https://api.abloatai.com/api/v1/models/role"
payload = {
"data": {
"name": "<string>",
"permissions": "<unknown>",
"level": 123,
"description": "<string>",
"isDefault": False,
"isActive": True,
"metadata": "<string>"
},
"id": "<string>",
"claim": "<string>",
"readAt": 123
}
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({
data: {
name: '<string>',
permissions: '<unknown>',
level: 123,
description: '<string>',
isDefault: false,
isActive: true,
metadata: '<string>'
},
id: '<string>',
claim: '<string>',
readAt: 123
})
};
fetch('https://api.abloatai.com/api/v1/models/role', 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.abloatai.com/api/v1/models/role",
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([
'data' => [
'name' => '<string>',
'permissions' => '<unknown>',
'level' => 123,
'description' => '<string>',
'isDefault' => false,
'isActive' => true,
'metadata' => '<string>'
],
'id' => '<string>',
'claim' => '<string>',
'readAt' => 123
]),
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.abloatai.com/api/v1/models/role"
payload := strings.NewReader("{\n \"data\": {\n \"name\": \"<string>\",\n \"permissions\": \"<unknown>\",\n \"level\": 123,\n \"description\": \"<string>\",\n \"isDefault\": false,\n \"isActive\": true,\n \"metadata\": \"<string>\"\n },\n \"id\": \"<string>\",\n \"claim\": \"<string>\",\n \"readAt\": 123\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.abloatai.com/api/v1/models/role")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"data\": {\n \"name\": \"<string>\",\n \"permissions\": \"<unknown>\",\n \"level\": 123,\n \"description\": \"<string>\",\n \"isDefault\": false,\n \"isActive\": true,\n \"metadata\": \"<string>\"\n },\n \"id\": \"<string>\",\n \"claim\": \"<string>\",\n \"readAt\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.abloatai.com/api/v1/models/role")
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 \"data\": {\n \"name\": \"<string>\",\n \"permissions\": \"<unknown>\",\n \"level\": 123,\n \"description\": \"<string>\",\n \"isDefault\": false,\n \"isActive\": true,\n \"metadata\": \"<string>\"\n },\n \"id\": \"<string>\",\n \"claim\": \"<string>\",\n \"readAt\": 123\n}"
response = http.request(request)
puts response.read_body{
"object": "<string>",
"clientTxId": "<string>",
"serverTxId": "<string>",
"success": true,
"lastSyncId": 123,
"ops": 123,
"missingIds": [
"<string>"
],
"notifications": [
{
"object": "<string>",
"model": "<string>",
"id": "<string>",
"readAt": 123,
"observedSyncId": 123,
"conflictingFields": [
"<string>"
],
"currentValues": {},
"writtenBy": "<string>",
"group": "<string>"
}
],
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"requiredCapability": {
"can": "<string>",
"model": "<string>",
"syncGroup": "<string>"
}
}
}{
"type": "<string>",
"message": "<string>",
"code": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}{
"type": "<string>",
"message": "<string>",
"code": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}Authorizations
API key (sk_live_…) or a scoped capability/ephemeral token. The same header carries both — the server discriminates by token shape.
Headers
Replay-safe identifier; derive it from the business event, not a random value. Same key + same body returns the same receipt.
Body
Field payload for role mutations. Send the full entity on create (its required fields must be present); send only changed fields on update.
Show child attributes
Show child attributes
Client-generated id. Reuse it when retrying this create.
Claim id this write is bound to.
Conflict policy (default reject).
reject, overwrite, notify, null Sync watermark the write was based on.
Response
Commit receipt.
"commit_receipt"confirmed, rejected Ids of any UPDATE/DELETE that matched zero rows (omitted when nothing missed).
Held-write advisories from onStale: "notify".
Show child attributes
Show child attributes
Show child attributes
Show child attributes