curl -X POST https://acme.orgo.space/api/v1/companies \
-H "Api-Token: $ORGO_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Civic Collective LLC",
"vatNumber": "US123456789",
"email": "ops@example.com"
}'await fetch("https://acme.orgo.space/api/v1/companies", {
method: "POST",
headers: {
"Api-Token": process.env.ORGO_API_TOKEN,
"Content-Type": "application/json",
},
body: JSON.stringify({
name: "Civic Collective LLC",
vatNumber: "US123456789",
email: "ops@example.com",
}),
});
$client->post('/api/v1/companies', [
'headers' => ['Api-Token' => getenv('ORGO_API_TOKEN')],
'json' => [
'name' => 'Civic Collective LLC',
'vatNumber' => 'US123456789',
'email' => 'ops@example.com',
],
]);
import requests
url = "https://app.orgo.space/api/v1/companies"
payload = {
"name": "Civic Collective LLC",
"companyName": "Civic Collective LLC",
"vatNumber": "US123456789",
"address": "123 Beacon Street, Boston, MA 02108",
"phone": "+1 617 555 0177",
"email": "ops@example.com"
}
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/companies"
payload := strings.NewReader("{\n \"name\": \"Civic Collective LLC\",\n \"companyName\": \"Civic Collective LLC\",\n \"vatNumber\": \"US123456789\",\n \"address\": \"123 Beacon Street, Boston, MA 02108\",\n \"phone\": \"+1 617 555 0177\",\n \"email\": \"ops@example.com\"\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/companies")
.header("Api-Token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Civic Collective LLC\",\n \"companyName\": \"Civic Collective LLC\",\n \"vatNumber\": \"US123456789\",\n \"address\": \"123 Beacon Street, Boston, MA 02108\",\n \"phone\": \"+1 617 555 0177\",\n \"email\": \"ops@example.com\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.orgo.space/api/v1/companies")
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\": \"Civic Collective LLC\",\n \"companyName\": \"Civic Collective LLC\",\n \"vatNumber\": \"US123456789\",\n \"address\": \"123 Beacon Street, Boston, MA 02108\",\n \"phone\": \"+1 617 555 0177\",\n \"email\": \"ops@example.com\"\n}"
response = http.request(request)
puts response.read_body{
"id": 88,
"uuid": "01938d8e-c2f4-7c2a-b8e1-3f7a9b8c4f88",
"name": "Civic Collective LLC",
"status": "NEW",
"vatNumber": "US123456789",
"address": "123 Beacon Street, Boston, MA 02108",
"phone": "+1 617 555 0177",
"email": "ops@example.com",
"primaryContact": {
"id": 42,
"fullName": "James Patterson"
},
"memberCount": 1,
"dateCreated": "2026-01-15T10:30:00+00:00"
}Create a company
Creates a new company and adds the current user as primary contact. Requires the company feature to be enabled on the tenant. Tenant settings control whether all users or only admins can create companies. Non-admin users cannot create a company if they already belong to one.
curl -X POST https://acme.orgo.space/api/v1/companies \
-H "Api-Token: $ORGO_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Civic Collective LLC",
"vatNumber": "US123456789",
"email": "ops@example.com"
}'await fetch("https://acme.orgo.space/api/v1/companies", {
method: "POST",
headers: {
"Api-Token": process.env.ORGO_API_TOKEN,
"Content-Type": "application/json",
},
body: JSON.stringify({
name: "Civic Collective LLC",
vatNumber: "US123456789",
email: "ops@example.com",
}),
});
$client->post('/api/v1/companies', [
'headers' => ['Api-Token' => getenv('ORGO_API_TOKEN')],
'json' => [
'name' => 'Civic Collective LLC',
'vatNumber' => 'US123456789',
'email' => 'ops@example.com',
],
]);
import requests
url = "https://app.orgo.space/api/v1/companies"
payload = {
"name": "Civic Collective LLC",
"companyName": "Civic Collective LLC",
"vatNumber": "US123456789",
"address": "123 Beacon Street, Boston, MA 02108",
"phone": "+1 617 555 0177",
"email": "ops@example.com"
}
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/companies"
payload := strings.NewReader("{\n \"name\": \"Civic Collective LLC\",\n \"companyName\": \"Civic Collective LLC\",\n \"vatNumber\": \"US123456789\",\n \"address\": \"123 Beacon Street, Boston, MA 02108\",\n \"phone\": \"+1 617 555 0177\",\n \"email\": \"ops@example.com\"\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/companies")
.header("Api-Token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Civic Collective LLC\",\n \"companyName\": \"Civic Collective LLC\",\n \"vatNumber\": \"US123456789\",\n \"address\": \"123 Beacon Street, Boston, MA 02108\",\n \"phone\": \"+1 617 555 0177\",\n \"email\": \"ops@example.com\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.orgo.space/api/v1/companies")
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\": \"Civic Collective LLC\",\n \"companyName\": \"Civic Collective LLC\",\n \"vatNumber\": \"US123456789\",\n \"address\": \"123 Beacon Street, Boston, MA 02108\",\n \"phone\": \"+1 617 555 0177\",\n \"email\": \"ops@example.com\"\n}"
response = http.request(request)
puts response.read_body{
"id": 88,
"uuid": "01938d8e-c2f4-7c2a-b8e1-3f7a9b8c4f88",
"name": "Civic Collective LLC",
"status": "NEW",
"vatNumber": "US123456789",
"address": "123 Beacon Street, Boston, MA 02108",
"phone": "+1 617 555 0177",
"email": "ops@example.com",
"primaryContact": {
"id": 42,
"fullName": "James Patterson"
},
"memberCount": 1,
"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 Company resource
255"/api/v1/towns/1"
"/api/v1/countries/1"
"/api/v1/product_prices/1"
Response
Company resource created
255"/api/v1/tenants/1"
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes

