Core API – Query & Schema Contract Changes


Summary

Introduces several contract changes across Core controllers, including new POST-based query patterns, field removals from related objects, and nullability updates. Some of these changes are backwards incompatible and may require client updates.


Changes

Core

  • Client controller

    • typelifecycle
    • Type: breaking
    • Notes: The type field has been renamed to lifecycle. Clients referencing type must update to the new field name.
  • Client controller

    • longitude, latitude non-nullable → nullable
    • Type: behavior-change
    • Notes: Location fields may now be omitted or returned as null.
  • Contact controller

    • GET query → POST-based querying
    • Type: breaking
    • Notes: Querying by email, phone, and name fields (first, middle, last, full) must now be provided in the POST request body.
  • Contract controller

    • Contact fields removed
    • Type: breaking
    • Notes: name and email have been removed from the embedded contact object.
  • Hardware Asset controller

    • Contact fields removed
    • Type: breaking
    • Notes: name and email have been removed from the embedded contact object.
  • Member controller

    • GET query → POST-based querying
    • Type: breaking
    • Notes: Querying by email, phone, and name fields (first, middle, last, full) must now be provided in the POST request body.
  • Member controller

    • reports_to_member fields removed
    • Type: breaking
    • Notes: name and email have been removed from reports_to_member.
  • Opportunity controller

    • Contact fields removed
    • Type: breaking
    • Notes: name and email have been removed from the embedded contact object.
  • Opportunity controller

    • responsible_member.name removed
    • Type: breaking
    • Notes: Consumers must rely on IDs or related lookups for responsible member details.
  • SaaS User controller

    • Contact fields removed
    • Type: breaking
    • Notes: name and email have been removed from the embedded contact object.
  • Ticket controller

    • owner_member.name removed
    • Type: breaking
  • Ticket controller

    • responsible_member.name removed
    • Type: breaking
  • Ticket controller

    • Contact fields removed
    • Type: breaking
    • Notes: name and email have been removed from the embedded contact object.
  • Ticket controller

    • status removed from contract
    • Type: breaking
    • Notes: status has been removed from the embedded contract object.
  • Ticket controller

    • board.id non-nullable → nullable
    • Type: behavior-change
  • Ticket controller

    • Timeline fields non-nullable → nullable
    • Type: behavior-change
    • Notes: timeline.created_at and timeline.updated_at may now be returned as null.

Dates

  • Effective: [2026-01-28]

Summary

The Core API documentation now explicitly lists supported enum values across multiple endpoints and resources. This improves discoverability, reduces guesswork, and helps API consumers validate inputs and handle responses correctly.


Changes

Core

  • GET /core/v1/integrations/vendors

    • Strings → Explicit enums
    • Type: fix
    • Notes: The following fields now list supported values in the schema:
      • category:
        • PSA
        • RMM
        • SaaS
        • Network
        • Documentation
        • Backup
        • Customer Satisfaction
        • Cybersecurity
        • PSA & RMM
      • data_types_supported[]:
        • CLIENT
        • CONTRACT
        • CONTACT
        • HARDWARE_ASSET
        • MEMBER
        • OPPORTUNITY
        • SAAS_ASSET
        • SAAS_USER
        • TICKET
  • GET /core/v1/integrations/configurations

    • Array of strings → Enum values
    • Type: fix
    • Notes: The following field now lists supported values:
      • primary[]:
        • CLIENT
        • CONTRACT
        • CONTACT
        • HARDWARE_ASSET
        • MEMBER
        • OPPORTUNITY
        • SAAS_ASSET
        • SAAS_USER
        • TICKET
  • GET /core/v1/service/contracts

    • Strings → Explicit enums
    • Type: fix
    • Notes: Contract models now expose supported values for:
      • status:
        • SUSPENDED
        • EXPIRED
        • ACTIVE
        • DRAFT
        • SENT
        • SIGNED
        • NOT_EXECUTED
        • CANCELLED
      • type:
        • MANAGED_SERVICES
        • BLOCK
        • 3RD_PARTY
        • UNASSIGNED
      • contract_pricings[].status:
        • ACTIVE
        • INACTIVE
        • CANCELLED
        • EXPIRED
      • contract_pricings[].pricing_type:
        • UNKNOWN
        • UNIT
        • ALLOCATION
      • contract_pricings[].unit_type:
        • TICKET
        • HOURS
        • PRODUCT
        • RECURRING
      • contract_pricings[].recurrent_charge_frequency:
        • NOT_CHARGED
        • ONE_TIME
        • ANNUAL
        • SEMI_ANNUAL
        • QUARTERLY
        • BI_MONTHLY
        • MONTHLY
        • BI_WEEKLY
      • contract_term.billing_period:
        • NOT_BILLED
        • ONE_TIME
        • ANNUAL
        • SEMI_ANNUAL
        • QUARTERLY
        • BI_MONTHLY
        • MONTHLY
        • BI_WEEKLY
        • WEEKLY
  • GET /core/v1/service/tickets

    • Strings → Explicit enums
    • Type: fix
    • Notes: Ticket models now expose supported values for:
      • category:
        • INCIDENT
        • NETWORK_INCIDENT
        • FIREWALL_INCIDENT
        • ROUTER_INCIDENT
        • WIFI_INCIDENT
        • CONNECTIVITY_INCIDENT
        • SERVER_INCIDENT
        • HARDWARE_INCIDENT
        • WORKSTATION_INCIDENT
        • SHARED_PERIPHERAL_INCIDENT
        • MOBILE_DEVICE_INCIDENT
        • STORAGE_INCIDENT
        • SOFTWARE_INCIDENT
        • CLIENT_SOFTWARE_INCIDENT
        • SERVER_SOFTWARE_INCIDENT
        • COMMUNICATION_SYSTEM_INCIDENT
        • PHONE_SYSTEM_INCIDENT
        • MESSAGING_SYSTEM_INCIDENT
        • VIDEO_CONFERENCING_INCIDENT
        • SERVICE_REQUEST
        • NETWORK_SERVICE_REQUEST
        • FIREWALL_SERVICE_REQUEST
        • ROUTER_SERVICE_REQUEST
        • WIFI_SERVICE_REQUEST
        • CONNECTIVITY_SERVICE_REQUEST
        • SERVER_SERVICE_REQUEST
        • HARDWARE_SERVICE_REQUEST
        • WORKSTATION_SERVICE_REQUEST
        • SHARED_PERIPHERAL_SERVICE_REQUEST
        • MOBILE_DEVICE_SERVICE_REQUEST
        • STORAGE_SERVICE_REQUEST
        • SOFTWARE_SERVICE_REQUEST
        • CLIENT_SOFTWARE_SERVICE_REQUEST
        • SERVER_SOFTWARE_SERVICE_REQUEST
        • COMMUNICATION_SYSTEM_SERVICE_REQUEST
        • PHONE_SYSTEM_SERVICE_REQUEST
        • MESSAGING_SYSTEM_SERVICE_REQUEST
        • VIDEO_CONFERENCING_SERVICE_REQUEST
        • SECURITY
        • SECURITY_AUDIT
        • SECURITY_INCIDENT
        • SECURITY_SERVICE_REQUEST
        • SECURITY_TRAINING
        • OTHER
        • TRAINING
        • MEETING
        • CONSULTING
        • PROJECT
        • MAINTENANCE
        • DOCUMENTATION
        • OTHER_SERVICE_REQUEST
        • MANAGEMENT
        • ALERT
        • SERVICE
        • BILLING
        • ACCOUNT
        • CHANGE
        • OTHER_INCIDENT
        • DEVICE
        • VENDOR
      • status.current and status history:
        • NEW
        • ASSIGNED
        • SCHEDULED
        • TRIAGE
        • IN_PROGRESS
        • WAITING_CLIENT
        • WAITING_VENDOR
        • CANCELLED
        • COMPLETED
        • CLOSED
        • REOPENED
        • ESCALATED
        • CLIENT_RESPONDED
        • UNASSIGNED
      • priority.current and priority history:
        • 1
        • 2
        • 3
        • 4
        • 5
        • UNASSIGNED
  • GET /core/v1/assets/hardware

    • Strings → Explicit enums
    • Type: fix
    • Notes: Hardware Asset models now expose supported values for:
      • type:
        • WORKSTATION
        • IMAGING
        • SERVER
        • NETWORK
        • MOBILE
        • VIRTUAL
      • software.antivirus.status:
        • UNKNOWN
        • DISABLED
        • RUNNING
      • software.antivirus.definition_status:
        • OUTOFDATE
        • UNKNOWN
        • UPTODATE
  • GET /core/v1/assets/saas

    • Strings → Explicit enums
    • Type: fix
    • Notes: SaaS Asset models now expose supported values for:
      • pool.type:
        • SEAT

Dates

  • Effective: 2026-01-14

Core API - Integration Metadata & Record Lineage


Summary

Adds new integration metadata endpoints, introduces record_lineage on key Core resources, and expands filtering support with the cont operator.


Changes

Core

  • GET /core/v1/integrations/configurations

    • N/A → Available
    • Type: addition
    • Notes: Lists integration configurations associated with the MSP.
  • GET /core/v1/integrations/vendors

    • N/A → Available
    • Type: addition
    • Notes: Lists supported integration vendors.
  • record_lineage (clients, contacts, members, contracts, opportunities)

    • Not returned → Returned
    • Type: addition
    • Notes: Optional field providing source record and integration metadata.
  • Filtering operator cont

    • Not supported → Supported
    • Type: behavior-change
    • Notes: Enables partial string matching on supported filterable fields. At least three characters required.

Dates

  • Effective: 2025-12-16