Skip to main content
Leads

Create or update a lead

Creates a new lead or updates an existing one based on the provided information.

POST
/leads

Upsert Logic:

  1. If id is provided, updates the lead with that ID
  2. If no id but phone/email provided, searches for existing lead by phone first, then email
  3. If no existing lead found, creates a new lead

Response Status:

  • 201 Created for new leads
  • 200 OK for updated leads

Tags are merged (not replaced) when updating.

x-api-keystringheaderrequired

Company API key in the format: rotor_{keyId}_{keySecret}

To obtain an API key:

  1. Log into your Rotor dashboard
  2. Go to Settings → Integrations → API Keys
  3. Create a new key and select the scopes you need
  4. Copy the key — it's only shown once!
rotor-api-versionenum<string>headerdefault:1.1.0required

Required OpenAPI version header.

Available options: 1.1.0
Example: 1.1.0

Body

application/json
address_citystring
Maximum string length: 100
address_countrystring
Maximum string length: 100
address_statestring
Maximum string length: 100
address_street1string
Maximum string length: 255
address_street2string
Maximum string length: 255
address_zipstring
Maximum string length: 20
emailstring
Maximum string length: 255
follow_up_datestring
idstring

Optional — provide to update an existing lead

namestring
Maximum string length: 255
notesstring
Maximum string length: 2000
phonestring
priorityenum<string>
Available options: low, medium, high
projected_valuenumber
Required range: 0 <= x <= 10000000
service_typestring
Maximum string length: 100
sourcestring
Maximum string length: 100
stagestring
Maximum string length: 100
tagsstring[]
Maximum array length: 20

Response

application/json

Lead updated successfully

address_citystring | null
address_countrystring | null
address_statestring | null
address_street1string | null

Maps to property_street1

address_street2string | null
address_zipstring | null
archivedboolean | null
archived_atstring | null
assigned_tostring | null
created_atstring | null
emailstring | null
follow_up_datestring | null
idstring
lead_sourcestring | null
locationnumber[] | null
messagestring
Example: Lead created successfully
namestring
notesstring | null
phonestring | null
priorityenum<string> | null
Available options: low, medium, high
projected_valuenumber | null
property_citystring | null
property_countrystring | null
property_statestring | null
property_street1string | null
property_street2string | null
property_zipstring | null
service_typestring | null
sourcestring | null
stagestring | null

Pipeline stage

statusstring
Example: success
tagsstring[]
value_scorenumber | nulldeprecated