---
title: "Kreo API: FAQ and Troubleshooting"
description: "Answers to the most common questions about working with the Kreo API. New to the API? Start with Getting Started with the Kreo API."
url: https://help-takeoff.kreo.net/en/articles/11688713-kreo-api-faq-and-troubleshooting
collection: "API"
updated: 2026-10-20
language: en
alternates: [fr]
---

# Kreo API: FAQ and Troubleshooting

Answers to the most common questions about working with the Kreo API. New to the API? Start with Getting Started with the Kreo API.

## General

**Which file formats can I upload?**

-   PDF
    
-   CAD files: DWG, DXF, DWF, DGN
    
-   Image files: PNG, TIFF, JPG, JPEG, BMP, EMF, GIF
    

The file must have a valid extension in its name — a file without an extension (or with a wrong one) will not be processed.

**What's the difference between the AI Search API and the Core Platform API?**

The **AI Search API** (`/api/ai-search/v1/takeoff2D`) automatically detects elements — walls, doors, windows, rooms — on a drawing you upload. The **Core Platform API** (`/api/general/v1/takeoff2D`) works with regular Kreo Takeoff projects: it reads the measurements and groups created in the app and exports PDFs. They have separate base URLs but use the same API key.

**How do I authenticate?**

Pass your API key in the `X-API-KEY` header with every request. Keys are created on the **Key Management** page in [Kreo](https://takeoff.kreo.net/2d/projects).

**I lost my API key. Can I see it again?**

No — for security reasons the key is displayed only once, when it is created. If you've lost it, create a new key and update your integration.

## Projects and statuses

**What do the statuses** `Ready`**,** `Calculating`**, and** `Failed` **mean?**

-   `Calculating` — Kreo is still processing. For projects this often happens when a CAD file needs conversion; for search jobs it means the AI is still analyzing the drawing. Poll the status endpoint until it changes.
    
-   `Ready` — processing finished successfully. Project operations (like setting the scale) and result retrieval are now available.
    
-   `Failed` — processing could not be completed. Check that the file is valid and readable; if the problem persists, contact support.
    

**My project is stuck in** `Calculating`**. What should I do?**

Large or complex files (especially CAD) can take a while to convert. Keep polling `GET /projects/{projectId}/status` at a reasonable interval. If a project stays in `Calculating` for an unusually long time, contact support with your `projectId`.

**Can I analyze a multi-page PDF with the AI Search API?**

Each AI Search project processes exactly one page. Use `pageIndex` (zero-based) when creating the project to pick the page, and create a separate project for each page you want to analyze. The file only needs to be uploaded once — you can reuse the same `fileKey`.

**How long is a** `fileKey` **valid?**

The `fileKey` returned by the upload endpoint is a temporary identifier and remains valid for the duration of the upload session. Upload the file and create your project(s) in the same workflow rather than storing file keys for later use.

## Scale and measurements

**My measurements don't match real-world dimensions. Why?**

The most common cause is a missing or incorrect scale. The scale converts pixel measurements into real-world units. For a 1:100 drawing, set `drawingCalibrationLineLength` to 1 and `originalCalibrationLineLength` to 100. You can set the scale when creating a project or update it later with `PUT /projects/{projectId}/scale` (only while the project status is `Ready`).

**What units are the results in?**

Coordinates (`p1`, `p2`, `points`) are in pixels relative to the source file. Lengths, thicknesses, and perimeters are in meters; areas are in square meters — calculated from your calibrated scale.

## AI Search results

**The AI missed some elements or found false positives. What can I do?**

-   **Increase the DPI.** Try `450` or `600` instead of the default `300` — higher resolution helps on dense or detailed drawings.
    
-   **Filter by confidence.** Add the `confidence` query parameter (0 to 1) when fetching results to filter out low-confidence detections.
    
-   **Narrow the search area.** Use `cropBox` to limit the search to the relevant part of the sheet and avoid noise from title blocks, legends, and annotations.
    

**How do I search for a specific named area like GIA or GEA?**

Use `type: "polygon"` together with the `text` parameter — for example `"text": "GEA"` finds the polygon labeled as gross external area. The `text` parameter is required for polygon searches and must be omitted for all other types.

**What does** `includeWalls` **do?**

It's available only for `type: "space"` searches and extends the detected space boundaries to the wall center lines — useful when your measurement convention includes half of the surrounding wall thickness.

## Still stuck?

Contact our team at [**info@kreo.net**](mailto:info@kreo.net) or via the in-app chat — include your `projectId` and, for search issues, the `jobId`, and we'll help you out. Full API documentation: [kreo-software.readme.io](https://kreo-software.readme.io).
