Upsert a registry organization
Creates or updates the public registry organization for a domain (one per domain).
POST
/api/v1/admin/registry/organizationsAdminAuthentication
Authorization: Bearer sa_… from a System Atlas admin. Any other key gets 403. Counts against the upload rate limit.
Parameters
Body
- websitestringrequired
Its website; the domain identifies it (one record per domain)
min 3 charsmax 300 chars - namestringrequiredmin 1 charmax 200 chars
- industrystringoptional
Taxonomy node key (list_industries / registry_upsert_taxonomy)
min 1 charmax 80 charspattern ^[a-z0-9_]+$ - regionstringoptionalmax 120 chars
- sizeBandstringoptional
Headcount band, e.g. 11-50
max 40 chars - businessModelenumoptionalprojectserviceproductsubscriptionmarketplacestaffingagency_franchisedistributionlicensingasset
- kindstringoptional
Organization kind (company, government agency, nonprofit…); not stored yet
max 60 chars - summarystringoptional
One paragraph shown at the top of the public profile
max 2000 chars
Request
curl -X POST "https://systematlas.org/api/v1/admin/registry/organizations" \
-H "Authorization: Bearer sa_…" \
-H "content-type: application/json" \
-d '{"website":"https://www.acmebuilders.example","name":"Acme Builders","industry":"construction","region":"Texas, US","sizeBand":"51-200","summary":"A general contractor building mid-size commercial projects."}'Response
200 (201 when the organization is new.) with the result in data (abbreviated here). Errors are listed in Errors and limits.
Response
{
"data": {
"created": true,
"organization": {
"domain": "acmebuilders.example",
"name": "Acme Builders",
"ref": "acme-builders-3f2a9c1d",
"profile": "/registry/acme-builders-3f2a9c1d"
},
"industry": {
"key": "construction",
"name": "Construction"
},
"schemaVersion": 3
}
}Over MCP
The same call as an MCP tool: registry_upsert_organization.