Skip to content

API

The product API is bearer-authenticated JSON over HTTPS; everything the web app does goes through it, so anything you see in the UI is automatable.

Highlights:

  • POST /projects · POST /projects/{id}/documents — create and feed bids
  • POST /projects/{id}/extract-all-requirements-async + status polling
  • GET /usage — credits, per-feature breakdown, legible units
  • GET /documents/{id}/original — your uploaded originals, back out
  • Import endpoints for band rates and BOQ lines (xlsx, dry-run supported)

Refusals are machine-readable: credit and licence refusals return HTTP 402 with a stable code (hard_cap, tier_not_allowed, subscription_inactive) alongside the human-readable reason, and successful calls that cross a spend line say so in X-Quota-* response headers.

A full OpenAPI reference is generated from the running service and will be published here.