Update a badge assignment
curl --request PATCH \
--url https://app.orgo.space/api/v1/badge_users/{id} \
--header 'Api-Token: <api-key>' \
--header 'Content-Type: application/merge-patch+json' \
--data '
{
"dateCreated": "2026-01-15T10:30:00+00:00",
"commentUser": "Confirmed by phone — will arrive at 10am.",
"commentMaster": "Confirmed by phone — will arrive at 10am.",
"status": 42
}
'import requests
url = "https://app.orgo.space/api/v1/badge_users/{id}"
payload = {
"dateCreated": "2026-01-15T10:30:00+00:00",
"commentUser": "Confirmed by phone — will arrive at 10am.",
"commentMaster": "Confirmed by phone — will arrive at 10am.",
"status": 42
}
headers = {
"Api-Token": "<api-key>",
"Content-Type": "application/merge-patch+json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'Api-Token': '<api-key>', 'Content-Type': 'application/merge-patch+json'},
body: JSON.stringify({
dateCreated: '2026-01-15T10:30:00+00:00',
commentUser: 'Confirmed by phone — will arrive at 10am.',
commentMaster: 'Confirmed by phone — will arrive at 10am.',
status: 42
})
};
fetch('https://app.orgo.space/api/v1/badge_users/{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://app.orgo.space/api/v1/badge_users/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'dateCreated' => '2026-01-15T10:30:00+00:00',
'commentUser' => 'Confirmed by phone — will arrive at 10am.',
'commentMaster' => 'Confirmed by phone — will arrive at 10am.',
'status' => 42
]),
CURLOPT_HTTPHEADER => [
"Api-Token: <api-key>",
"Content-Type: application/merge-patch+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://app.orgo.space/api/v1/badge_users/{id}"
payload := strings.NewReader("{\n \"dateCreated\": \"2026-01-15T10:30:00+00:00\",\n \"commentUser\": \"Confirmed by phone — will arrive at 10am.\",\n \"commentMaster\": \"Confirmed by phone — will arrive at 10am.\",\n \"status\": 42\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Api-Token", "<api-key>")
req.Header.Add("Content-Type", "application/merge-patch+json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://app.orgo.space/api/v1/badge_users/{id}")
.header("Api-Token", "<api-key>")
.header("Content-Type", "application/merge-patch+json")
.body("{\n \"dateCreated\": \"2026-01-15T10:30:00+00:00\",\n \"commentUser\": \"Confirmed by phone — will arrive at 10am.\",\n \"commentMaster\": \"Confirmed by phone — will arrive at 10am.\",\n \"status\": 42\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.orgo.space/api/v1/badge_users/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Api-Token"] = '<api-key>'
request["Content-Type"] = 'application/merge-patch+json'
request.body = "{\n \"dateCreated\": \"2026-01-15T10:30:00+00:00\",\n \"commentUser\": \"Confirmed by phone — will arrive at 10am.\",\n \"commentMaster\": \"Confirmed by phone — will arrive at 10am.\",\n \"status\": 42\n}"
response = http.request(request)
puts response.read_body{
"id": 42,
"badge": {
"id": 42,
"name": "Boston Chapter",
"type": {
"id": 42,
"name": "Boston Chapter"
},
"translation": "string",
"logo": "https://cdn.orgo.space/tenants/acme/logo.png",
"referrals": 42,
"kind": "STANDARD",
"userType": {
"id": 42,
"name": "Boston Chapter"
},
"steps": [
{
"id": 42,
"position": 42,
"title": "Volunteer Coordinator",
"description": "Quarterly chapter meeting open to all members.",
"translation": "string",
"isOptional": true,
"isArchived": false
}
]
},
"user": {
"id": 42,
"firstName": "James",
"lastName": "Patterson",
"localCenter": {
"alias": "string",
"id": 42,
"name": "Boston Chapter"
},
"localCenterParent": "/api/v1/units/1",
"fullName": "James Patterson",
"logo": "https://cdn.orgo.space/tenants/acme/logo.png"
},
"dateCreated": "2026-01-15T10:30:00+00:00",
"commentUser": "Confirmed by phone — will arrive at 10am.",
"commentMaster": "Confirmed by phone — will arrive at 10am.",
"status": 42,
"owner": {
"id": 42,
"firstName": "James",
"lastName": "Patterson",
"localCenter": {
"alias": "string",
"id": 42,
"name": "Boston Chapter"
},
"localCenterParent": "/api/v1/units/1",
"fullName": "James Patterson",
"logo": "https://cdn.orgo.space/tenants/acme/logo.png"
},
"pointsAtAward": 42,
"badgeUserSteps": [
{
"id": 42,
"step": {
"id": 42,
"position": 42,
"title": "Volunteer Coordinator",
"description": "Quarterly chapter meeting open to all members.",
"translation": "string",
"isOptional": true,
"isArchived": false
},
"status": 42,
"note": "Joined via Boston outreach drive.",
"updatedBy": {
"id": 42,
"firstName": "James",
"lastName": "Patterson",
"localCenter": "/api/v1/local_centers/1",
"localCenterParent": "/api/v1/units/1",
"fullName": "James Patterson",
"logo": "https://cdn.orgo.space/tenants/acme/logo.png"
},
"dateCreated": "2026-01-15T10:30:00+00:00",
"dateUpdated": "2026-01-15T10:30:00+00:00"
}
],
"stepsProgress": [
"string"
]
}BadgeUser
Update a badge assignment
Updates properties of an existing badge assignment. Requires HR_ASSISTANT_LOCAL permission on the target user, or HR_ASSISTANT_TENANT permission. The assignment owner can also edit their own assignments.
PATCH
/
api
/
v1
/
badge_users
/
{id}
Update a badge assignment
curl --request PATCH \
--url https://app.orgo.space/api/v1/badge_users/{id} \
--header 'Api-Token: <api-key>' \
--header 'Content-Type: application/merge-patch+json' \
--data '
{
"dateCreated": "2026-01-15T10:30:00+00:00",
"commentUser": "Confirmed by phone — will arrive at 10am.",
"commentMaster": "Confirmed by phone — will arrive at 10am.",
"status": 42
}
'import requests
url = "https://app.orgo.space/api/v1/badge_users/{id}"
payload = {
"dateCreated": "2026-01-15T10:30:00+00:00",
"commentUser": "Confirmed by phone — will arrive at 10am.",
"commentMaster": "Confirmed by phone — will arrive at 10am.",
"status": 42
}
headers = {
"Api-Token": "<api-key>",
"Content-Type": "application/merge-patch+json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'Api-Token': '<api-key>', 'Content-Type': 'application/merge-patch+json'},
body: JSON.stringify({
dateCreated: '2026-01-15T10:30:00+00:00',
commentUser: 'Confirmed by phone — will arrive at 10am.',
commentMaster: 'Confirmed by phone — will arrive at 10am.',
status: 42
})
};
fetch('https://app.orgo.space/api/v1/badge_users/{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://app.orgo.space/api/v1/badge_users/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'dateCreated' => '2026-01-15T10:30:00+00:00',
'commentUser' => 'Confirmed by phone — will arrive at 10am.',
'commentMaster' => 'Confirmed by phone — will arrive at 10am.',
'status' => 42
]),
CURLOPT_HTTPHEADER => [
"Api-Token: <api-key>",
"Content-Type: application/merge-patch+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://app.orgo.space/api/v1/badge_users/{id}"
payload := strings.NewReader("{\n \"dateCreated\": \"2026-01-15T10:30:00+00:00\",\n \"commentUser\": \"Confirmed by phone — will arrive at 10am.\",\n \"commentMaster\": \"Confirmed by phone — will arrive at 10am.\",\n \"status\": 42\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Api-Token", "<api-key>")
req.Header.Add("Content-Type", "application/merge-patch+json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://app.orgo.space/api/v1/badge_users/{id}")
.header("Api-Token", "<api-key>")
.header("Content-Type", "application/merge-patch+json")
.body("{\n \"dateCreated\": \"2026-01-15T10:30:00+00:00\",\n \"commentUser\": \"Confirmed by phone — will arrive at 10am.\",\n \"commentMaster\": \"Confirmed by phone — will arrive at 10am.\",\n \"status\": 42\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.orgo.space/api/v1/badge_users/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Api-Token"] = '<api-key>'
request["Content-Type"] = 'application/merge-patch+json'
request.body = "{\n \"dateCreated\": \"2026-01-15T10:30:00+00:00\",\n \"commentUser\": \"Confirmed by phone — will arrive at 10am.\",\n \"commentMaster\": \"Confirmed by phone — will arrive at 10am.\",\n \"status\": 42\n}"
response = http.request(request)
puts response.read_body{
"id": 42,
"badge": {
"id": 42,
"name": "Boston Chapter",
"type": {
"id": 42,
"name": "Boston Chapter"
},
"translation": "string",
"logo": "https://cdn.orgo.space/tenants/acme/logo.png",
"referrals": 42,
"kind": "STANDARD",
"userType": {
"id": 42,
"name": "Boston Chapter"
},
"steps": [
{
"id": 42,
"position": 42,
"title": "Volunteer Coordinator",
"description": "Quarterly chapter meeting open to all members.",
"translation": "string",
"isOptional": true,
"isArchived": false
}
]
},
"user": {
"id": 42,
"firstName": "James",
"lastName": "Patterson",
"localCenter": {
"alias": "string",
"id": 42,
"name": "Boston Chapter"
},
"localCenterParent": "/api/v1/units/1",
"fullName": "James Patterson",
"logo": "https://cdn.orgo.space/tenants/acme/logo.png"
},
"dateCreated": "2026-01-15T10:30:00+00:00",
"commentUser": "Confirmed by phone — will arrive at 10am.",
"commentMaster": "Confirmed by phone — will arrive at 10am.",
"status": 42,
"owner": {
"id": 42,
"firstName": "James",
"lastName": "Patterson",
"localCenter": {
"alias": "string",
"id": 42,
"name": "Boston Chapter"
},
"localCenterParent": "/api/v1/units/1",
"fullName": "James Patterson",
"logo": "https://cdn.orgo.space/tenants/acme/logo.png"
},
"pointsAtAward": 42,
"badgeUserSteps": [
{
"id": 42,
"step": {
"id": 42,
"position": 42,
"title": "Volunteer Coordinator",
"description": "Quarterly chapter meeting open to all members.",
"translation": "string",
"isOptional": true,
"isArchived": false
},
"status": 42,
"note": "Joined via Boston outreach drive.",
"updatedBy": {
"id": 42,
"firstName": "James",
"lastName": "Patterson",
"localCenter": "/api/v1/local_centers/1",
"localCenterParent": "/api/v1/units/1",
"fullName": "James Patterson",
"logo": "https://cdn.orgo.space/tenants/acme/logo.png"
},
"dateCreated": "2026-01-15T10:30:00+00:00",
"dateUpdated": "2026-01-15T10:30:00+00:00"
}
],
"stepsProgress": [
"string"
]
}Authorizations
ApiTokenJWT
Server-to-server authentication. Generate a token in the admin UI at
Settings → Developers → API Access. Send the raw token in the
Api-Token header — there is no Bearer prefix.
Tokens can be marked read-only at creation time, in which case the API
rejects any non-GET request with 403 Forbidden.
Path Parameters
BadgeUser identifier
Body
application/merge-patch+json
The updated BadgeUser resource
Response
BadgeUser resource updated
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes

