Skip to main content
POST
/
v1
/
orgs
Create (or upsert) an org
curl --request POST \
  --url http://localhost:3000/v1/orgs \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "org_id": "<string>",
  "name": "<string>",
  "timezone": "<string>",
  "industry": "<string>",
  "default_environment": "<string>",
  "default_sales_motion": "<string>",
  "default_recording_type": "<string>",
  "pii_policy": {
    "retain_transcript_days": 1,
    "retain_analysis_days": 1,
    "redact_fields": [
      "<string>"
    ]
  },
  "settings": {}
}
'

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
org_id
string
required

Opaque identifier from your system. Treat this like a foreign key — pass a stable ID (Salesforce User ID, HubSpot Owner ID, your internal UUID), not a display name. Display names ("alex", "brooke") work but cause real problems: collisions between people with the same first name, history loss on rename, no clean migration if employment changes. Once you set this for a rep or org, treat it as immutable. Charset: [A-Za-z0-9._:-], 1-256 chars.

Required string length: 1 - 256
Pattern: ^[A-Za-z0-9._:-]+$
name
string
Maximum string length: 200
timezone
string
Maximum string length: 64
industry
string
default_environment
string
default_sales_motion
string
default_recording_type
string
pii_policy
object
settings
object

Response

200

Default Response