Files
geointel/docs/API_CONTRACT_FREEZE_M2.md
T
Jens faeb58ef6d
GeoIntel release gates / Compile, test, contracts and builds (push) Successful in 1m49s
GeoIntel release gates / Python and npm vulnerability policy (push) Successful in 21s
GeoIntel release gates / Production AI image, SBOM and container scan (push) Successful in 5m39s
GeoIntel release gates / Deploy exact gated revision to Unraid (push) Failing after 58m43s
Initial public release
2026-08-31 21:56:53 +02:00

91 lines
1.2 KiB
Markdown

# API Contract Freeze M2
## Required V1 endpoints
### Health
`GET /health`
Response:
```json
{"status":"ok","service":"geointel-backend"}
```
### Projects
`POST /projects`
Request:
```json
{"name":"Geel Building Detection","description":"Demo project","region":"Kempen"}
```
Response: project object.
`GET /projects`
Response: paginated projects.
### Areas
`POST /projects/{project_id}/areas`
Request must contain GeoJSON polygon.
### Datasets
`POST /projects/{project_id}/datasets/upload`
Multipart upload. Returns dataset object and metadata status.
`GET /projects/{project_id}/datasets`
Returns datasets.
### Analysis runs
`POST /analysis/object-detection`
Request:
```json
{
"project_id": "uuid",
"dataset_id": "uuid",
"area_id": "uuid",
"model_id": "yolov8n-building-demo",
"confidence_threshold": 0.5
}
```
Response: job envelope.
`GET /analysis-runs/{id}`
Returns run status, metrics, outputs.
### QA/QC
`POST /analysis/qaqc/building-detection-vs-reference`
Request:
```json
{
"project_id": "uuid",
"prediction_run_id": "uuid",
"reference_dataset_id": "uuid",
"iou_threshold": 0.5
}
```
Response: job envelope.
### Exports
`POST /exports/geojson`
Exports detections, segmentations, QA findings, or vector layers.