company logo

Help center

Go to Kreo Software
WebsiteYoutube
All collectionsIntegrationAPIUsing the Core Platform API: Projects, Measurements, and PDF Export

Using the Core Platform API: Projects, Measurements, and PDF Export

The Core Platform API lets you work with Kreo Takeoff projects programmatically — upload drawings, read the measurements and folder structure from your projects, and export annotated PDFs. It's the right choice when you want to pull takeoff data that you (or your team) created in Kreo into your own systems.

Andrew Markevich·September 10, 2026

The base URL is:

https://takeoff.kreo.net/api/general/v1/takeoff2D

All requests require your API key in the X-API-KEY header (see Getting Started with the Kreo API for how to create one).

The workflow

The API follows a logical sequence from raw files to structured measurement data:

  1. Upload files — send raw documents to Kreo's servers.

  2. Create a project — initialize a project workspace from the uploaded files.

  3. Extract data — query the project for file details, groups, and measurements.

  4. Export to PDF — generate a processed PDF with measurements rendered on the drawings.

1. Upload files

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.

2. Create a project

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.

3. Get files and pages

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.

4. Get groups

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.

5. Get measurements

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.

6. Export to PDF

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.

Full reference

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.

Did this answer your question?
😞
😐
😁