Public Safety API

Because dogs’ lives and health matter.

Hazards do not stop at app boundaries. Ruffolio therefore makes active Community danger reports and curated water warnings available as public JSON. Other apps, maps, and services can retrieve them without signing in and help people protect their dogs in time. Public access is read-only; new reports still go through Ruffolio’s protected workflows.

GET · JSON · no sign-in

Community danger reports

Short-lived, independently unverified notices about wildlife, dead animals, possible bait or poison, broken glass, suspected blue-green algae, other dangers, and clearly labelled tests. The reporting person is never returned.

GET https://ruffolio.com/api/v1/danger-reports?latitude=52.52&longitude=13.405&radius_m=1500&schema_version=2
latitude / longitude
Centre of the nearby search.
radius_m
An integer from 1 to 10,000 metres.
schema_version=2
Returns every current category, including blue_green_algae, and the optional water-body name. Version 1 remains the default for compatibility when the parameter is omitted.

The response contains schema_version and up to 250 active items with an ID, category, optional note and water-body name, exact marked location, and creation and expiry times — without account, profile, or nickname data.

GET · JSON · no sign-in

Curated water warnings

Current and historical blue-green algae notices, plus current source-evidenced green or filamentous algae reports for BfG-verified rivers and lakes. BfG verifies the water-body identity, not the warning claim; “curated” does not mean “official”.

GET https://ruffolio.com/api/v1/water-warnings?latitude=52.52&longitude=13.405&radius_m=10000&schema_version=2
latitude / longitude
Centre of the nearby search.
radius_m
An integer from 1 to 25,000 metres.
schema_version=2
Adds reported_green_algae for reported green or filamentous algae. It does not assert cyanobacteria, toxicity, or a bathing ban. Version 1 remains the default for compatibility when the parameter is omitted.

Up to 250 results include the warning kind, water-body name and stable source_id, attribution, warning point and radius_m, optional note and evidence source, plus start, creation, and expiry times. There is no pagination; choose a smaller radius when needed. The warning circle applies, not automatically the entire named water body.

Minimise location data

Request only the area your feature actually needs. Do not send a route, account ID, or dog ID. Location lookups reach Ruffolio/Vercel. Community responses contain the exact marked hazard location, but no information about the reporting person.

Keep sources visible

For water warnings, display water_body.source_attribution unchanged. When an evidence source is present, show source.label and link source.url. Label Community reports as unverified notices from the Ruffolio Community.

Integrate safely

Request version 2 explicitly and verify the returned version. Refresh an area no more than once every 30 seconds. Replace a stored area snapshot only after HTTP 200 and remove entries by expires_at; this API is not a permanent archive. Correct HTTP 400; retry HTTP 429 or 503 with increasing backoff. Errors use error.code and error.message, and x-request-id helps with support.

An empty response is not an all-clear. Ruffolio does not independently verify Community reports. Follow posted signs, bathing bans, and notices from responsible authorities; the API is no substitute for police, fire, ambulance, veterinary-control, or veterinary advice.