Custom Objects
User-defined entities and their records
List custom objects
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Query Parameters
pagestringlimitstringCustomObjectDefinitionViewList
Create custom object
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Request Body
application/jsonRequirednameFieldstringText field that labels records
fieldsarray<object>Header Parameters
Idempotency-KeystringUnique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.
255CustomObjectDefinition
Get stats
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Objects a lookup or master-detail field may point at
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
CustomObjectLookupTargets
Custom-object records that look up a standard record, grouped by object and field
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Path Parameters
entityTypeRequiredstringentityIdRequiredstringQuery Parameters
limitstringRecords per list (1–50, default 5)
CustomObjectRelatedLists
Get custom object
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Path Parameters
idRequiredstringCustomObjectDefinitionView
Update custom object
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Request Body
application/jsonRequirednameFieldstringPath Parameters
idRequiredstringHeader Parameters
Idempotency-KeystringUnique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.
255CustomObjectDefinition
Delete custom object
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Path Parameters
idRequiredstringDeletedRecordResponse
Add field
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Request Body
application/jsonRequirednamestringAPI name (derived from the label when omitted)
labelstringtypestringTEXT, TEXTAREA, NUMBER, CURRENCY, PERCENT, DATE, DATETIME, CHECKBOX, PICKLIST, MULTI_PICKLIST, EMAIL, PHONE, URL, LOOKUP, MASTER_DETAIL, FORMULA, ROLLUP_SUMMARY
descriptionstringrequiredbooleandefaultValueobjectoptionsarray<string>lookupTargetstringLOOKUP / MASTER_DETAIL target: LEAD, CONTACT, ACCOUNT, OPPORTUNITY, TASK, CASE or custom:
lookupObjectIdstringAlias of lookupTarget (custom object id or API name)
onDeletestringWhat deleting the target does: lookups CLEAR | RESTRICT, master-detail CASCADE | RESTRICT
"CLEAR" | "RESTRICT" | "CASCADE"controllingFieldstringDependent picklist: the controlling field name
dependentValuesobjectControlling value → allowed values of this picklist
trackHistorybooleanRecord field history for this field
formulaobjectFORMULA: { expression, returnType }
rollupobjectROLLUP_SUMMARY: { childObject, relationshipField, aggregate, aggregateField?, filters? }
Path Parameters
idRequiredstringHeader Parameters
Idempotency-KeystringUnique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.
255CustomObjectField
Update field
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Request Body
application/jsonRequirednamestringAPI name (derived from the label when omitted)
labelstringtypestringTEXT, TEXTAREA, NUMBER, CURRENCY, PERCENT, DATE, DATETIME, CHECKBOX, PICKLIST, MULTI_PICKLIST, EMAIL, PHONE, URL, LOOKUP, MASTER_DETAIL, FORMULA, ROLLUP_SUMMARY
descriptionstringrequiredbooleandefaultValueobjectoptionsarray<string>lookupTargetstringLOOKUP / MASTER_DETAIL target: LEAD, CONTACT, ACCOUNT, OPPORTUNITY, TASK, CASE or custom:
lookupObjectIdstringAlias of lookupTarget (custom object id or API name)
onDeletestringWhat deleting the target does: lookups CLEAR | RESTRICT, master-detail CASCADE | RESTRICT
"CLEAR" | "RESTRICT" | "CASCADE"controllingFieldstringDependent picklist: the controlling field name
dependentValuesobjectControlling value → allowed values of this picklist
trackHistorybooleanRecord field history for this field
formulaobjectFORMULA: { expression, returnType }
rollupobjectROLLUP_SUMMARY: { childObject, relationshipField, aggregate, aggregateField?, filters? }
Path Parameters
idRequiredstringfieldIdRequiredstringHeader Parameters
Idempotency-KeystringUnique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.
255CustomObjectField
Delete field
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Path Parameters
idRequiredstringfieldIdRequiredstringDeletedRecordResponse
Records, paged and sorted on the server. `filters` is JSON: `[{"field":"status","operator":"eq","value":"Open"}]` (operators: eq, neq, contains, not_contains, starts_with, gt, gte, lt, lte, between, in, not_in, is_empty, is_not_empty). `:id` is the object's id or API name.
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Path Parameters
idRequiredstringQuery Parameters
pagestringlimitstring1–200, default 50
sortBystringField API name, createdAt, updatedAt, ownerId or ownerName
sortOrderstring"asc" | "desc"searchstringMatches text and picklist fields
filtersstringJSON array of { field, operator, value }
ownerstring"me"idsstringComma-separated record ids
CustomObjectRecordPage
Create record
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Request Body
application/jsonRequireddataobjectPath Parameters
idRequiredstringHeader Parameters
Idempotency-KeystringUnique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.
255CustomObjectRecordView
Set one field on many records
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Request Body
application/jsonRequiredidsarray<string>Up to 200 record ids
fieldstringField API name to set
valueobjectNew value (null clears)
Path Parameters
idRequiredstringHeader Parameters
Idempotency-KeystringUnique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.
255CustomObjectBulkUpdateResult
One record; `:id` is the object's id or its API name.
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Path Parameters
idRequiredstringrecordIdRequiredstringCustomObjectRecordView
Update record
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Request Body
application/jsonRequireddataobjectPath Parameters
idRequiredstringrecordIdRequiredstringHeader Parameters
Idempotency-KeystringUnique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.
255CustomObjectRecordView
Delete record
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Path Parameters
idRequiredstringrecordIdRequiredstringDeletedRecordResponse
Records of other custom objects that look up this one, grouped by object and field
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Path Parameters
idRequiredstringrecordIdRequiredstringQuery Parameters
limitstringRecords per list (1–50, default 5)
CustomObjectRelatedLists