SalesOS

Custom Objects

User-defined entities and their records

List custom objects

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

pagestring
limitstring
curl -X GET "https://api.salesos.org/v1/custom-objects?page=%3Cstring%3E&limit=%3Cstring%3E" \
  -H "Authorization: Bearer <token>"

CustomObjectDefinitionViewList

{
  "data": [
    {
      "id": "string",
      "name": "string",
      "label": "string",
      "pluralLabel": "string",
      "description": "string",
      "fields": [
        {
          "id": "string",
          "name": "string",
          "label": "string",
          "type": "string",
          "required": true,
          "defaultValue": {},
          "options": [
            "string"
          ],
          "description": "string",
          "lookupTarget": "string",
          "onDelete": "CLEAR",
          "controllingField": "string",
          "dependentValues": {
            "property1": [
              "string"
            ],
            "property2": [
              "string"
            ]
          },
          "trackHistory": true,
          "formula": {},
          "rollup": {}
        }
      ],
      "nameField": "string",
      "organizationId": "string",
      "createdById": "string",
      "createdAt": "2019-08-24T14:15:22Z",
      "updatedAt": "2019-08-24T14:15:22Z",
      "recordCount": 0,
      "managedBy": {
        "installationId": "string",
        "componentId": "string",
        "appId": "string",
        "appName": "string",
        "appSlug": "string"
      },
      "relationships": {
        "outbound": [
          {}
        ],
        "inbound": [
          {}
        ]
      }
    }
  ],
  "total": 0,
  "page": 0,
  "limit": 0,
  "totalPages": 0,
  "dbCustomEntities": [
    "string"
  ]
}

Create custom object

POST
/v1/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

Request Body

application/jsonRequired
nameFieldstring

Text field that labels records

fieldsarray<object>

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-objects" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "nameField": "string",
    "fields": [
      {
        "name": "string",
        "label": "string",
        "type": "string",
        "description": "string",
        "required": true,
        "defaultValue": {},
        "options": [
          "string"
        ],
        "lookupTarget": "string",
        "lookupObjectId": "string",
        "onDelete": "CLEAR",
        "controllingField": "string",
        "dependentValues": {
          "property1": [
            "string"
          ],
          "property2": [
            "string"
          ]
        },
        "trackHistory": true,
        "formula": {},
        "rollup": {}
      }
    ]
  }'

CustomObjectDefinition

{
  "id": "string",
  "name": "string",
  "label": "string",
  "pluralLabel": "string",
  "description": "string",
  "fields": null,
  "nameField": "string",
  "organizationId": "string",
  "createdById": "string",
  "createdAt": "2019-08-24T14:15:22Z",
  "updatedAt": "2019-08-24T14:15:22Z"
}

Get stats

GET
/v1/custom-objects/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-objects/stats" \
  -H "Authorization: Bearer <token>"

Objects a lookup or master-detail field may point at

GET
/v1/custom-objects/lookup-targets

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-objects/lookup-targets" \
  -H "Authorization: Bearer <token>"

CustomObjectLookupTargets

{
  "standard": [
    {
      "target": "string",
      "label": "string"
    }
  ],
  "custom": [
    {
      "target": "custom:project",
      "label": "string",
      "pluralLabel": "string"
    }
  ]
}

Custom-object records that look up a standard record, grouped by object and field

GET
/v1/custom-objects/related/{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
entityIdRequiredstring

Query Parameters

limitstring

Records per list (1–50, default 5)

curl -X GET "https://api.salesos.org/v1/custom-objects/related/<string>/<string>?limit=%3Cstring%3E" \
  -H "Authorization: Bearer <token>"

CustomObjectRelatedLists

{
  "data": [
    {
      "object": "custom:project_task",
      "objectId": "string",
      "objectLabel": "string",
      "objectPluralLabel": "string",
      "field": "string",
      "fieldLabel": "string",
      "relationship": "LOOKUP",
      "total": 0,
      "records": [
        {
          "id": "string",
          "objectId": "string",
          "data": {},
          "ownerId": "string",
          "organizationId": "string",
          "createdAt": "2019-08-24T14:15:22Z",
          "updatedAt": "2019-08-24T14:15:22Z",
          "object": "string",
          "owner": {
            "id": "string",
            "name": "string"
          },
          "lookups": {
            "property1": {
              "id": "string",
              "object": "ACCOUNT",
              "label": "string"
            },
            "property2": {
              "id": "string",
              "object": "ACCOUNT",
              "label": "string"
            }
          }
        }
      ]
    }
  ]
}

Get custom object

GET
/v1/custom-objects/{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-objects/<string>" \
  -H "Authorization: Bearer <token>"

CustomObjectDefinitionView

{
  "id": "string",
  "name": "string",
  "label": "string",
  "pluralLabel": "string",
  "description": "string",
  "fields": [
    {
      "id": "string",
      "name": "string",
      "label": "string",
      "type": "string",
      "required": true,
      "defaultValue": {},
      "options": [
        "string"
      ],
      "description": "string",
      "lookupTarget": "string",
      "onDelete": "CLEAR",
      "controllingField": "string",
      "dependentValues": {
        "property1": [
          "string"
        ],
        "property2": [
          "string"
        ]
      },
      "trackHistory": true,
      "formula": {},
      "rollup": {}
    }
  ],
  "nameField": "string",
  "organizationId": "string",
  "createdById": "string",
  "createdAt": "2019-08-24T14:15:22Z",
  "updatedAt": "2019-08-24T14:15:22Z",
  "recordCount": 0,
  "managedBy": {
    "installationId": "string",
    "componentId": "string",
    "appId": "string",
    "appName": "string",
    "appSlug": "string"
  },
  "relationships": {
    "outbound": [
      {}
    ],
    "inbound": [
      {}
    ]
  }
}

Update custom object

PATCH
/v1/custom-objects/{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
nameFieldstring

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-objects/<string>" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "nameField": "string"
  }'

CustomObjectDefinition

{
  "id": "string",
  "name": "string",
  "label": "string",
  "pluralLabel": "string",
  "description": "string",
  "fields": null,
  "nameField": "string",
  "organizationId": "string",
  "createdById": "string",
  "createdAt": "2019-08-24T14:15:22Z",
  "updatedAt": "2019-08-24T14:15:22Z"
}

Delete custom object

DELETE
/v1/custom-objects/{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 DELETE "https://api.salesos.org/v1/custom-objects/<string>" \
  -H "Authorization: Bearer <token>"

DeletedRecordResponse

{
  "id": "string",
  "deleted": true,
  "deletedAt": "2019-08-24T14:15:22Z"
}

Add field

POST
/v1/custom-objects/{id}/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 (derived from the label when omitted)

labelstring
typestring

TEXT, TEXTAREA, NUMBER, CURRENCY, PERCENT, DATE, DATETIME, CHECKBOX, PICKLIST, MULTI_PICKLIST, EMAIL, PHONE, URL, LOOKUP, MASTER_DETAIL, FORMULA, ROLLUP_SUMMARY

descriptionstring
requiredboolean
defaultValueobject
optionsarray<string>
lookupTargetstring

LOOKUP / MASTER_DETAIL target: LEAD, CONTACT, ACCOUNT, OPPORTUNITY, TASK, CASE or custom:

lookupObjectIdstring

Alias of lookupTarget (custom object id or API name)

onDeletestring

What deleting the target does: lookups CLEAR | RESTRICT, master-detail CASCADE | RESTRICT

Value in: "CLEAR" | "RESTRICT" | "CASCADE"
controllingFieldstring

Dependent picklist: the controlling field name

dependentValuesobject

Controlling value → allowed values of this picklist

trackHistoryboolean

Record field history for this field

formulaobject

FORMULA: { expression, returnType }

rollupobject

ROLLUP_SUMMARY: { childObject, relationshipField, 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 POST "https://api.salesos.org/v1/custom-objects/<string>/fields" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "string",
    "label": "string",
    "type": "string",
    "description": "string",
    "required": true,
    "defaultValue": {},
    "options": [
      "string"
    ],
    "lookupTarget": "string",
    "lookupObjectId": "string",
    "onDelete": "CLEAR",
    "controllingField": "string",
    "dependentValues": {
      "property1": [
        "string"
      ],
      "property2": [
        "string"
      ]
    },
    "trackHistory": true,
    "formula": {},
    "rollup": {}
  }'

CustomObjectField

{
  "id": "string",
  "name": "string",
  "label": "string",
  "type": "string",
  "required": true,
  "defaultValue": {},
  "options": [
    "string"
  ],
  "description": "string",
  "lookupTarget": "string",
  "onDelete": "CLEAR",
  "controllingField": "string",
  "dependentValues": {
    "property1": [
      "string"
    ],
    "property2": [
      "string"
    ]
  },
  "trackHistory": true,
  "formula": {},
  "rollup": {}
}

Update field

PATCH
/v1/custom-objects/{id}/fields/{fieldId}

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 (derived from the label when omitted)

labelstring
typestring

TEXT, TEXTAREA, NUMBER, CURRENCY, PERCENT, DATE, DATETIME, CHECKBOX, PICKLIST, MULTI_PICKLIST, EMAIL, PHONE, URL, LOOKUP, MASTER_DETAIL, FORMULA, ROLLUP_SUMMARY

descriptionstring
requiredboolean
defaultValueobject
optionsarray<string>
lookupTargetstring

LOOKUP / MASTER_DETAIL target: LEAD, CONTACT, ACCOUNT, OPPORTUNITY, TASK, CASE or custom:

lookupObjectIdstring

Alias of lookupTarget (custom object id or API name)

onDeletestring

What deleting the target does: lookups CLEAR | RESTRICT, master-detail CASCADE | RESTRICT

Value in: "CLEAR" | "RESTRICT" | "CASCADE"
controllingFieldstring

Dependent picklist: the controlling field name

dependentValuesobject

Controlling value → allowed values of this picklist

trackHistoryboolean

Record field history for this field

formulaobject

FORMULA: { expression, returnType }

rollupobject

ROLLUP_SUMMARY: { childObject, relationshipField, aggregate, aggregateField?, filters? }

Path Parameters

idRequiredstring
fieldIdRequiredstring

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-objects/<string>/fields/<string>" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "string",
    "label": "string",
    "type": "string",
    "description": "string",
    "required": true,
    "defaultValue": {},
    "options": [
      "string"
    ],
    "lookupTarget": "string",
    "lookupObjectId": "string",
    "onDelete": "CLEAR",
    "controllingField": "string",
    "dependentValues": {
      "property1": [
        "string"
      ],
      "property2": [
        "string"
      ]
    },
    "trackHistory": true,
    "formula": {},
    "rollup": {}
  }'

CustomObjectField

{
  "id": "string",
  "name": "string",
  "label": "string",
  "type": "string",
  "required": true,
  "defaultValue": {},
  "options": [
    "string"
  ],
  "description": "string",
  "lookupTarget": "string",
  "onDelete": "CLEAR",
  "controllingField": "string",
  "dependentValues": {
    "property1": [
      "string"
    ],
    "property2": [
      "string"
    ]
  },
  "trackHistory": true,
  "formula": {},
  "rollup": {}
}

Delete field

DELETE
/v1/custom-objects/{id}/fields/{fieldId}

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
fieldIdRequiredstring
curl -X DELETE "https://api.salesos.org/v1/custom-objects/<string>/fields/<string>" \
  -H "Authorization: Bearer <token>"

DeletedRecordResponse

{
  "id": "string",
  "deleted": true,
  "deletedAt": "2019-08-24T14:15:22Z"
}

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.

GET
/v1/custom-objects/{id}/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

Path Parameters

idRequiredstring

Query Parameters

pagestring
limitstring

1–200, default 50

sortBystring

Field API name, createdAt, updatedAt, ownerId or ownerName

sortOrderstring
Value in: "asc" | "desc"
searchstring

Matches text and picklist fields

filtersstring

JSON array of { field, operator, value }

ownerstring
Value in: "me"
idsstring

Comma-separated record ids

curl -X GET "https://api.salesos.org/v1/custom-objects/<string>/records?page=%3Cstring%3E&limit=%3Cstring%3E&sortBy=%3Cstring%3E&sortOrder=asc&search=%3Cstring%3E&filters=%3Cstring%3E&owner=me&ids=%3Cstring%3E" \
  -H "Authorization: Bearer <token>"

CustomObjectRecordPage

{
  "data": [
    {
      "id": "string",
      "objectId": "string",
      "data": {},
      "ownerId": "string",
      "organizationId": "string",
      "createdAt": "2019-08-24T14:15:22Z",
      "updatedAt": "2019-08-24T14:15:22Z",
      "object": "string",
      "owner": {
        "id": "string",
        "name": "string"
      },
      "lookups": {
        "property1": {
          "id": "string",
          "object": "ACCOUNT",
          "label": "string"
        },
        "property2": {
          "id": "string",
          "object": "ACCOUNT",
          "label": "string"
        }
      }
    }
  ],
  "pagination": {
    "page": 0,
    "limit": 0,
    "total": 0,
    "totalPages": 0,
    "hasMore": true
  },
  "total": 0,
  "page": 0,
  "limit": 0,
  "totalPages": 0
}

Create record

POST
/v1/custom-objects/{id}/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/jsonRequired
dataobject

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-objects/<string>/records" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "data": {}
  }'

CustomObjectRecordView

{
  "id": "string",
  "objectId": "string",
  "data": {},
  "ownerId": "string",
  "organizationId": "string",
  "createdAt": "2019-08-24T14:15:22Z",
  "updatedAt": "2019-08-24T14:15:22Z",
  "object": "string",
  "owner": {
    "id": "string",
    "name": "string"
  },
  "lookups": {
    "property1": {
      "id": "string",
      "object": "ACCOUNT",
      "label": "string"
    },
    "property2": {
      "id": "string",
      "object": "ACCOUNT",
      "label": "string"
    }
  }
}

Set one field on many records

PATCH
/v1/custom-objects/{id}/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/jsonRequired
idsarray<string>

Up to 200 record ids

fieldstring

Field API name to set

valueobject

New value (null clears)

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-objects/<string>/records" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "ids": [
      "string"
    ],
    "field": "string",
    "value": {}
  }'

CustomObjectBulkUpdateResult

{
  "updated": 0,
  "failed": 0,
  "results": [
    {
      "id": "string",
      "ok": true,
      "error": "string",
      "code": "string"
    }
  ]
}

One record; `:id` is the object's id or its API name.

GET
/v1/custom-objects/{id}/records/{recordId}

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
recordIdRequiredstring
curl -X GET "https://api.salesos.org/v1/custom-objects/<string>/records/<string>" \
  -H "Authorization: Bearer <token>"

CustomObjectRecordView

{
  "id": "string",
  "objectId": "string",
  "data": {},
  "ownerId": "string",
  "organizationId": "string",
  "createdAt": "2019-08-24T14:15:22Z",
  "updatedAt": "2019-08-24T14:15:22Z",
  "object": "string",
  "owner": {
    "id": "string",
    "name": "string"
  },
  "lookups": {
    "property1": {
      "id": "string",
      "object": "ACCOUNT",
      "label": "string"
    },
    "property2": {
      "id": "string",
      "object": "ACCOUNT",
      "label": "string"
    }
  }
}

Update record

PATCH
/v1/custom-objects/{id}/records/{recordId}

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
dataobject

Path Parameters

idRequiredstring
recordIdRequiredstring

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-objects/<string>/records/<string>" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "data": {}
  }'

CustomObjectRecordView

{
  "id": "string",
  "objectId": "string",
  "data": {},
  "ownerId": "string",
  "organizationId": "string",
  "createdAt": "2019-08-24T14:15:22Z",
  "updatedAt": "2019-08-24T14:15:22Z",
  "object": "string",
  "owner": {
    "id": "string",
    "name": "string"
  },
  "lookups": {
    "property1": {
      "id": "string",
      "object": "ACCOUNT",
      "label": "string"
    },
    "property2": {
      "id": "string",
      "object": "ACCOUNT",
      "label": "string"
    }
  }
}

Delete record

DELETE
/v1/custom-objects/{id}/records/{recordId}

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
recordIdRequiredstring
curl -X DELETE "https://api.salesos.org/v1/custom-objects/<string>/records/<string>" \
  -H "Authorization: Bearer <token>"

DeletedRecordResponse

{
  "id": "string",
  "deleted": true,
  "deletedAt": "2019-08-24T14:15:22Z"
}

Records of other custom objects that look up this one, grouped by object and field

GET
/v1/custom-objects/{id}/records/{recordId}/related

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
recordIdRequiredstring

Query Parameters

limitstring

Records per list (1–50, default 5)

curl -X GET "https://api.salesos.org/v1/custom-objects/<string>/records/<string>/related?limit=%3Cstring%3E" \
  -H "Authorization: Bearer <token>"

CustomObjectRelatedLists

{
  "data": [
    {
      "object": "custom:project_task",
      "objectId": "string",
      "objectLabel": "string",
      "objectPluralLabel": "string",
      "field": "string",
      "fieldLabel": "string",
      "relationship": "LOOKUP",
      "total": 0,
      "records": [
        {
          "id": "string",
          "objectId": "string",
          "data": {},
          "ownerId": "string",
          "organizationId": "string",
          "createdAt": "2019-08-24T14:15:22Z",
          "updatedAt": "2019-08-24T14:15:22Z",
          "object": "string",
          "owner": {
            "id": "string",
            "name": "string"
          },
          "lookups": {
            "property1": {
              "id": "string",
              "object": "ACCOUNT",
              "label": "string"
            },
            "property2": {
              "id": "string",
              "object": "ACCOUNT",
              "label": "string"
            }
          }
        }
      ]
    }
  ]
}