DEVELOPER INTERFACE / V1
Integrate with clear boundaries.
The imported FastAPI service provides authenticated image inference, bounded recorded-video jobs, health status and an OpenAPI schema. A reviewed checkpoint is required before inference becomes ready.
MODEL GATE CLOSED UNTIL CONFIGUREDStart the API locally
From the repository root, use the existing locked Python environment and configure a tenant-scoped API key in the process environment. The API intentionally retains its IRISEA_* names for compatibility.
cd products/perception
python -m venv .venv
.venv\Scripts\Activate.ps1
python -m pip install -r requirements.lock
$env:IRISEA_API_KEYS = '{"local-operator-key-change-me":{"tenant":"local","role":"operator"}}'
python -m uvicorn apps.api.main:app --host 127.0.0.1 --port 8000Submit a permitted image
curl.exe -X POST http://127.0.0.1:8000/v1/infer/image ^
-H "X-API-Key: %IRISEA_KEY%" ^
-F "image=@permitted-frame.jpg" ^
-F "rights_reference=authorized local test"Image uploads are size- and format-checked. Results carry model/source provenance and image-space advisory evidence. Physical range and time-to-collision are not produced.
Recorded MP4 path
The local decoder accepts ISO MP4 containers up to 15 seconds and 1080p. Sampling uses 2 frames per second and the job request caps output at 32 frames. This is a bounded recorded-media workflow, not a live stream.
curl.exe -X POST http://127.0.0.1:8000/v1/videos ^
-H "X-API-Key: %IRISEA_KEY%" ^
-F "video=@permitted-clip.mp4" ^
-F "rights_reference=authorized local test"
# Create a job from the returned video id with max_frames between 2 and 32.
# Poll /v1/jobs/{id}; fetch /v1/jobs/{id}/results when complete.Versioned interface
Run the API locally, then inspect /docs for Swagger UI, /v1/schema for OpenAPI 3.1 and /health/ready for model status. Keys are server-side only; do not put them in browser code. Keep IRISEA_* variable names until a tested compatibility migration is made.