Datasets · Buildertrend
Buildertrend Purchase Orders Dataset
Purchase orders with their job, sub/vendor, approval and payment status, and cost.
- Record type
buildertrend:purchaseOrders - Read it with List records, or the MCP tool list_dataset_records.
Request
curl -G https://api.clickr.cloud/v2/datasets/{datasetId}/records \
-H "Authorization: Bearer $CLICKR_API_KEY" \
--data-urlencode "limit=10"const response = await fetch(`https://api.clickr.cloud/v2/datasets/{datasetId}/records?${new URLSearchParams({
"limit": "10"
})}`, {
headers: {
Authorization: `Bearer ${process.env.CLICKR_API_KEY}`,
},
});
const data = await response.json();import os
import requests
response = requests.get(
"https://api.clickr.cloud/v2/datasets/{datasetId}/records",
headers={"Authorization": f"Bearer {os.environ['CLICKR_API_KEY']}"},
params={
"limit": "10"
},
)
data = response.json()Record
{
"purchaseOrderId": "7400001",
"poNumber": "PO-0422-001",
"builderId": "48213",
"jobId": "7310422",
"jobName": "Ortega Kitchen Remodel",
"title": "Plumbing fixtures",
"approvalStatus": 2,
"approvalStatusText": "Approved",
"workStatus": 1,
"workStatusText": "Not Complete",
"paidStatus": 1,
"paidStatusText": "Not Paid",
"cost": 1800,
"amountPaid": 0,
"amountRemaining": 1800,
"percentPaid": 0,
"percentRemaining": 100,
"percentBilled": 0,
"performingUserName": "Foothill Fixture Supply",
"costCodes": [
"Plumbing"
],
"estCompleteDate": "2026-11-18T00:00:00",
"dateAdded": "2026-10-15T10:15:00",
"dateLastModified": "2026-10-15T10:15:00",
"createdBy": "Jordan Pike",
"createdById": "6120402",
"fromEstimate": false,
"isBill": false,
"attachedFileCount": 0,
"commentCount": 0,
"rfiCount": 0,
"isDeleted": false
}From the sample builder, Halvorsen & Styke.
Ask Claude or ChatGPT about the same records: add https://api.clickr.cloud/mcp/playground as a connector, with no sign-in. Try it on a sample builder ›
Fields
Every field a record can carry. Filter and sort on them by name, as in filter[jobName][contains]=patel. A field without a value can be missing from a record.
purchaseOrderIdstringBuildertrend's id for the purchase order, unique across the account.
poNumberstringThe PO number shown in Buildertrend, such as PO-P0259-2459.
externalIdstringAn external identifier Buildertrend sends with the purchase order.
builderIdstringBuildertrend's id for the builder account.
jobIdstringBuildertrend's id for the job the purchase order is on. Joins to the Buildertrend Jobs Dataset.
jobNamestringThe job's name in Buildertrend.
titlestringThe purchase order's title, which says what was bought.
hasAmendmentbooleanWhether Buildertrend marks the purchase order as amended.
approvalStatusnumberBuildertrend's code for where the purchase order sits between the builder and the sub/vendor. No vocabulary is published, so read approvalStatusText.
approvalStatusTextstringBuildertrend's own label for the approval status, such as Draft.
approvalNotestringAdditional information Buildertrend shows with the approval status.
approvalUserstringWho the purchase order currently sits with, the sub/vendor once it has been sent. Absent on a draft.
isRecalledbooleanWhether Buildertrend marks the purchase order as recalled.
workStatusnumberBuildertrend's code for whether the work is done, which is independent of approval and payment. Read workStatusText for the label.
workStatusTextstringBuildertrend's own label for the work status, such as Not Complete.
paidStatusnumberBuildertrend's code for the payment status. Read paidStatusText for the label.
paidStatusTextstringBuildertrend's own label for the payment status, such as Not Paid or Paid.
paymentRequestedbooleanTrue when the sub/vendor has asked to be paid. It does not mean the builder has paid.
costnumberThe purchase order's cost, in the account's own currency (351.7 means 351.70).
amountPaidnumberHow much has been paid against the purchase order.
amountRemainingnumberHow much of the purchase order's cost is still unpaid.
percentPaidnumberBuildertrend's percentage of the purchase order that has been paid.
percentRemainingnumberBuildertrend's percentage of the purchase order that is still unpaid.
percentBillednumberBuildertrend's percentage of the purchase order that has been billed.
performingUserNamestringThe sub/vendor the purchase order is issued to.
performingUserIdstringBuildertrend's id for the sub/vendor the purchase order is issued to.
costCodesarray of stringsThe purchase order's cost codes as Buildertrend displays them, each a code followed by its name, not ids.
builderVarianceCodesarray of stringsThe builder variance codes on the purchase order, as Buildertrend displays them rather than ids.
ownerVarianceCodesarray of stringsThe owner variance codes on the purchase order, as Buildertrend displays them rather than ids.
estCompleteDatestringThe estimated completion date for the purchase order's work.
dateAddedstringWhen the purchase order was added in Buildertrend.
dateLastModifiedstringWhen the purchase order was last edited. Absent if it has never been edited.
createdBystringThe name of the Buildertrend user who created the purchase order.
createdByIdstringBuildertrend's user id for whoever created the purchase order.
fromEstimatebooleanWhether the purchase order was created from an estimate.
isBillbooleanTrue when the purchase order has been turned into a bill.
isOriginatedFromAccountingbooleanTrue when the purchase order originated in the accounting system rather than in Buildertrend.
attachedFileCountnumberHow many files are attached to the purchase order. The files themselves are not in this dataset.
commentCountnumberHow many comments the purchase order has.
rfiCountnumberHow many RFIs (requests for information) are linked to the purchase order.
isDeletedbooleanTrue once the purchase order has been deleted in Buildertrend, never because the work finished. Clickr keeps the record so you can see it went.
deletedAtdate and timeWhen Clickr saw the purchase order removed.