Skip to content

Product Items

You can get product items from a drawing with the following APIs.

  • Proposal Items: Product items can be fetched in the way that we generate Product List of Proposal PDF.

Export Proposal

Export Proposal Sample

  • Excluded Items: Product items that are marked as not included in the proposal.

  • Takeoff Items: Product items can be fetched in the way that we generate Takeoff report in Excel format.

Export Takeoff

Export Takeoff Sample

Get line items by drawing id.

GET https://api.arcsite.com/v1/drawings/<id>/line_items

Terminal window
curl "https://api.arcsite.com/v1/drawings/<ID>/line_items" \
-H "Authorization: Bearer your_api_token_here"
Response
{
"line_items": [
{
"name": "product1",
"description": "Product 1 description",
"quantity": 2.26,
"total": 2.26,
"product_id": "19923123",
"sku": "sku1",
"price": 3.5,
"cost": 5,
"unit": "Feet",
"price_part_items": [
{
"name": "Option A",
"price_part_name": "Material",
"sku": "MAT-001",
"price": 10,
"cost": 5,
"quantity": 2,
"unit": "Each"
}
]
},
{
"name": "product2",
"description": "Custom item description",
"quantity": 1,
"total": 128.98,
"cost": 200
}
],
"subtotal": 131.24,
"discount": -31.24,
"discount_description": "discount reduce",
"markup": 100,
"markup_description": "extra fee",
"taxes": [
{
"name": "a",
"total": 20,
"tax_rate": 8.0
},
{
"name": "b",
"total": 30,
"tax_rate": 12.0
}
],
"total": 250,
"drawing_version_id": "36029621652695100"
}
ParameterTypeInDescription
drawing_version_idString (optional)queryThe ID of the drawing version. A version of another drawing returns 404.
NameTypeDescription
line_itemsList[LineItem]All product line items
subtotalNumberSum of the line item totals (after per-product adjustments) and custom items, before order-level markups, discounts and taxes. If your organization’s minimum job price is higher, this is the minimum price
discountNumberThe total order-level discount, as a negative number (0 if none)
discount_descriptionString?Description of the discount; null if there is no discount. Empty when several discounts, or a fixed-amount discount, are combined
markupNumberThe total amount of markup added (0 if none)
markup_descriptionString?Description of the first markup; null if there is no markup
taxesList[TaxItem]All taxes applied
totalNumberThe grand total after markups, discounts and taxes
drawing_version_idStringThe version id of the drawing
NameTypeDescription
nameStringThe name of the product
descriptionString?The description of the product (or of the custom price item)
quantityNumberThe quantity of the product (not rounded). Always 1 for custom price items
totalNumberItem total after discounts and markup applied
priceNumber?Item total before discounts and markup applied; not provided for custom price items
costNumberTotal cost of the line (unit cost × quantity)
skuString?The stock keeping unit of the product (may be null); not provided for custom price items
unitString?The unit of measurement for the product’s quantity, e.g. Feet, SQ_Feet, CU_Yards, Each, Hour, or a custom unit name; not provided for custom price items
product_idString?The ID of the current version of the product; not provided for custom price items
price_part_itemsList[PricePartItem]?Detail of price part items; not provided for custom price items
NameTypeDescription
nameStringThe name of price part option
price_part_nameStringThe name of the price part
skuString?The sku of price part option (may be null)
priceNumberThe total price of price part option
costNumberThe total cost of price part option
quantityNumberThe total quantity of price part option
unitStringThe final unit of price part option
NameTypeDescription
nameStringThe name of the tax
totalNumberThe total amount of tax
tax_rateNumberThe tax rate in percent (e.g. 8.0 means 8%)

Get line items that are not included in the proposal by drawing id.

GET https://api.arcsite.com/v1/drawings/<id>/excluded_line_items

Terminal window
curl "https://api.arcsite.com/v1/drawings/<ID>/excluded_line_items" \
-H "Authorization: Bearer your_api_token_here"
ParameterTypeInDescription
drawing_version_idString (optional)queryThe ID of the drawing version. A version of another drawing returns 404.

The response schema is identical to Get Proposal Line Items, where line_items contains only the items not included in the proposal. Custom price items are never part of this response, and subtotal, markup, discount, taxes and total are calculated over the excluded items only.

Get takeoff items by drawing id. Only items included in the proposal are returned; see Get Excluded Line Items for the others.

GET https://api.arcsite.com/v1/drawings/<id>/takeoff_items

Terminal window
curl "https://api.arcsite.com/v1/drawings/<ID>/takeoff_items" \
-H "Authorization: Bearer your_api_token_here"
Response
{
"takeoff_items": [
{
"name": "with attributes",
"quantity": 300,
"unit": "Amount",
"sku": "GM-100",
"product_id": "287386775856064026",
"items": [
{
"quantity": 1,
"unit": "Each",
"sequence_number": "1",
"attributes": [
{
"name": "cc",
"value": null,
"type": "TEXT"
},
{
"name": "d",
"value": "Some text",
"type": "TEXT"
},
{
"name": "yesno",
"value": true,
"type": "CHECKBOX"
},
{
"name": "photo",
"value": [
"https://files.example.com/photos/F4AF22A9-F011-4214-8729-CAF3F1F9D9F6.jpg?Expires=1700000000&Signature=EXAMPLE&Key-Pair-Id=EXAMPLEKEYPAIR"
],
"type": "PHOTO"
},
{
"name": "start_date",
"value": "2024-03-25T09:36:42.031Z",
"type": "DATE"
}
]
}
]
}
]
}
ParameterTypeInDescription
drawing_version_idString (optional)queryThe ID of the drawing version. A version of another drawing returns 404.
NameTypeDescription
takeoff_itemsList[TakeoffItemByProduct]Takeoff items group by product
NameTypeDescription
nameStringThe name of the product
quantityNumberThe total quantity of the product
unitStringThe unit of measurement for the product’s quantity
skuString?The stock keeping unit of the product (may be null)
product_idStringThe ID of the product
itemsList[TakeoffItem]The takeoff items of the product
NameTypeDescription
quantityNumberFor geometric products, we use the quantity shown in the drawing. For shape or virtual products, the quantity is one, unless the product applies a quantity modifier, in which case the modified quantity and unit are returned.
sequence_numberStringSequence number of the shape on the drawing; an empty string for non-shape products
unitStringThe input unit defined by the product
attributesList[TakeoffAttribute]The attributes of the item
NameTypeDescription
nameStringThe name of the attribute
typeStringThe type of the attribute. Can be one of “TEXT”, “PHOTO”, “CHECKBOX”, or “DATE”. Paragraph and dropdown attributes are reported as “TEXT”.
valueString, List[String], Boolean(optional) The value of the attribute, or null when it isn’t set. The type of this field depends on the type field:
- If type is “TEXT”, value is a string, or a list of strings for a multi-select dropdown.
- If type is “PHOTO”, value is a list of photo URLs (an empty list when there are none). The URLs expire in 24 hours.
- If type is “CHECKBOX”, value is a boolean.
- If type is “DATE”, value is a string in ISO format.