Takeoff API for construction platforms

Add quantity takeoff to your platform in a sprint.

Post a drawing set. Get back walls, doors, windows and spaces as structured JSON with real-world measurements, rendered in your viewer, under your brand, billed by the page.

Request a sandbox key

Read the docs →

Opens an email. Keys are issued by hand, same working day.

Async + signed webhooks

Versioned schema

We never sell to your users

request

response

webhook

POST

/v1/takeoffs

Authorization: Bearer sk_live_…

Idempotency-Key: bid-4471

{

"source"

: {

"type"

:

"uploaded_file"

,

"file_id"

:

"file_01h…"

},

"options"

: {

"output"

: [

"detections"

,

"metrics"

],

"pages"

:  [

3

],

"units"

:

"imperial"

},

"webhook_url"

:

"https://you.com/hooks/qt"

}

Why platforms pick an engine

We don't ship an app that competes with you.

There is no QuantTakeOff seat for an estimator to buy, no dashboard for your customer to log into, and no logo in your interface. The only way to use this is through your product.

You keep the customer

No end-user product, no seats sold into your accounts, no attribution in your UI. Contractually, not just currently.

You keep the interface

Geometry returns in page-pixel space against a stated image size. You render it in the viewer you already built.

You keep the data

Private buckets, signed URLs, no training on partner drawings, deletion on request with a dated confirmation.

Integration

Upload, create, receive.

No SDK to adopt and no callback ordering to reverse-engineer. Signed uploads keep large drawing sets out of your request path.

Step 01

Get an upload URL

Declare the file, PUT it straight to private storage. Multipart works too, under 25 MiB.

POST /v1/uploads

→ upload_url, file_id

Step 02

Create the takeoff

Pick pages, units, and outputs. Pin a region if your user already drew one.

POST /v1/takeoffs

→ id, status: "queued"

Step 03

Receive the result

Signed webhook on completion, or poll. Results and assets by signed URL.

takeoff.succeeded

→ GET …/results

The response

Detections, metrics, assets.

One object per page, in that page's pixel space, with the image size you measure against. Metrics roll up across the set in metric or imperial.

page_index 0 · image_size 2480 × 3508

"pages"

: [{

"page_index"

:

0

,

"image_size"

: {

"width"

:

2480

,

"height"

:

3508

},

"scale"

: {

"meters_per_pixel"

:

0.0169

},

"detections"

: [{

"id"

:

"det_001"

,

"class_name"

:

"wall"

,

"score"

:

0.96

,

"bbox": [120.0, 80.0, 620.0, 115.0],

"coordinate_space": "page_pixels"

}]

}],

"metrics": {

"wall_count": 37,

"gross_floor_area_m2": 142.3,

"total_wall_length_m": 91.4

}

Accuracy

Up to 98% accuracy on walls, doors and windows.

Measured as the share of detections an estimator accepts without correcting the geometry or the class. Element-wise figures, broken out per class and per drawing type, follow when that run is complete.

Built for production

The boring parts are done.

Safe retries

Retry a submission after a timeout without risking a duplicate job or a duplicate charge.

Signed webhooks

Every callback is signed and replay-protected, so you can verify it came from us before you act on it.

Explicit job states

A job reports a state you can render directly in your own UI. Cancellable mid-flight, pollable throughout.

Page selection

Send the whole set, process the pages you need. Only those render, so you pay for what you asked for.

Region pinning

Your user drags a box in your viewer; detection stays inside it.

Versioned schema

Every result is versioned, and breaking changes are dated and announced before they land.

Signature construction, state names, error semantics and field-level schema are in the docs.

Pricing

Metered by the page. Cheaper as you grow.

Sandbox

Free

100 pages a month · no card

Full schema, full outputs, rate-limited. Test with your own drawings before any commercial conversation.

Request a key

Growth

Contact sales

per-page rate · monthly minimum

Production keys, webhooks, all outputs. Volume discounts apply automatically at each tier.

Contact sales

Platform

Custom

committed volume · annual

Rate card by volume, uptime SLA, reserved GPU capacity, region choice, DPA and security review.

Talk to engineering

A page is one rendered sheet you asked us to process. Unrequested pages in a PDF are never charged. 3D reconstruction and generated reports are priced as separate line items.

Data handling

Your customers' drawings stay your customers'.

Partner data is never used for training. Not by default, not with opt-out, not at all.

Full detail, subprocessor list and DPA on the security page →

No training on partner data

Written into the agreement, not a settings toggle.

Private storage, signed access

Buckets are never public. Every result URL is short-lived and scoped.

Deletion on request

Per job or per customer, with a dated confirmation you can pass on.

Scoped keys and audit trail

Keys are hashed at rest. Every job is attributed to a customer.

Send us a drawing set and see what comes back.

Ask for a sandbox key and one comes back the same working day. If you'd rather start by asking whether this fits your stack, that's a conversation with an engineer, not a demo.

QuantTakeOff

Quantity takeoff infrastructure for construction software platforms.

Product

Pricing

Security

Outputs

Accuracy

Company

Subprocessors

© 2026 QuantTakeOff