Validate. Ingest.
Query.
A working reference server for PollinationTech Open Observation v0.2.0. It validates incoming records against the JSON Schema, stores accepted observations in SQLite, and exposes simple query endpoints.
A small API on purpose.
Check a record against schema v0.2.0 without storing it.
Validate and ingest an observation. Duplicate record IDs return 409.
Fetch the full accepted record by its stable record ID.
Filter by type, measurement level, or geographic bounding box.
Return record counts by observation type and measurement level.
Return the schema currently enforced by the server.
One request from acceptance.
curl -X POST https://api.pollinationtech.com/observations \
-H "Content-Type: application/json" \
--data-binary @example-flower-visitation.json
The included server is intentionally simple and transparent. Public production ingestion should add authentication, rate limiting, request-size limits, managed persistence, audit logging, and privacy enforcement before accepting third-party writes.
Readable infrastructure.
The server uses FastAPI for HTTP routing and automatically generated OpenAPI documentation, while the PollinationTech schema remains the source of truth for the observation payload.
Validation uses Python's jsonschema Draft 2020-12 validator so errors can point to the precise failing JSON path instead of returning a generic bad-request response.