Welcome to the Coperniq API release notes. This section highlights noteworthy changes across endpoints, schemas, and docs.
Recent highlights
- New: AHJs —
GET /ahjs(search, filter, andlat+lnggeo lookup),GET /ahjs/{id}, andPATCH /ahjs/{id}to update custom property values. v2 mirrors these under/v2with the standard success envelope. - Updated:
GET /properties— now documents theahjrecord type (custom AHJ properties only) and adds anisCustomboolean to every property to distinguish custom columns from built-in standard ones. - New: Sections — line items on projects, invoices, and bills can now be grouped into named
sections(matching quotes and work orders); read responses exposesectionNameper line item. - New: Vendors — full CRUD via
GET/POST /vendors,GET/PATCH/DELETE /vendors/{vendorId},GET /vendors/search, and many-to-many project linking viaPOST/DELETE /projects/{projectId}/vendors/{vendorId}. Vendor-specific fields:vendorType(enum),website, andprojectIds. - New: Labels —
GET /labels(filter bytype),POST /labels,GET /labels/{labelId}.typeisWORK(work orders) orASSET. v2 mirrors these under/v2with the standard success envelope. - New: Assets —
GET /assets(filter byaccount_id),POST /assets,GET/PATCH /assets/{assetId}(setisArchived: truevia PATCH to archive). v2 mirrors these under/v2with the standard success envelope.
Looking for a specific date? See the entries below.
Bills
New: Bills endpoints
You can now create, read, update, and delete bills on projects via the public API.
Bills support two calculation methods:
LINE_ITEMS— itemised bill with one or more line items. Each line item requirescatalogItemId,quantity,unitCost(must be > 0), andunitPrice(may be negative for discounts).PERCENTAGE— percentage of the project’s base amount (0–100).
Create a LINE_ITEMS bill
Create a PERCENTAGE bill
Business rules
calculationMethodcannot be changed after creation.PERCENTAGEbills cannot haveissueDateorstatus.LINE_ITEMSbills: whenissueDateis provided,statusmust also be provided and must not beDRAFT.unitCostmust be greater than 0 for all line items.percentagemust be between 0 and 100.
Nullable fields on project, account, and client updates
Improvement: Clear fields by passing null
You can now explicitly clear nullable fields on projects, accounts, and clients by passing null in a PATCH request. Previously, null values were ignored and the existing value was left unchanged.
This applies to the following endpoints:
PATCH /projects/{projectId}PATCH /accounts/{accountId}PATCH /clients/{clientId}
Clearable fields
Custom properties (via the custom object) can also be cleared by passing null for any key.
Example
This will clear description, unassign the owner, and clear the pud_incentive custom property on the project.
Omitting a field entirely still leaves the existing value unchanged.
