curl -X POST https://acme.orgo.space/api/v1/events \
-H "Api-Token: $ORGO_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Annual General Meeting 2026",
"dateTimeBegin": "2026-03-15T18:00:00+00:00",
"dateTimeEnd": "2026-03-15T21:00:00+00:00",
"timezone": "America/New_York",
"location": "Boston Public Library, Boston MA",
"unit": "/api/v1/units/4",
"isPublic": true,
"maxCapacity": 200
}'
const res = await fetch("https://acme.orgo.space/api/v1/events", {
method: "POST",
headers: {
"Api-Token": process.env.ORGO_API_TOKEN,
"Content-Type": "application/json",
},
body: JSON.stringify({
name: "Annual General Meeting 2026",
dateTimeBegin: "2026-03-15T18:00:00+00:00",
dateTimeEnd: "2026-03-15T21:00:00+00:00",
timezone: "America/New_York",
location: "Boston Public Library, Boston MA",
unit: "/api/v1/units/4",
isPublic: true,
maxCapacity: 200,
}),
});
const event = await res.json();
$response = $client->post('/api/v1/events', [
'headers' => ['Api-Token' => getenv('ORGO_API_TOKEN')],
'json' => [
'name' => 'Annual General Meeting 2026',
'dateTimeBegin' => '2026-03-15T18:00:00+00:00',
'dateTimeEnd' => '2026-03-15T21:00:00+00:00',
'timezone' => 'America/New_York',
'location' => 'Boston Public Library, Boston MA',
'unit' => '/api/v1/units/4',
'isPublic' => true,
'maxCapacity' => 200,
],
]);
import requests
url = "https://app.orgo.space/api/v1/events"
payload = {
"name": "Annual General Meeting 2026",
"description": "Quarterly chapter meeting open to all members. Working-group breakouts and an open Q&A with the board.",
"dateTimeBegin": "2026-03-15T18:00:00+00:00",
"dateTimeEnd": "2026-03-15T21:00:00+00:00",
"timezone": "America/New_York",
"location": "Boston Public Library, 700 Boylston St, Boston, MA 02116",
"placeLatitude": 42.3492,
"placeLongitude": -71.0786,
"unit": "/api/v1/units/4",
"isPublic": True,
"maxCapacity": 200,
"hasEventTicketing": True,
"requiresRegistrationForm": True,
"sendAttendanceReminder": True,
"sendOneHourReminder": True,
"status": "DRAFT"
}
headers = {
"Api-Token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.orgo.space/api/v1/events"
payload := strings.NewReader("{\n \"name\": \"Annual General Meeting 2026\",\n \"description\": \"Quarterly chapter meeting open to all members. Working-group breakouts and an open Q&A with the board.\",\n \"dateTimeBegin\": \"2026-03-15T18:00:00+00:00\",\n \"dateTimeEnd\": \"2026-03-15T21:00:00+00:00\",\n \"timezone\": \"America/New_York\",\n \"location\": \"Boston Public Library, 700 Boylston St, Boston, MA 02116\",\n \"placeLatitude\": 42.3492,\n \"placeLongitude\": -71.0786,\n \"unit\": \"/api/v1/units/4\",\n \"isPublic\": true,\n \"maxCapacity\": 200,\n \"hasEventTicketing\": true,\n \"requiresRegistrationForm\": true,\n \"sendAttendanceReminder\": true,\n \"sendOneHourReminder\": true,\n \"status\": \"DRAFT\"\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/events")
.header("Api-Token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Annual General Meeting 2026\",\n \"description\": \"Quarterly chapter meeting open to all members. Working-group breakouts and an open Q&A with the board.\",\n \"dateTimeBegin\": \"2026-03-15T18:00:00+00:00\",\n \"dateTimeEnd\": \"2026-03-15T21:00:00+00:00\",\n \"timezone\": \"America/New_York\",\n \"location\": \"Boston Public Library, 700 Boylston St, Boston, MA 02116\",\n \"placeLatitude\": 42.3492,\n \"placeLongitude\": -71.0786,\n \"unit\": \"/api/v1/units/4\",\n \"isPublic\": true,\n \"maxCapacity\": 200,\n \"hasEventTicketing\": true,\n \"requiresRegistrationForm\": true,\n \"sendAttendanceReminder\": true,\n \"sendOneHourReminder\": true,\n \"status\": \"DRAFT\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.orgo.space/api/v1/events")
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 \"name\": \"Annual General Meeting 2026\",\n \"description\": \"Quarterly chapter meeting open to all members. Working-group breakouts and an open Q&A with the board.\",\n \"dateTimeBegin\": \"2026-03-15T18:00:00+00:00\",\n \"dateTimeEnd\": \"2026-03-15T21:00:00+00:00\",\n \"timezone\": \"America/New_York\",\n \"location\": \"Boston Public Library, 700 Boylston St, Boston, MA 02116\",\n \"placeLatitude\": 42.3492,\n \"placeLongitude\": -71.0786,\n \"unit\": \"/api/v1/units/4\",\n \"isPublic\": true,\n \"maxCapacity\": 200,\n \"hasEventTicketing\": true,\n \"requiresRegistrationForm\": true,\n \"sendAttendanceReminder\": true,\n \"sendOneHourReminder\": true,\n \"status\": \"DRAFT\"\n}"
response = http.request(request)
puts response.read_body{
"id": 12,
"uuid": "01938d8e-9c4f-7c2a-b8e1-3f7a9b8c4f12",
"name": "Annual General Meeting 2026",
"description": "Quarterly chapter meeting open to all members. Working-group breakouts and an open Q&A with the board.",
"slug": "annual-general-meeting-2026",
"status": "DRAFT",
"dateTimeBegin": "2026-03-15T18:00:00+00:00",
"dateTimeEnd": "2026-03-15T21:00:00+00:00",
"timezone": "America/New_York",
"location": "Boston Public Library, 700 Boylston St, Boston, MA 02116",
"isPublic": true,
"maxCapacity": 200,
"hasEventTicketing": true,
"unit": {
"id": 4,
"name": "Boston"
},
"dateCreated": "2026-01-15T10:30:00+00:00"
}Create an event
Creates a new event in draft status. Automatically sets the current user as owner and assigns tenant. If ticketing is enabled, a linked Stripe product is created. Supports propagation to all local centers via the propagateToLocalCenters flag. Non-financial users cannot enable ticketing or public visibility.
curl -X POST https://acme.orgo.space/api/v1/events \
-H "Api-Token: $ORGO_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Annual General Meeting 2026",
"dateTimeBegin": "2026-03-15T18:00:00+00:00",
"dateTimeEnd": "2026-03-15T21:00:00+00:00",
"timezone": "America/New_York",
"location": "Boston Public Library, Boston MA",
"unit": "/api/v1/units/4",
"isPublic": true,
"maxCapacity": 200
}'
const res = await fetch("https://acme.orgo.space/api/v1/events", {
method: "POST",
headers: {
"Api-Token": process.env.ORGO_API_TOKEN,
"Content-Type": "application/json",
},
body: JSON.stringify({
name: "Annual General Meeting 2026",
dateTimeBegin: "2026-03-15T18:00:00+00:00",
dateTimeEnd: "2026-03-15T21:00:00+00:00",
timezone: "America/New_York",
location: "Boston Public Library, Boston MA",
unit: "/api/v1/units/4",
isPublic: true,
maxCapacity: 200,
}),
});
const event = await res.json();
$response = $client->post('/api/v1/events', [
'headers' => ['Api-Token' => getenv('ORGO_API_TOKEN')],
'json' => [
'name' => 'Annual General Meeting 2026',
'dateTimeBegin' => '2026-03-15T18:00:00+00:00',
'dateTimeEnd' => '2026-03-15T21:00:00+00:00',
'timezone' => 'America/New_York',
'location' => 'Boston Public Library, Boston MA',
'unit' => '/api/v1/units/4',
'isPublic' => true,
'maxCapacity' => 200,
],
]);
import requests
url = "https://app.orgo.space/api/v1/events"
payload = {
"name": "Annual General Meeting 2026",
"description": "Quarterly chapter meeting open to all members. Working-group breakouts and an open Q&A with the board.",
"dateTimeBegin": "2026-03-15T18:00:00+00:00",
"dateTimeEnd": "2026-03-15T21:00:00+00:00",
"timezone": "America/New_York",
"location": "Boston Public Library, 700 Boylston St, Boston, MA 02116",
"placeLatitude": 42.3492,
"placeLongitude": -71.0786,
"unit": "/api/v1/units/4",
"isPublic": True,
"maxCapacity": 200,
"hasEventTicketing": True,
"requiresRegistrationForm": True,
"sendAttendanceReminder": True,
"sendOneHourReminder": True,
"status": "DRAFT"
}
headers = {
"Api-Token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.orgo.space/api/v1/events"
payload := strings.NewReader("{\n \"name\": \"Annual General Meeting 2026\",\n \"description\": \"Quarterly chapter meeting open to all members. Working-group breakouts and an open Q&A with the board.\",\n \"dateTimeBegin\": \"2026-03-15T18:00:00+00:00\",\n \"dateTimeEnd\": \"2026-03-15T21:00:00+00:00\",\n \"timezone\": \"America/New_York\",\n \"location\": \"Boston Public Library, 700 Boylston St, Boston, MA 02116\",\n \"placeLatitude\": 42.3492,\n \"placeLongitude\": -71.0786,\n \"unit\": \"/api/v1/units/4\",\n \"isPublic\": true,\n \"maxCapacity\": 200,\n \"hasEventTicketing\": true,\n \"requiresRegistrationForm\": true,\n \"sendAttendanceReminder\": true,\n \"sendOneHourReminder\": true,\n \"status\": \"DRAFT\"\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/events")
.header("Api-Token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Annual General Meeting 2026\",\n \"description\": \"Quarterly chapter meeting open to all members. Working-group breakouts and an open Q&A with the board.\",\n \"dateTimeBegin\": \"2026-03-15T18:00:00+00:00\",\n \"dateTimeEnd\": \"2026-03-15T21:00:00+00:00\",\n \"timezone\": \"America/New_York\",\n \"location\": \"Boston Public Library, 700 Boylston St, Boston, MA 02116\",\n \"placeLatitude\": 42.3492,\n \"placeLongitude\": -71.0786,\n \"unit\": \"/api/v1/units/4\",\n \"isPublic\": true,\n \"maxCapacity\": 200,\n \"hasEventTicketing\": true,\n \"requiresRegistrationForm\": true,\n \"sendAttendanceReminder\": true,\n \"sendOneHourReminder\": true,\n \"status\": \"DRAFT\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.orgo.space/api/v1/events")
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 \"name\": \"Annual General Meeting 2026\",\n \"description\": \"Quarterly chapter meeting open to all members. Working-group breakouts and an open Q&A with the board.\",\n \"dateTimeBegin\": \"2026-03-15T18:00:00+00:00\",\n \"dateTimeEnd\": \"2026-03-15T21:00:00+00:00\",\n \"timezone\": \"America/New_York\",\n \"location\": \"Boston Public Library, 700 Boylston St, Boston, MA 02116\",\n \"placeLatitude\": 42.3492,\n \"placeLongitude\": -71.0786,\n \"unit\": \"/api/v1/units/4\",\n \"isPublic\": true,\n \"maxCapacity\": 200,\n \"hasEventTicketing\": true,\n \"requiresRegistrationForm\": true,\n \"sendAttendanceReminder\": true,\n \"sendOneHourReminder\": true,\n \"status\": \"DRAFT\"\n}"
response = http.request(request)
puts response.read_body{
"id": 12,
"uuid": "01938d8e-9c4f-7c2a-b8e1-3f7a9b8c4f12",
"name": "Annual General Meeting 2026",
"description": "Quarterly chapter meeting open to all members. Working-group breakouts and an open Q&A with the board.",
"slug": "annual-general-meeting-2026",
"status": "DRAFT",
"dateTimeBegin": "2026-03-15T18:00:00+00:00",
"dateTimeEnd": "2026-03-15T21:00:00+00:00",
"timezone": "America/New_York",
"location": "Boston Public Library, 700 Boylston St, Boston, MA 02116",
"isPublic": true,
"maxCapacity": 200,
"hasEventTicketing": true,
"unit": {
"id": 4,
"name": "Boston"
},
"dateCreated": "2026-01-15T10:30:00+00:00"
}Authorizations
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
The new Event resource
Show child attributes
Show child attributes
"/api/v1/units/1"
"/api/v1/products/1"
Show child attributes
Show child attributes
"/api/v1/event_statuses/1"
2000"/api/v1/roles/1"
Response
Event resource created
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
2000Show child attributes
Show child attributes

