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.
GET · JSON · no sign-in
Planned fireworks
Curated, time-limited events backed by a public HTTPS source. The field named estimated_audibility_radius_m for compatibility is an editorial selection radius for notices, not an acoustic forecast or a guarantee that fireworks will take place or be audible.
GET https://ruffolio.com/api/v1/fireworks
- No location parameters
- Every device downloads the same Germany-wide package covering no more than 48 hours. Matching against the current location can happen entirely on the device; the endpoint accepts no query parameters.
- Response envelope
schema_version: 1, generated_at, stale_after, and horizon_ends_at describe the version, generation, recommended next refresh, and end of the package horizon.
Each item contains a stable external_id and server-assigned revision, country_code: "DE", title, venue and locality, point, estimated_audibility_radius_m with radius_basis, notification, start and end times, an optional note, and the required evidence source. Remove an item at ends_at. Replace an older revision of the same external_id with the current one, and always describe audibility as a possibility.
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. For fireworks, always show source.label and link source.url; for other notices, do this whenever an evidence source is present. Label Community reports as unverified notices from the Ruffolio Community.
Integrate safely
For nearby-area requests, explicitly request version 2, verify the returned version, and refresh an area no more than once every 30 seconds. Replace a stored area snapshot only after HTTP 200 and remove its entries at expires_at. For the fireworks endpoint, likewise replace the stored snapshot only after HTTP 200, refresh it by stale_after, and remove entries at ends_at. The APIs are not permanent archives. 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. Fireworks schedules can change or be cancelled at short notice; neither audibility nor notification delivery is guaranteed. Follow posted signs, bathing bans, and notices from responsible authorities; the API is no substitute for police, fire, ambulance, veterinary-control, or veterinary advice.