export_takeoff
Export the complete takeoff annotations payload as JSON for import into OpenTakeoff, returned inline or written to a file path.
Instructions
The full "opentakeoff.takeoff_canvas.v1" annotations payload — exactly what the app autosaves, importable by it. Returned inline; pass path to also write it to disk as JSON. Coordinates are image px at render scale 2.0: PDF pt × 2, origin top-left, y down (the browser canvas's native space). Sheet payloads carry dims in both px and pt.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | File path to write the payload to | |
| overwrite | No | Replace the file at path even when it is not an OpenTakeoff export. Off by default: re-exporting over a previous export of your own already overwrites without this, so you only need it to deliberately destroy an unrelated file. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| rfis | No | Live RFI records; withdrawn tombstones are omitted | |
| units | No | Present only for a metric project; absent means imperial — the app's own diff-only convention | |
| schema | Yes | ||
| shapes | Yes | ||
| sheets | Yes | ||
| markups | Yes | ||
| approvals | No | Approval-family records (#176) — the estimator's APPROVED seals and the agent's verdict marks {id, actor, ts, sheet_id, at:[nx,ny], shape_id?, text?}. Present only when any exist (the canvas payload's own convention), so a verdict-free export stays byte-identical | |
| proposals | No | Proposal batches (#365) — present only when any exist. Shapes reference them by origin.proposal_id; the canvas shows one Accept per batch | |
| conditions | Yes | ||
| last_group | Yes | ||
| sheet_tabs | Yes | ||
| sheet_group | Yes | ||
| project_name | Yes | ||
| sheet_levels | No | Present only when a sheet carries a level label (the app omits it when empty) | |
| condition_edit_proposals | No | Pending condition-edit diffs (#365) — present only when any exist. Nothing on the condition changes until the estimator accepts in the canvas |