Skip to content

Assign Company Owner

POST
/companies/assign-owner

Set the owner on EVERY company matching a selection.

The selection is resolved server-side, so the number of companies affected is not bounded by anything in the request. A null owner_id UNASSIGNS them all.

Authorizations

Parameters

Header Parameters

X-Target-Org-Id
Any of:
string

Request Body required

Set the owner on every record matching a selection.

A null owner_id UNASSIGNS the matching records rather than leaving them alone, so an omitted owner is a destructive instruction, not a no-op.

object
filterModel

Per-column filters.

object
key
additional properties
any
list_id
Any of:
integer
owner_id
Any of:
string
segmentFilter
Any of:

An AND/OR group of leaves and nested groups, at most three groups deep.

Mirrors SegmentFilterGroup in contacts.domain.value_objects.ag_grid_models. op is closed because the app REFUSES an unrecognised connector rather than defaulting to AND - defaulting would silently return a different result set, and on a destructive route that is a different set of records acted on.

FIXED DEPTH, NOT RECURSIVE. The app’s model is self-referencing; the published one deliberately is not, because a schema that reaches itself through $ref sends the docs renderer into unbounded recursion. Three group levels (this one, SegmentFilterSubgroup, SegmentFilterInnerGroup) cover every filter the app’s own builder produces; the app’s larger depth and leaf budget still applies and surfaces as a 422.

object
children

Nested groups and/or leaf conditions.

Array
Any of:

The second group level: leaves and/or innermost groups.

object
children

Innermost groups and/or leaf conditions.

Array
Any of:

The third and deepest group level: leaf conditions only.

object
children

Leaf conditions.

Array<object>

One field-level condition inside an advanced-filter tree.

Mirrors contacts.domain.value_objects.ag_grid_models.SegmentFilterLeaf. op is CLOSED here: the app compiles its UI vocabulary down to this canonical set before sending, and an unrecognised operator reaching the SQL builder is a 500 rather than a refusal naming the valid operators.

object
field
required

Column to test, e.g. CONTACT_JOB_TITLE.

string
op
required

Comparison to apply.

string
Allowed values: eq neq lt lte gt gte contains icontains starts_with ends_with in not_in between is_null is_not_null
value
Any of:
valueTo
Any of:
op
required

Connector for this group. Case-insensitive.

string
Allowed values: AND OR and or
op
required

Connector for this group. Case-insensitive.

string
Allowed values: AND OR and or
op
required

Connector for this group. Case-insensitive.

string
Allowed values: AND OR and or

Responses

200

Successful Response

object
data
required

An open envelope for one record, one dashboard or one job receipt.

Open because most of these reads are COMPUTED shapes - an engagement summary, a next-best-step, an intelligence status - that grow with the product, and dropping a field from an advisory read makes it say “nothing to report” rather than “we did not tell you”.

object
key
additional properties
any
pagination
Any of:
object
has_next
required

Whether there are more pages

boolean
limit
required

Items per page

integer
next_cursor
Any of:
string
notes
Any of:
Array<string>
page
required

Current page number (1-indexed)

integer
total
required

Total number of items

integer
total_available
Any of:
integer
total_is_lower_bound
Any of:
boolean

422

Validation Error

object
detail
Array<object>
object
loc
required
Array
msg
required
string
type
required
string