TrustLayer custom-fields API

The custom-fields API from TrustLayer — 4 operation(s) for custom-fields.

Operations 6

PATCH /projects/{projectId} Update a custom field #
GET /custom-fields List custom fields #
POST /custom-fields Create a new custom field #
PATCH /custom-fields/{fieldId} Update a custom field #
DELETE /custom-fields/{fieldId} Delete a custom field #
PATCH /parties/{partyId}/custom-data Update party custom data #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/trustlayer-custom-fields-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

trustlayer-custom-fields-api-openapi.yml Raw ↑
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