TrustLayer custom-fields API
The custom-fields API from TrustLayer — 4 operation(s) for custom-fields.
The custom-fields API from TrustLayer — 4 operation(s) for custom-fields.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/trustlayer-custom-fields-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: TrustLayer Platform Auth Custom Fields API
version: '1.0'
contact:
name: TrustLayer Support
email: support@trustlayer.io
termsOfService: https://trustlayer.io/terms-of-service
externalDocs:
description: OpenAPI specification
url: /v1/platform-api.yaml
description: '3rd-party API for the TrustLayer platform.
**Deprecated.** Platform API v1 is deprecated as of 01 June 2026 and is
scheduled for sunset (end-of-life) on 31 March 2027. It remains fully
available until the sunset date but will not receive new features. Please
migrate to Platform API v2 for new integrations.
All v1 responses carry the standard deprecation response headers
([RFC 8594](https://www.rfc-editor.org/rfc/rfc8594)):
```http
Deprecation: @1780272000
Sunset: Wed, 31 Mar 2027 23:59:59 GMT
Link: <https://developers.trustlayer.io/>; rel="deprecation", <https://developers.trustlayer.io/>; rel="sunset"
```
`Deprecation: @1780272000` is the Unix timestamp for 2026-06-01T00:00:00Z;
sunset (end-of-life) is 2027-03-31T23:59:59 GMT.'
x-deprecated: true
x-deprecation-date: '2026-06-01'
x-sunset: '2027-03-31'
license:
name: Apache 2.0
url: https://apache.org/licenses/LICENSE-2.0
servers:
- url: http://localhost:4000/v1
description: Local
- url: https://api.trustlayer.io/v1
description: Production
security:
- API Key: []
tags:
- name: custom-fields
paths:
/projects/{projectId}:
parameters:
- schema:
type: string
name: projectId
in: path
required: true
description: Project ID
patch:
summary: Update a custom field
operationId: patch-custom-fields
deprecated: true
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
status:
$ref: '#/components/schemas/response-status'
data:
$ref: '#/components/schemas/custom-field'
description: 'Note
* required attributes (`name` and `fieldType`) _must_ always be specified
* at the moment it''s not possible to specify custom requirementsand checklists.'
requestBody:
content:
application/json:
schema:
type: object
properties:
project:
$ref: '#/components/schemas/project-update'
description: ''
tags:
- custom-fields
x-internal: false
/custom-fields:
get:
summary: List custom fields
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
status:
$ref: '#/components/schemas/response-status'
data:
type: array
items:
$ref: '#/components/schemas/custom-field'
meta:
$ref: '#/components/schemas/collection-meta'
operationId: get-custom-fields
deprecated: true
description: 'All fields are returned in alphabetical order; pagination and sorting are not enabled.
Available include options:
* `complianceProfile`'
tags:
- custom-fields
post:
summary: Create a new custom field
operationId: post-custom-fields
deprecated: true
responses:
'201':
description: Created
content:
application/json:
schema:
type: object
properties:
status:
$ref: '#/components/schemas/response-status'
data:
$ref: '#/components/schemas/custom-field'
description: 'Note: at the moment it''s not possible to specify custom requirements and checklists.'
requestBody:
content:
application/json:
schema:
type: object
properties:
customField:
$ref: '#/components/schemas/custom-field-create'
tags:
- custom-fields
/custom-fields/{fieldId}:
parameters:
- schema:
type: string
name: fieldId
in: path
required: true
patch:
summary: Update a custom field
operationId: patch-custom-fields-fieldId
deprecated: true
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
status:
$ref: '#/components/schemas/response-status'
data:
$ref: '#/components/schemas/custom-field'
tags:
- custom-fields
description: Note that by specifying `options` you will _replace_ all the existing values.
requestBody:
content:
application/json:
schema:
type: object
properties:
customField:
$ref: '#/components/schemas/custom-field-update'
delete:
summary: Delete a custom field
operationId: delete-custom-fields-fieldId
deprecated: true
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
status:
$ref: '#/components/schemas/response-status'
data:
$ref: '#/components/schemas/custom-field'
tags:
- custom-fields
description: This will also remove the field from any project that is using it.
/parties/{partyId}/custom-data:
parameters:
- schema:
type: string
name: partyId
in: path
required: true
patch:
summary: Update party custom data
operationId: patch-parties-partyId-custom-data
deprecated: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/party'
description: 'Add, remove or update party custom fields.
To remove a field, set its value to `null`.
A project `scope` can be specified; in that case the changes will be made only to the project specific values.'
tags:
- custom-fields
parameters:
- $ref: '#/components/parameters/scope-type'
- $ref: '#/components/parameters/scope-id'
requestBody:
content:
application/json:
schema:
type: object
properties:
customData:
$ref: '#/components/schemas/custom-data-update'
examples:
example-1:
value:
customData:
- value: string
customField:
id: string
components:
schemas:
reference:
title: Reference
type: object
properties:
id:
type: string
type:
type: string
description: Generic object reference
x-internal: false
x-examples:
Generic reference example:
id: 60896067dd86e01e90199f43
type: widgets
custom-field-update:
title: custom-field-update
type: object
x-internal: true
x-tags:
- input
properties:
name:
type: string
minLength: 1
description:
type: string
color:
type: string
pattern: ^#[0-9a-f]{6}$
minLength: 7
maxLength: 7
example: '#ffa900'
fieldType:
type: string
enum:
- text
- number
- dropdown
source:
type: string
enum:
- branding
options:
type: array
minItems: 1
items:
type: string
minLength: 1
compliance-profile:
title: Compliance Profile
type: object
x-examples:
Example compliance profile:
id: 60a27c51fcd891823568ed27
type: compliance-profiles
name: Default compliance profile
rules:
- moduleId: evidenceOfInsurance
moduleLabel: Evidence of Insurance
subjectId: commercialGeneralLiability
subjectLabel: Commercial General Liability
attributeId: evidenceOfInsuranceCommercialGeneralLiabilityEachOccurrence
attributeLabel: Each Occurrence
attributeType: number
attributeDescription: ''
masterDocumentAttributeId: commercialGeneralLiabilityLimitsGeneralAggregate
operator: must be greater or equal to
targetValue: '2000000'
context: global
properties:
id:
type: string
type:
type: string
default: compliance-profiles
name:
type: string
example: Default compliance profile
rules:
type: array
items:
type: object
properties:
moduleId:
type: string
minLength: 1
example: evidenceOfInsurance
moduleLabel:
type: string
minLength: 1
example: Evidence of Insurance
subjectId:
type: string
minLength: 1
example: commercialGeneralLiability
subjectLabel:
type: string
minLength: 1
example: Commercial General Liability
attributeId:
type: string
minLength: 1
example: evidenceOfInsuranceCommercialGeneralLiabilityEachOccurrence
attributeLabel:
type: string
minLength: 1
example: Each Occurrence
attributeType:
type: string
minLength: 1
example: number
attributeDescription:
type: string
masterDocumentAttributeId:
type: string
minLength: 1
example: commercialGeneralLiabilityLimitsGeneralAggregate
operator:
type: string
minLength: 1
example: must be greater or equal to
targetValue:
type: string
minLength: 1
example: '2000000'
context:
type: string
enum:
- global
- project
- custom-field
documentChecklists:
type: array
items:
type: object
properties:
attributeId:
type: string
attributeLabel:
type: string
active:
type: boolean
collection-meta:
title: collection-meta
type: object
properties:
count:
type: number
description: The number of documents according to the specified filters
pages:
type: number
totalCount:
type: number
description: The total number of documents in the collection
totalPages:
type: number
x-internal: true
project-update:
title: project-update
type: object
properties:
name:
type: string
description: The project name
description:
type: string
description: An optional description
startDate:
type: string
format: date
endDate:
type: string
format: date
active:
type: boolean
customData:
type: array
items:
type: object
properties:
customField:
$ref: '#/components/schemas/reference-input'
value:
type: string
required:
- customField
- value
required:
- name
x-internal: true
x-tags:
- input
compliance-document:
x-internal: true
title: Compliance Document
type: object
properties:
id:
type: string
origin:
type: string
enum:
- upload
- makeCompliant
- connectedDocument
- fillableForm
- webForm
complianceStatus:
type: string
enum:
- compliant
- non_compliant
reference-input:
title: reference-input
type: object
properties:
id:
type: string
minLength: 24
maxLength: 24
pattern: ^[a-z0-9]{24}$
required:
- id
x-internal: true
x-tags:
- input
taggging-full:
title: Tagging (full data)
type: object
properties:
type:
type: string
default: tags
id:
type: string
name:
type: string
color:
type: string
addedAt:
type: string
format: date
addedBy:
type: string
custom-field:
title: Custom Field
type: object
properties:
id:
type: string
type:
type: string
default: custom-fields
name:
type: string
description: Custom field label
'description ':
type: string
description: Optional description
color:
type: string
pattern: ^#[a-f0-9]{6}$
description: 'Field color in #rrggbb format'
fieldType:
type: string
default: text
enum:
- text
- number
- dropdown
options:
type: array
description: List of options for the dropdown
items:
type: object
properties:
key:
type: string
description: Unique identifier for the option
value:
type: string
description: Option label
complianceProfile:
oneOf:
- $ref: '#/components/schemas/reference'
- $ref: '#/components/schemas/compliance-profile'
associatedEntities:
type: array
enum:
- party
- project
description: List of entity types that can use this custom field
items:
type: string
party-type:
title: Party Type
type: object
properties:
id:
type: string
type:
type: string
default: party-types
name:
type: string
pluralName:
type: string
defaultComplianceProfile:
oneOf:
- $ref: '#/components/schemas/reference'
- $ref: '#/components/schemas/compliance-profile'
x-examples:
Vendor:
id: 60a27c51fcd891823568ed28
type: party-types
name: Vendor
pluralName: Vendors
defaultComplianceProfile:
id: 60a27c51fcd891823568ed27
type: compliance-profiles
user:
description: ''
type: object
properties:
id:
type: string
profile:
type: object
properties:
name:
type: string
minLength: 1
phone:
type: string
title:
type: string
avatar:
type: string
role:
type: string
department:
type: string
timezone:
type: string
email:
type: string
minLength: 1
isActive:
type: boolean
type:
type: string
default: users
readOnly: true
title: User
party:
title: Party
type: object
x-examples:
Example Party:
id: 60896067dd86e01e90199f42
name: Test Party
address:
line1: 123 Main Street
line2: ''
city: Pleasantville
postalCode: '10200'
region: NY
country: US
type: Vendor
status: new
customData:
- value: '123'
customField:
type: customFields
id: 60896067dd86e01e90199f42
externalIds:
procore:
- id: '49843945'
properties:
type:
type: string
default: parties
readOnly: true
id:
type: string
readOnly: true
name:
type: string
address:
$ref: '#/components/schemas/address'
status:
type: string
enum:
- new
- compliant
- non_compliant
- inactive
readOnly: true
contacts:
type: array
items:
$ref: '#/components/schemas/contact'
website:
type:
- string
- 'null'
active:
type: boolean
notes:
type:
- string
- 'null'
complianceStatus:
$ref: '#/components/schemas/compliance-status'
projects:
type: array
items:
oneOf:
- $ref: '#/components/schemas/reference'
- $ref: '#/components/schemas/project'
projectStats:
type: object
properties:
compliantProjectsCount:
type: number
totalProjectsCount:
type: number
documents:
type: array
items:
oneOf:
- $ref: '#/components/schemas/reference'
- $ref: '#/components/schemas/document'
partyType:
oneOf:
- $ref: '#/components/schemas/reference'
- $ref: '#/components/schemas/party-type'
tags:
type: array
items:
oneOf:
- $ref: '#/components/schemas/taggging'
- $ref: '#/components/schemas/taggging-full'
complianceProfile:
oneOf:
- $ref: '#/components/schemas/reference'
- $ref: '#/components/schemas/compliance-profile'
- {}
customData:
type: array
items:
type: object
properties:
value:
type: string
customField:
oneOf:
- $ref: '#/components/schemas/reference'
- $ref: '#/components/schemas/custom-field'
deletedAt:
type:
- string
- 'null'
format: date-time
deletedBy:
oneOf:
- {}
- $ref: '#/components/schemas/reference'
externalIds:
type: object
x-stoplight:
id: zk87opteuie3w
taggging:
title: Tagging
type: object
properties:
type:
type: string
default: tags
id:
type: string
addedAt:
type: string
format: date
addedBy:
type: string
expiresAt:
type: string
x-stoplight:
id: 8xpna1blern8o
format: date
custom-data-update:
type: array
x-examples:
example-1:
- value: string
customField:
id: striangstringstringstring
x-internal: true
x-tags:
- input
items:
type: object
properties:
customField:
$ref: '#/components/schemas/reference-input'
value:
type:
- string
- number
required:
- customField
- value
response-status:
type: string
title: Response Status
enum:
- success
- fail
- error
readOnly: true
x-examples:
Success: success
description: The possible values are "success", "fail", and "error".
x-internal: true
contact:
title: Contact
type: object
x-examples:
Example Contact:
type: contacts
id: 60896067dd86e01e90199f43
name: Jane Smith
company: Acme Inc
email: jane.smith@example.com
phone: (555) 555-5555
fax: ''
title: Director
primary: true
defaultRequestRecipient: false
avatar: ''
party:
type: parties
id: 60896067dd86e01e90199f43
properties:
type:
type: string
default: contacts
readOnly: true
id:
type: string
readOnly: true
name:
type: string
company:
type: string
email:
type: string
phone:
type: string
fax:
type: string
title:
type: string
primary:
type: boolean
default: false
defaultRequestRecipient:
type: boolean
default: false
avatar:
type: string
party:
oneOf:
- $ref: '#/components/schemas/reference'
- $ref: '#/components/schemas/party'
externalId:
type: string
x-stoplight:
id: 07yyrzkup5tdk
document:
type: object
title: Document
x-examples:
Example document:
type: documents
id: 60a27c51fcd891823568ed35
issuedBy:
name: ''
address: ''
contactName: ''
phone: ''
email: ''
reviewedAt: '2019-08-24T14:15:22Z'
archivedAt: '2019-08-24T14:15:22Z'
notes: ''
status: processed
types:
- type: document-types
id: 60a27c517fd4e152a9642347
flag:
addedOn: '2019-08-24T14:15:22Z'
severityLevel: low
affectedSubjects:
- string
notes: ''
user:
id: 60a27c51fcd891823568ed24
type: users
appliesToAllProjects: true
expirationDate: '2019-08-24'
friendlyName: Acord25.pdf
data: {}
metadata: {}
updatedAt: '2019-08-24T14:15:22Z'
createdAt: '2019-08-24T14:15:22Z'
archivedBy:
id: 60a27c51fcd891823568ed24
type: users
reviewedBy: null
url: https://trustlayer-documents.s3.us-west-1.amazonaws.com/...
issueDate: '2019-01-22'
properties:
type:
type: string
default: documents
readOnly: true
id:
type: string
readOnly: true
issuedBy:
type: object
properties:
name:
type: string
address:
type: string
contactName:
type: string
phone:
type: string
email:
type: string
reviewedAt:
type: string
format: date-time
readOnly: true
archivedAt:
type: string
format: date-time
readOnly: true
notes:
type: string
status:
type: string
minLength: 1
readOnly: true
types:
type: array
uniqueItems: true
minItems: 0
items:
oneOf:
- $ref: '#/components/schemas/reference'
- $ref: '#/components/schemas/document-type'
flag:
type: object
properties:
addedOn:
type: string
format: date-time
severityLevel:
type: string
minLength: 1
enum:
- low
- medium
- high
affectedSubjects:
type: array
uniqueItems: true
items:
type: string
notes:
type: string
user:
oneOf:
- $ref: '#/components/schemas/reference'
- $ref: '#/components/schemas/user'
appliesToAllProjects:
type: boolean
expirationDate:
type: string
format: date
name:
type: string
minLength: 1
data:
type: object
metadata:
type: object
updatedAt:
type: string
format: date-time
readOnly: true
createdAt:
type: string
format: date-time
readOnly: true
archivedBy:
oneOf:
- $ref: '#/components/schemas/reference'
- $ref: '#/components/schemas/user'
- {}
reviewedBy:
oneOf:
- $ref: '#/components/schemas/reference'
- $ref: '#/components/schemas/user'
- {}
url:
type: string
insurers:
type: array
items:
type: object
properties:
id:
type: string
naic:
type: string
rating:
type: string
ratingEffectiveDate:
type: string
format: date-time
financialSizeCategory:
type: string
ratingModifier:
type: string
ratingAction:
type: string
ratingImplication:
type: string
extractedName:
type: string
canonicalName:
type: string
required:
- id
- naic
deletedAt:
type: string
format: date-time
deletedBy:
oneOf:
- $ref: '#/components/schemas/reference'
- $ref: '#/components/schemas/user'
issueDate:
type: string
format: date
readOnly: true
document-type:
description: ''
type: object
title: Document Type
x-examples:
Certificate of insurance:
type: document-types
id: 60a27c517fd4e152a9642347
name: Certificate of Insurance
system: true
pluralName: Certificates of Insurance
properties:
type:
type: string
default: document-types
readOnly: true
id:
type: string
name:
type: string
minLength: 1
system:
type: boolean
pluralName:
type: string
minLength: 1
required:
- id
- name
- system
- pluralName
custom-field-create:
title: custom-field-create
type: object
x-internal: true
x-tags:
- input
x-examples: {}
properties:
name:
type: string
minLength: 1
description:
type: string
color:
type: string
pattern: ^#[0-9a-f]{6}$
minLength: 7
maxLength: 7
example: '#ffa900'
fieldType:
type: string
enum:
- text
- number
- dropdown
source:
type: string
enum:
- branding
associatedEntities:
type: array
uniqueItems: true
items:
type: string
enum:
- party
- project
default: party
options:
type: array
minItems: 1
items:
type: string
required:
- name
- fieldType
compliance-status:
type: object
title: Compliance Status
properties:
complianceProfile:
$ref: '#/components/schemas/reference'
nextExpirationDate:
type:
- string
- 'null'
format: date-time
latestExpirationDate:
type:
- string
- 'null'
format: date-time
modules:
type: array
items:
type: object
properties:
id:
type: string
label:
type: string
status:
type: string
enum:
- compliant
- non_compliant
documents:
type: array
items:
$ref: '#/components/schemas/compliance-document'
documentsCount:
type: number
example: 1
subjects:
type: array
items:
type: object
properties:
id:
type: string
label:
type: string
status:
type: string
enum:
- compliant
- non_compliant
- waived
- overridden
notes:
type: string
effectiveDate:
type:
- string
- 'null'
format: date-time
expirationDate:
type:
- string
- 'null'
format: date-time
latestExpirationDate:
type:
- string
- 'null'
format: date-time
latestValidEffectiveDate:
type:
- string
- 'null'
format: date-time
latestValidExpirationDate:
type:
- string
- 'null'
format: date-time
documents:
type: array
items:
$ref: '#/components/schemas/compliance-document'
documentsCount:
type: number
resetOn:
type:
- string
- 'null'
format: date-time
requirements:
type: array
items:
type: object
properties:
id:
type: string
label:
type: string
moduleId:
type: string
moduleLabel:
type: string
subjectId:
type: string
subjectLabel:
type: string
attributeId:
type: string
attributeLabel:
type: string
attributeDescription:
type: string
matchingCriteria:
type: string
enum:
- matchOnce
- matchRepeatedly
operator:
type: string
enum:
- must be present
- must be greater or equal to
- must be less or equal to
- must be completed by
- at least one must be present from list
targetValue:
type: string
value:
type: string
status:
# --- truncated at 32 KB (42 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/trustlayer/refs/heads/main/openapi/trustlayer-custom-fields-api-openapi.yml