SalesOS

Custom Fields

Custom field definitions on standard objects

Get all custom field definitions

GET
/v1/custom-fields

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

entitystring
Value in: "LEAD" | "CONTACT" | "ACCOUNT" | "OPPORTUNITY" | "PRODUCT" | "QUOTE"
fieldTypestring
Value in: "TEXT" | "TEXTAREA" | "NUMBER" | "CURRENCY" | "DATE" | "DATETIME" | "CHECKBOX" | "PICKLIST" | "MULTI_PICKLIST" | "EMAIL" | "PHONE" | "URL" | "LOOKUP" | "FORMULA" | "ROLLUP_SUMMARY"
isActiveboolean
curl -X GET "https://api.salesos.org/v1/custom-fields?entity=LEAD&fieldType=TEXT&isActive=true" \
  -H "Authorization: Bearer <token>"

CustomFieldDefinitionViewArray

[
  {
    "id": "string",
    "organizationId": "string",
    "name": "string",
    "label": "string",
    "description": "string",
    "entity": "LEAD",
    "fieldType": "TEXT",
    "isRequired": true,
    "isUnique": true,
    "defaultValue": "string",
    "picklistValues": null,
    "lookupEntity": "LEAD",
    "lookupObject": "string",
    "lookupDeleteBehavior": "string",
    "controllingField": "string",
    "dependentValues": null,
    "trackHistory": true,
    "precision": 0,
    "minValue": 0,
    "maxValue": 0,
    "maxLength": 0,
    "pattern": "string",
    "formulaConfig": null,
    "rollupConfig": null,
    "sortOrder": 0,
    "isActive": true,
    "createdAt": "2019-08-24T14:15:22Z",
    "updatedAt": "2019-08-24T14:15:22Z",
    "createdBy": "string",
    "managedBy": {
      "installationId": "string",
      "componentId": "string",
      "appId": "string",
      "appName": "string",
      "appSlug": "string"
    }
  }
]

Create a new custom field definition

POST
/v1/custom-fields

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/jsonRequired
namestring

API name (auto-generated if not provided)

labelRequiredstring

Display label

descriptionstring

Field description

entityRequiredstring

Entity this field belongs to

Value in: "LEAD" | "CONTACT" | "ACCOUNT" | "OPPORTUNITY" | "PRODUCT" | "QUOTE"
fieldTypeRequiredstring

Field type

Value in: "TEXT" | "TEXTAREA" | "NUMBER" | "CURRENCY" | "DATE" | "DATETIME" | "CHECKBOX" | "PICKLIST" | "MULTI_PICKLIST" | "EMAIL" | "PHONE" | "URL" | "LOOKUP" | "FORMULA" | "ROLLUP_SUMMARY"
isRequiredboolean

Is field required

isUniqueboolean

Is field value unique

defaultValuestring

Default value

picklistValuesarray<object>

Picklist values for PICKLIST or MULTI_PICKLIST types

lookupEntitystring

Target entity for LOOKUP type

Value in: "LEAD" | "CONTACT" | "ACCOUNT" | "OPPORTUNITY" | "PRODUCT" | "QUOTE"
lookupObjectstring

LOOKUP to a custom object: custom: (lookupEntity stays empty)

Pattern: "^custom:[a-z][a-z0-9_]{0,62}$"
lookupDeleteBehaviorstring

What deleting the lookup target does to this value

Value in: "CLEAR" | "RESTRICT"
controllingFieldstring

Dependent picklist: name of the controlling PICKLIST or CHECKBOX field on the same entity

dependentValuesobject

Controlling value → allowed values of this picklist

trackHistoryboolean

Record field history for this field

precisionnumber

Decimal precision for NUMBER/CURRENCY types

minValuenumber

Minimum value for NUMBER/CURRENCY types

maxValuenumber

Maximum value for NUMBER/CURRENCY types

maxLengthnumber

Maximum length for TEXT types

patternstring

Regex validation pattern

formulaConfigobject

Required for FORMULA fields: { expression, returnType }

rollupConfigobject

Required for ROLLUP_SUMMARY fields: { childEntity, aggregate, aggregateField, filters }

Header Parameters

Idempotency-Keystring

Unique 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.

Maximum length: 255
curl -X POST "https://api.salesos.org/v1/custom-fields" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "string",
    "label": "string",
    "description": "string",
    "entity": "LEAD",
    "fieldType": "TEXT",
    "isRequired": true,
    "isUnique": true,
    "defaultValue": "string",
    "picklistValues": [
      {
        "id": "string",
        "value": "string",
        "label": "string",
        "isActive": true,
        "isDefault": true,
        "sortOrder": 0
      }
    ],
    "lookupEntity": "LEAD",
    "lookupObject": "string",
    "lookupDeleteBehavior": "CLEAR",
    "controllingField": "string",
    "dependentValues": {
      "property1": [
        "string"
      ],
      "property2": [
        "string"
      ]
    },
    "trackHistory": true,
    "precision": 0,
    "minValue": 0,
    "maxValue": 0,
    "maxLength": 0,
    "pattern": "string",
    "formulaConfig": {
      "expression": "amount * probability / 100",
      "returnType": "CURRENCY"
    },
    "rollupConfig": {
      "childEntity": "OPPORTUNITY",
      "aggregate": "SUM",
      "aggregateField": "amount",
      "filters": [
        {
          "field": "isClosed",
          "operator": "EQUALS",
          "value": false
        }
      ]
    }
  }'

CustomFieldDefinition

{
  "id": "string",
  "organizationId": "string",
  "name": "string",
  "label": "string",
  "description": "string",
  "entity": "LEAD",
  "fieldType": "TEXT",
  "isRequired": true,
  "isUnique": true,
  "defaultValue": "string",
  "picklistValues": null,
  "lookupEntity": "LEAD",
  "lookupObject": "string",
  "lookupDeleteBehavior": "string",
  "controllingField": "string",
  "dependentValues": null,
  "trackHistory": true,
  "precision": 0,
  "minValue": 0,
  "maxValue": 0,
  "maxLength": 0,
  "pattern": "string",
  "formulaConfig": null,
  "rollupConfig": null,
  "sortOrder": 0,
  "isActive": true,
  "createdAt": "2019-08-24T14:15:22Z",
  "updatedAt": "2019-08-24T14:15:22Z",
  "createdBy": "string"
}

Get custom fields statistics

GET
/v1/custom-fields/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

curl -X GET "https://api.salesos.org/v1/custom-fields/stats" \
  -H "Authorization: Bearer <token>"

List formula functions, roll-up children and referenceable fields

GET
/v1/custom-fields/derived/capabilities

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

entitystring
Value in: "LEAD" | "CONTACT" | "ACCOUNT" | "OPPORTUNITY" | "PRODUCT" | "QUOTE"
curl -X GET "https://api.salesos.org/v1/custom-fields/derived/capabilities?entity=LEAD" \
  -H "Authorization: Bearer <token>"

Validate a FORMULA/ROLLUP_SUMMARY definition, optionally evaluating a sample record

POST
/v1/custom-fields/derived/preview

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/jsonRequired
entityRequiredstring
Value in: "LEAD" | "CONTACT" | "ACCOUNT" | "OPPORTUNITY" | "PRODUCT" | "QUOTE"
fieldTypeRequiredstring
Value in: "FORMULA" | "ROLLUP_SUMMARY"
formulaConfigobject

Required when fieldType is FORMULA

rollupConfigobject

Required when fieldType is ROLLUP_SUMMARY

fieldIdstring

Existing field id when editing — excluded from the cycle graph

fieldNamestring

Proposed API name; enables self-reference and cycle checks

entityIdstring

Sample record id — when given, the definition is also evaluated

Header Parameters

Idempotency-Keystring

Unique 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.

Maximum length: 255
curl -X POST "https://api.salesos.org/v1/custom-fields/derived/preview" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "entity": "LEAD",
    "fieldType": "FORMULA",
    "formulaConfig": {},
    "rollupConfig": {},
    "fieldId": "string",
    "fieldName": "string",
    "entityId": "string"
  }'

{}

Get a custom field definition by ID

GET
/v1/custom-fields/{id}

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

idRequiredstring
curl -X GET "https://api.salesos.org/v1/custom-fields/<string>" \
  -H "Authorization: Bearer <token>"

CustomFieldDefinitionView

{
  "id": "string",
  "organizationId": "string",
  "name": "string",
  "label": "string",
  "description": "string",
  "entity": "LEAD",
  "fieldType": "TEXT",
  "isRequired": true,
  "isUnique": true,
  "defaultValue": "string",
  "picklistValues": null,
  "lookupEntity": "LEAD",
  "lookupObject": "string",
  "lookupDeleteBehavior": "string",
  "controllingField": "string",
  "dependentValues": null,
  "trackHistory": true,
  "precision": 0,
  "minValue": 0,
  "maxValue": 0,
  "maxLength": 0,
  "pattern": "string",
  "formulaConfig": null,
  "rollupConfig": null,
  "sortOrder": 0,
  "isActive": true,
  "createdAt": "2019-08-24T14:15:22Z",
  "updatedAt": "2019-08-24T14:15:22Z",
  "createdBy": "string",
  "managedBy": {
    "installationId": "string",
    "componentId": "string",
    "appId": "string",
    "appName": "string",
    "appSlug": "string"
  }
}

Update a custom field definition

PATCH
/v1/custom-fields/{id}

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/jsonRequired
lookupDeleteBehaviorstring

What deleting the lookup target does to this value

Value in: "CLEAR" | "RESTRICT"
controllingFieldstring

Dependent picklist: name of the controlling PICKLIST or CHECKBOX field on the same entity

dependentValuesobject

Controlling value → allowed values of this picklist

trackHistoryboolean

Record field history for this field

labelstring

Display label

descriptionstring

Field description

fieldTypestring

Field type (cannot be changed after creation)

Value in: "TEXT" | "TEXTAREA" | "NUMBER" | "CURRENCY" | "DATE" | "DATETIME" | "CHECKBOX" | "PICKLIST" | "MULTI_PICKLIST" | "EMAIL" | "PHONE" | "URL" | "LOOKUP" | "FORMULA" | "ROLLUP_SUMMARY"
isRequiredboolean

Is field required

isUniqueboolean

Is field value unique

isActiveboolean

Is field active

defaultValuestring

Default value

picklistValuesarray<object>

Picklist values

precisionnumber

Decimal precision

minValuenumber

Minimum value

maxValuenumber

Maximum value

maxLengthnumber

Maximum length

patternstring

Regex validation pattern

formulaConfigobject

FORMULA config: { expression, returnType }

rollupConfigobject

ROLLUP_SUMMARY config: { childEntity, aggregate, aggregateField, filters }

Path Parameters

idRequiredstring

Header Parameters

Idempotency-Keystring

Unique 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.

Maximum length: 255
curl -X PATCH "https://api.salesos.org/v1/custom-fields/<string>" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "lookupDeleteBehavior": "CLEAR",
    "controllingField": "string",
    "dependentValues": {
      "property1": [
        "string"
      ],
      "property2": [
        "string"
      ]
    },
    "trackHistory": true,
    "label": "string",
    "description": "string",
    "fieldType": "TEXT",
    "isRequired": true,
    "isUnique": true,
    "isActive": true,
    "defaultValue": "string",
    "picklistValues": [
      {
        "id": "string",
        "value": "string",
        "label": "string",
        "isActive": true,
        "isDefault": true,
        "sortOrder": 0
      }
    ],
    "precision": 0,
    "minValue": 0,
    "maxValue": 0,
    "maxLength": 0,
    "pattern": "string",
    "formulaConfig": {},
    "rollupConfig": {}
  }'

CustomFieldDefinition

{
  "id": "string",
  "organizationId": "string",
  "name": "string",
  "label": "string",
  "description": "string",
  "entity": "LEAD",
  "fieldType": "TEXT",
  "isRequired": true,
  "isUnique": true,
  "defaultValue": "string",
  "picklistValues": null,
  "lookupEntity": "LEAD",
  "lookupObject": "string",
  "lookupDeleteBehavior": "string",
  "controllingField": "string",
  "dependentValues": null,
  "trackHistory": true,
  "precision": 0,
  "minValue": 0,
  "maxValue": 0,
  "maxLength": 0,
  "pattern": "string",
  "formulaConfig": null,
  "rollupConfig": null,
  "sortOrder": 0,
  "isActive": true,
  "createdAt": "2019-08-24T14:15:22Z",
  "updatedAt": "2019-08-24T14:15:22Z",
  "createdBy": "string"
}

Reorder custom fields

POST
/v1/custom-fields/reorder

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/jsonRequired

Header Parameters

Idempotency-Keystring

Unique 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.

Maximum length: 255
curl -X POST "https://api.salesos.org/v1/custom-fields/reorder" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'

SuccessResponse

{
  "success": true
}

Add a picklist value

POST
/v1/custom-fields/{id}/picklist-values

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/jsonRequired

Path Parameters

idRequiredstring

Header Parameters

Idempotency-Keystring

Unique 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.

Maximum length: 255
curl -X POST "https://api.salesos.org/v1/custom-fields/<string>/picklist-values" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'

CustomFieldDefinition

{
  "id": "string",
  "organizationId": "string",
  "name": "string",
  "label": "string",
  "description": "string",
  "entity": "LEAD",
  "fieldType": "TEXT",
  "isRequired": true,
  "isUnique": true,
  "defaultValue": "string",
  "picklistValues": null,
  "lookupEntity": "LEAD",
  "lookupObject": "string",
  "lookupDeleteBehavior": "string",
  "controllingField": "string",
  "dependentValues": null,
  "trackHistory": true,
  "precision": 0,
  "minValue": 0,
  "maxValue": 0,
  "maxLength": 0,
  "pattern": "string",
  "formulaConfig": null,
  "rollupConfig": null,
  "sortOrder": 0,
  "isActive": true,
  "createdAt": "2019-08-24T14:15:22Z",
  "updatedAt": "2019-08-24T14:15:22Z",
  "createdBy": "string"
}

Update a picklist value

PATCH
/v1/custom-fields/{id}/picklist-values/{valueId}

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/jsonRequired

Path Parameters

idRequiredstring
valueIdRequiredstring

Header Parameters

Idempotency-Keystring

Unique 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.

Maximum length: 255
curl -X PATCH "https://api.salesos.org/v1/custom-fields/<string>/picklist-values/<string>" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'

CustomFieldDefinition

{
  "id": "string",
  "organizationId": "string",
  "name": "string",
  "label": "string",
  "description": "string",
  "entity": "LEAD",
  "fieldType": "TEXT",
  "isRequired": true,
  "isUnique": true,
  "defaultValue": "string",
  "picklistValues": null,
  "lookupEntity": "LEAD",
  "lookupObject": "string",
  "lookupDeleteBehavior": "string",
  "controllingField": "string",
  "dependentValues": null,
  "trackHistory": true,
  "precision": 0,
  "minValue": 0,
  "maxValue": 0,
  "maxLength": 0,
  "pattern": "string",
  "formulaConfig": null,
  "rollupConfig": null,
  "sortOrder": 0,
  "isActive": true,
  "createdAt": "2019-08-24T14:15:22Z",
  "updatedAt": "2019-08-24T14:15:22Z",
  "createdBy": "string"
}

Delete a picklist value

DELETE
/v1/custom-fields/{id}/picklist-values/{valueId}

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

idRequiredstring
valueIdRequiredstring
curl -X DELETE "https://api.salesos.org/v1/custom-fields/<string>/picklist-values/<string>" \
  -H "Authorization: Bearer <token>"

CustomFieldDefinition

{
  "id": "string",
  "organizationId": "string",
  "name": "string",
  "label": "string",
  "description": "string",
  "entity": "LEAD",
  "fieldType": "TEXT",
  "isRequired": true,
  "isUnique": true,
  "defaultValue": "string",
  "picklistValues": null,
  "lookupEntity": "LEAD",
  "lookupObject": "string",
  "lookupDeleteBehavior": "string",
  "controllingField": "string",
  "dependentValues": null,
  "trackHistory": true,
  "precision": 0,
  "minValue": 0,
  "maxValue": 0,
  "maxLength": 0,
  "pattern": "string",
  "formulaConfig": null,
  "rollupConfig": null,
  "sortOrder": 0,
  "isActive": true,
  "createdAt": "2019-08-24T14:15:22Z",
  "updatedAt": "2019-08-24T14:15:22Z",
  "createdBy": "string"
}

Reorder picklist values

POST
/v1/custom-fields/{id}/picklist-values/reorder

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/jsonRequired

Path Parameters

idRequiredstring

Header Parameters

Idempotency-Keystring

Unique 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.

Maximum length: 255
curl -X POST "https://api.salesos.org/v1/custom-fields/<string>/picklist-values/reorder" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'

CustomFieldDefinition

{
  "id": "string",
  "organizationId": "string",
  "name": "string",
  "label": "string",
  "description": "string",
  "entity": "LEAD",
  "fieldType": "TEXT",
  "isRequired": true,
  "isUnique": true,
  "defaultValue": "string",
  "picklistValues": null,
  "lookupEntity": "LEAD",
  "lookupObject": "string",
  "lookupDeleteBehavior": "string",
  "controllingField": "string",
  "dependentValues": null,
  "trackHistory": true,
  "precision": 0,
  "minValue": 0,
  "maxValue": 0,
  "maxLength": 0,
  "pattern": "string",
  "formulaConfig": null,
  "rollupConfig": null,
  "sortOrder": 0,
  "isActive": true,
  "createdAt": "2019-08-24T14:15:22Z",
  "updatedAt": "2019-08-24T14:15:22Z",
  "createdBy": "string"
}

Set a custom field value for a record

POST
/v1/custom-fields/values

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/jsonRequired
fieldIdRequiredstring

Custom field ID

entityTypeRequiredstring

Entity type

Value in: "LEAD" | "CONTACT" | "ACCOUNT" | "OPPORTUNITY" | "PRODUCT" | "QUOTE"
entityIdRequiredstring

Entity record ID

valueRequiredobject

Field value (null clears it)

Header Parameters

Idempotency-Keystring

Unique 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.

Maximum length: 255
curl -X POST "https://api.salesos.org/v1/custom-fields/values" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "fieldId": "string",
    "entityType": "LEAD",
    "entityId": "string",
    "value": {}
  }'

CustomFieldValue

{
  "id": "string",
  "fieldId": "string",
  "entityType": "LEAD",
  "entityId": "string",
  "textValue": "string",
  "numberValue": 0,
  "booleanValue": true,
  "dateValue": "2019-08-24T14:15:22Z",
  "jsonValue": null,
  "createdAt": "2019-08-24T14:15:22Z",
  "updatedAt": "2019-08-24T14:15:22Z"
}

Get all custom field values for a record

GET
/v1/custom-fields/values/{entityType}/{entityId}

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

entityTypeRequiredstring
Value in: "CONTACT" | "LEAD" | "ACCOUNT" | "OPPORTUNITY" | "PRODUCT" | "QUOTE"
entityIdRequiredstring
curl -X GET "https://api.salesos.org/v1/custom-fields/values/CONTACT/<string>" \
  -H "Authorization: Bearer <token>"

CustomFieldValueViewArray

[
  {
    "fieldId": "string",
    "fieldName": "string",
    "fieldLabel": "string",
    "fieldType": "string",
    "value": {},
    "computed": true,
    "error": "string"
  }
]

Delete a custom field value

DELETE
/v1/custom-fields/values/{fieldId}/{entityType}/{entityId}

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

fieldIdRequiredstring
entityTypeRequiredstring
Value in: "CONTACT" | "LEAD" | "ACCOUNT" | "OPPORTUNITY" | "PRODUCT" | "QUOTE"
entityIdRequiredstring
curl -X DELETE "https://api.salesos.org/v1/custom-fields/values/<string>/CONTACT/<string>" \
  -H "Authorization: Bearer <token>"

CustomFieldValue

{
  "id": "string",
  "fieldId": "string",
  "entityType": "LEAD",
  "entityId": "string",
  "textValue": "string",
  "numberValue": 0,
  "booleanValue": true,
  "dateValue": "2019-08-24T14:15:22Z",
  "jsonValue": null,
  "createdAt": "2019-08-24T14:15:22Z",
  "updatedAt": "2019-08-24T14:15:22Z"
}