
The base URL is:
https://takeoff.kreo.net/api/general/v1/takeoff2DAll requests require your API key in the X-API-KEY header (see Getting Started with the Kreo API for how to create one).
The API follows a logical sequence from raw files to structured measurement data:
Upload files — send raw documents to Kreo's servers.
Create a project — initialize a project workspace from the uploaded files.
Extract data — query the project for file details, groups, and measurements.
Export to PDF — generate a processed PDF with measurements rendered on the drawings.
POST /upload accepts one or more files as multipart form data (files field) and returns an array of file keys. Supported formats: PDF, CAD (DWG, DXF, DWF, DGN), and images (PNG, TIFF, JPG, JPEG, BMP, EMF, GIF). Files must have valid extensions in their names.
POST /project creates a project from the uploaded files:
{
"fileKeys": ["key-1", "key-2"],
"name": "My Project"
}Unlike the AI Search API, a Core Platform project can contain multiple files, each with multiple pages. The response contains the projectId.
GET /projects/{projectId}/files returns the files in the project with their processing status (Ready, Calculating, or Failed) and their pages. Each page includes its UUID, name, page index, dimensions, scale coefficient, and a hasMeasurements flag so you can quickly find pages with takeoff data. Note that the pages list may be empty while a file is still Calculating.
GET /projects/{projectId}/groups returns the group (folder) structure of the project. Each group has a UUID, name, color, order index, an optional parent group, and the list of measurement UUIDs it contains — enough to rebuild the full takeoff tree exactly as it appears in Kreo.
GET /projects/{projectId}/measurements returns every measurement in the project. Each measurement includes:
Identity: UUID, name, the group it belongs to, and the page it's drawn on
Style: color, stroke style (Normal, Dashed, DashDoted), and stroke width
Geometry: the type (Areal, Linear, or Countable) and the points as [x, y] pairs
Quantities: area, perimeter, length, height, thickness, vertical area, and volume — whichever apply to the measurement type
This is typically the endpoint you'll build your integration around: it gives you the complete quantity data to feed into estimates, bills of quantities, or reporting tools.
POST /projects/{projectId}/pdf-export renders the project drawings with measurements into a PDF. The only required parameter is the unit system:
{
"unitSystem": "Metric"
}Optional parameters give you fine control over the output: filter by specific pages (pageIds) or measurements (measurementIds), toggle labels for names, areas, perimeters, and segment lengths, include or exclude stickers, rulers, and comment threads, adjust font size and line thickness, choose a count style, and switch to grayscale. The response is the PDF file itself.
Complete schemas and an interactive explorer are available in our developer portal: Core Platform API Overview.
Questions? Contact us at [email protected] or via the in-app chat.