Create a resignation request
curl --request POST \
--url https://app.orgo.space/api/v1/resignation_requests \
--header 'Api-Token: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"user": "/api/v1/users/1",
"reason": "Looking to contribute to local civic projects.",
"conclusion": "string",
"promptToReinroll": "string",
"stayActive": true,
"resignationDate": "2026-01-15T10:30:00+00:00"
}
'import requests
url = "https://app.orgo.space/api/v1/resignation_requests"
payload = {
"user": "/api/v1/users/1",
"reason": "Looking to contribute to local civic projects.",
"conclusion": "string",
"promptToReinroll": "string",
"stayActive": True,
"resignationDate": "2026-01-15T10:30:00+00:00"
}
headers = {
"Api-Token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Api-Token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
user: '/api/v1/users/1',
reason: 'Looking to contribute to local civic projects.',
conclusion: 'string',
promptToReinroll: 'string',
stayActive: true,
resignationDate: '2026-01-15T10:30:00+00:00'
})
};
fetch('https://app.orgo.space/api/v1/resignation_requests', 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/resignation_requests",
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([
'user' => '/api/v1/users/1',
'reason' => 'Looking to contribute to local civic projects.',
'conclusion' => 'string',
'promptToReinroll' => 'string',
'stayActive' => true,
'resignationDate' => '2026-01-15T10:30:00+00:00'
]),
CURLOPT_HTTPHEADER => [
"Api-Token: <api-key>",
"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://app.orgo.space/api/v1/resignation_requests"
payload := strings.NewReader("{\n \"user\": \"/api/v1/users/1\",\n \"reason\": \"Looking to contribute to local civic projects.\",\n \"conclusion\": \"string\",\n \"promptToReinroll\": \"string\",\n \"stayActive\": true,\n \"resignationDate\": \"2026-01-15T10:30:00+00:00\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Api-Token", "<api-key>")
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://app.orgo.space/api/v1/resignation_requests")
.header("Api-Token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"user\": \"/api/v1/users/1\",\n \"reason\": \"Looking to contribute to local civic projects.\",\n \"conclusion\": \"string\",\n \"promptToReinroll\": \"string\",\n \"stayActive\": true,\n \"resignationDate\": \"2026-01-15T10:30:00+00:00\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.orgo.space/api/v1/resignation_requests")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Api-Token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"user\": \"/api/v1/users/1\",\n \"reason\": \"Looking to contribute to local civic projects.\",\n \"conclusion\": \"string\",\n \"promptToReinroll\": \"string\",\n \"stayActive\": true,\n \"resignationDate\": \"2026-01-15T10:30:00+00:00\"\n}"
response = http.request(request)
puts response.read_body{
"id": 42,
"user": {
"id": 42,
"localCenter": {
"id": 42,
"name": "Boston Chapter"
},
"fullName": "James Patterson"
},
"requestedBy": {
"id": 42,
"localCenter": {
"id": 42,
"name": "Boston Chapter"
},
"fullName": "James Patterson"
},
"reason": "Looking to contribute to local civic projects.",
"conclusion": "string",
"promptToReinroll": "string",
"stayActive": true,
"resignationDate": "2026-01-15T10:30:00+00:00",
"dateCreated": "2026-01-15T10:30:00+00:00",
"tenant": "/api/v1/tenants/1",
"status": "ACTIVE",
"approvedBy": {
"id": 42,
"localCenter": {
"id": 42,
"name": "Boston Chapter"
},
"fullName": "James Patterson"
}
}ResignationRequest
Create a resignation request
Creates a new resignation request with PENDING status. Sets the authenticated user as the requestedBy. If no target user is specified, the request is created for the authenticated user. Validates the request and sends a notification email to relevant administrators.
POST
/
api
/
v1
/
resignation_requests
Create a resignation request
curl --request POST \
--url https://app.orgo.space/api/v1/resignation_requests \
--header 'Api-Token: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"user": "/api/v1/users/1",
"reason": "Looking to contribute to local civic projects.",
"conclusion": "string",
"promptToReinroll": "string",
"stayActive": true,
"resignationDate": "2026-01-15T10:30:00+00:00"
}
'import requests
url = "https://app.orgo.space/api/v1/resignation_requests"
payload = {
"user": "/api/v1/users/1",
"reason": "Looking to contribute to local civic projects.",
"conclusion": "string",
"promptToReinroll": "string",
"stayActive": True,
"resignationDate": "2026-01-15T10:30:00+00:00"
}
headers = {
"Api-Token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Api-Token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
user: '/api/v1/users/1',
reason: 'Looking to contribute to local civic projects.',
conclusion: 'string',
promptToReinroll: 'string',
stayActive: true,
resignationDate: '2026-01-15T10:30:00+00:00'
})
};
fetch('https://app.orgo.space/api/v1/resignation_requests', 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/resignation_requests",
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([
'user' => '/api/v1/users/1',
'reason' => 'Looking to contribute to local civic projects.',
'conclusion' => 'string',
'promptToReinroll' => 'string',
'stayActive' => true,
'resignationDate' => '2026-01-15T10:30:00+00:00'
]),
CURLOPT_HTTPHEADER => [
"Api-Token: <api-key>",
"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://app.orgo.space/api/v1/resignation_requests"
payload := strings.NewReader("{\n \"user\": \"/api/v1/users/1\",\n \"reason\": \"Looking to contribute to local civic projects.\",\n \"conclusion\": \"string\",\n \"promptToReinroll\": \"string\",\n \"stayActive\": true,\n \"resignationDate\": \"2026-01-15T10:30:00+00:00\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Api-Token", "<api-key>")
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://app.orgo.space/api/v1/resignation_requests")
.header("Api-Token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"user\": \"/api/v1/users/1\",\n \"reason\": \"Looking to contribute to local civic projects.\",\n \"conclusion\": \"string\",\n \"promptToReinroll\": \"string\",\n \"stayActive\": true,\n \"resignationDate\": \"2026-01-15T10:30:00+00:00\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.orgo.space/api/v1/resignation_requests")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Api-Token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"user\": \"/api/v1/users/1\",\n \"reason\": \"Looking to contribute to local civic projects.\",\n \"conclusion\": \"string\",\n \"promptToReinroll\": \"string\",\n \"stayActive\": true,\n \"resignationDate\": \"2026-01-15T10:30:00+00:00\"\n}"
response = http.request(request)
puts response.read_body{
"id": 42,
"user": {
"id": 42,
"localCenter": {
"id": 42,
"name": "Boston Chapter"
},
"fullName": "James Patterson"
},
"requestedBy": {
"id": 42,
"localCenter": {
"id": 42,
"name": "Boston Chapter"
},
"fullName": "James Patterson"
},
"reason": "Looking to contribute to local civic projects.",
"conclusion": "string",
"promptToReinroll": "string",
"stayActive": true,
"resignationDate": "2026-01-15T10:30:00+00:00",
"dateCreated": "2026-01-15T10:30:00+00:00",
"tenant": "/api/v1/tenants/1",
"status": "ACTIVE",
"approvedBy": {
"id": 42,
"localCenter": {
"id": 42,
"name": "Boston Chapter"
},
"fullName": "James Patterson"
}
}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.
Body
application/json
The new ResignationRequest resource
Response
ResignationRequest resource created
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Example:
"/api/v1/tenants/1"
Show child attributes
Show child attributes
⌘I

