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": 0,
"product_id": "19923123", // not exist for custom price items
"sku": "sku1", // not exist for custom price items
"price": 3.5, // not exist for custom price items
"cost": 5,
"unit": "FT", // not exist for custom price items
"price_part_items": [
{
"name": "Option A",
"price_part_name": "Material",
"sku": "MAT-001",
"price": 10,
"cost": 5,
"quantity": 2,
"unit": "EA"
}
]
},
{
"name": "product2",
"description": "Custom item description",
"quantity": 32.57,
"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
},
{
"name": "b",
"total": 30
}
],
"total": 250
}
ParameterDefaultInDescription
drawing_version_idOptional[String]queryThe ID of the drawing version
NameTypeDescription
line_itemsList[LineItem]All product line items
subtotalNumberThe subtotal of all items before discounts and markups
discountNumberThe total amount of discount applied
discount_descriptionStringDescription or reason for the discount
markupNumberThe total amount of markup added
markup_descriptionStringDescription or reason for the markup
taxesList[TaxItem]All taxes applied
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
totalNumberItem total after discounts and markup applied
priceNumber?Item total before discounts and markup applied; not provided for custom price items
costNumber?Item cost
skuString?The stock keeping unit of the product; not provided for custom price items
unitString?The unit of measurement for the product’s quantity; not provided for custom price items
product_idString?The ID 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
skuStringThe sku of price part option
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

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"
ParameterDefaultInDescription
drawing_version_idOptional[String]queryThe ID of the drawing version

The response schema is identical to Get Proposal Line Items, where line_items contains only the items not included in the proposal.

Get takeoff items by drawing id.

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://cdn-files-1-test.arcsite.com/36029346774973628/282299611419718/282299611419728/F4AF22A9-F011-4214-8729-CAF3F1F9D9F6.jpg?Expires=1711452610&Signature=sQz~sNF6xPGRPTvPBKyyXgKlA6jh0VSM6mXVpJ63XgYdCE1gat-nT~ZDXtcm~jEoK46UnUWU1ZlXPAiDx5IPwV25X1-pSb~jbXwdlkcz2jPkZPUN-ZWdaCvbMgTLJRvQw-V2RiUyrF83O5GLhJMVut8lfqsGjN3dgh5AtUc53h05dGRYbW-h-d6ItuSbebOTeZSXr8PCSl~n59wgfMRa5DdEilILGNZvGpM2kMaesHYBTiXfv1Z40Fv9rmRa~TLR~tefuEPDpkJWud4aAw7t1GTCSyaeXKL23fELMu~CTWMKvQ-TOqfBsbtBiEzUkrl67qgzDUD1HGimpZ3qweyf-w__&Key-Pair-Id=APKAIZL6W5TJO2AK7DOQ"
],
"type": "PHOTO"
},
{
"name": "start_date",
"value": "2024-03-25T09:36:42.031Z",
"type": "DATE"
}
]
}
]
}
]
}
ParameterDefaultInDescription
drawing_version_idOptional[String]queryThe ID of the drawing version
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
skuStringThe stock keeping unit of the product
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. But for shape or virtual products, the quantity is always just one.
sequence_numberStringSequence Number for Shape product
unitStringThe input unit defined by the product
attributesList[TakeoffAttribute]The attributes of of the item
NameTypeDescription
typeStringThe type of the attribute. Can be one of “TEXT”, “PHOTO”, “CHECKBOX”, or “DATE”.
valueString, List[String], Boolean(optional) The value of the attribute. The type of this field depends on the type field:
- If type is “TEXT”, value is a string.
- If type is “PHOTO”, value is a list of photo URLs.
- If type is “CHECKBOX”, value is a boolean.
- If type is “DATE”, value is a string in ISO format.