UK Environment Agency Flood Warnings
Monitor real-time flood warnings and alerts issued by the UK Environment Agency for all of England. This Apify actor connects to the official Environment Agency flood monitoring API to deliver structured, current flood data covering every county, river, and coastal area. Filter by county, severity level, or retrieve historical warnings no longer in force. Each result includes the affected area, river or sea name, severity classification, the full warning message, timestamps, tidal status, and th
Maintenance Pulse
90/100Cost Estimate
How many results do you need?
Pricing
Pay Per Event model. You only pay for what you use.
| Event | Description | Price |
|---|---|---|
| warning-fetched | Charged per flood warning record retrieved from the Environment Agency. | $0.002 |
Example: 100 events = $0.20 · 1,000 events = $2.00
Documentation
Monitor real-time flood warnings and alerts issued by the UK Environment Agency for all of England. This Apify actor connects to the official Environment Agency flood monitoring API to deliver structured, current flood data covering every county, river, and coastal area. Filter by county, severity level, or retrieve historical warnings no longer in force. Each result includes the affected area, river or sea name, severity classification, the full warning message, timestamps, tidal status, and the responsible EA operational area -- all returned as clean JSON ready for dashboards, alerting pipelines, and research workflows.
Why use UK Environment Agency Flood Warnings
Flood risk monitoring is critical for insurance underwriters, property developers, logistics operators, emergency planners, and anyone with assets or responsibilities in flood-prone areas of England. The Environment Agency publishes real-time flood data through an open API, but consuming that API directly requires writing custom code to construct queries, parse nested response objects, handle edge cases, and transform the output into a usable format.
This actor handles all of that for you. Point it at a county or severity level, and it returns clean, flat JSON records with every field you need -- no nested objects, no raw API quirks, no code to maintain. Each record is enriched with an extraction timestamp and a direct link back to the Environment Agency flood area record for further geographic detail.
Running on Apify means you can schedule the actor to poll for new warnings every 15 minutes, hourly, or daily, then route the results into Slack, email, Google Sheets, webhooks, or any of Apify's 2,000+ integrations. You do not need to provision servers, manage cron jobs, or worry about uptime. The Environment Agency API is free and requires no API key, so the only cost is minimal Apify platform compute -- well within the free tier for most monitoring use cases.
Whether you are building a flood alert dashboard, running property risk assessments, analyzing historical flood patterns, or feeding real-time data into an insurance pricing model, this actor gives you a reliable, zero-maintenance pipeline from the Environment Agency to your workflow.
Key features
- Real-time flood data -- Retrieves the latest flood warnings directly from the UK Environment Agency's live monitoring API, updated continuously as conditions change across England.
- County filtering -- Narrow results to a specific county such as London, Devon, Yorkshire, or any English county to focus on the geographic area that matters to you.
- Three-tier severity filtering -- Filter by Severe Flood Warning (level 1), Flood Warning (level 2), or Flood Alert (level 3) to prioritize the most critical events or focus on a single tier.
- Historical warnings -- Optionally include warnings that are no longer in force (severity level 4) for trend analysis, research, and retrospective flood pattern studies.
- Tidal identification -- Each warning indicates whether the flood risk is tidal or non-tidal, critical for coastal risk assessment and maritime logistics.
- Full warning messages -- Captures the complete EA warning text with detailed descriptions of expected conditions, affected areas, and recommended actions.
- Structured, flat output -- Clean JSON with consistent field names and no nested objects, ready for direct import into databases, spreadsheets, and automation workflows.
- No API key required -- The underlying Environment Agency API is open and free, keeping costs to the absolute minimum with no registration or credentials needed.
- Configurable result limits -- Return anywhere from 1 to 500 warnings per run to match your use case, from quick checks to comprehensive nationwide snapshots.
- Detailed run summaries -- Each run logs severity breakdowns, county distributions, tidal vs non-tidal counts, and EA area statistics for quick at-a-glance monitoring.
How to use
Using the Apify Console
- Navigate to the UK Environment Agency Flood Warnings actor page on the Apify Store.
- Click Start to open the actor configuration form.
- Optionally enter a County name (e.g., "Devon") to filter results geographically. Leave blank to retrieve warnings for all of England.
- Optionally select a Severity Level to focus on a specific warning tier. If left unset, the actor returns all active warnings (levels 1 through 3).
- Toggle Include Historical if you want warnings that are no longer in force (severity level 4).
- Set Max Results to control how many warnings are returned (default: 50, maximum: 500).
- Click Start to run the actor.
- Once finished, view, download, or export your results as JSON, CSV, or Excel from the Dataset tab.
Using the Apify API
cURL:
curl "https://api.apify.com/v2/acts/ryanclinton~uk-flood-warnings/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-X POST \
-d '{"county": "Devon", "severity": "2", "maxResults": 100}' \
-H "Content-Type: application/json"
JavaScript:
import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "YOUR_API_TOKEN" });
const run = await client.actor("ryanclinton/uk-flood-warnings").call({
county: "Devon",
severity: "2",
maxResults: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
Python:
from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("ryanclinton/uk-flood-warnings").call(run_input={
"county": "Devon",
"severity": "2",
"maxResults": 100,
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
for item in items:
print(item)
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
county | String | No | (all counties) | County name to filter results (e.g., "London", "Devon", "Yorkshire"). Leave empty for nationwide results. |
severity | String (select) | No | (all active) | Filter by severity level: "1" for Severe Flood Warning, "2" for Flood Warning, "3" for Flood Alert. |
includeHistorical | Boolean | No | false | When enabled, includes warnings no longer in force (severity level 4). |
maxResults | Integer | No | 50 | Maximum number of flood warnings to return. Range: 1 to 500. |
Example input JSON:
{
"county": "Devon",
"severity": "2",
"includeHistorical": false,
"maxResults": 100
}
Tips for best input:
- Leave
countyempty andseverityunset for a full nationwide snapshot of all active flood warnings. - Set
severityto"1"in scheduled runs to build a critical-alerts-only pipeline for severe flood warnings. - Enable
includeHistoricalwhen researching past flood events or analyzing areas with recurring flood risk. - Start with the default
maxResultsof 50 for quick checks; increase to 500 for comprehensive data exports. - County names are case-insensitive and match the Environment Agency's geographic classifications (e.g., "Devon", "London", "Cumbria").
Output
Each flood warning in the dataset is a flat JSON object with the following structure:
{
"floodAreaId": "034WAF316",
"county": "Devon",
"riverOrSea": "River Exe",
"description": "River Exe at Tiverton",
"severity": "Flood Warning",
"severityLevel": 2,
"message": "Flooding is expected at the River Exe at Tiverton. River levels are expected to rise through the evening due to heavy rainfall. Flooding of roads and farmland is possible. We expect flooding to affect low lying areas close to the river. We are closely monitoring the situation. Our incident response staff are checking river levels and the flood defences.",
"timeMessageChanged": "2026-02-17T14:30:00",
"timeSeverityChanged": "2026-02-17T12:00:00",
"timeRaised": "2026-02-17T10:45:00",
"isTidal": false,
"eaAreaName": "Devon, Cornwall and the Isles of Scilly",
"floodAreaUrl": "https://environment.data.gov.uk/flood-monitoring/id/floodAreas/034WAF316",
"extractedAt": "2026-02-17T16:22:33.456Z"
}
| Field | Type | Description |
|---|---|---|
floodAreaId | String | The Environment Agency's unique identifier for the flood area. |
county | String | The county or counties affected by the warning. |
riverOrSea | String | The river, sea, or watercourse causing the flood risk. |
description | String | Human-readable name for the flood area (e.g., "River Exe at Tiverton"). |
severity | String | Warning level as text: "Severe Flood Warning", "Flood Warning", "Flood Alert", or "Warning no longer in force". |
severityLevel | Number | Numeric severity: 1 = most severe, 2 = flood warning, 3 = alert, 4 = no longer active. |
message | String | Full warning message issued by the Environment Agency with expected conditions and actions. |
timeMessageChanged | String | ISO 8601 timestamp of when the warning message was last updated. |
timeSeverityChanged | String | ISO 8601 timestamp of when the severity level was last changed. |
timeRaised | String | ISO 8601 timestamp of when the warning was first issued. |
isTidal | Boolean | Whether the flood risk is caused by tidal conditions (true) or fluvial/surface water (false). |
eaAreaName | String | The Environment Agency operational area managing the warning. |
floodAreaUrl | String | Direct URL to the flood area record on the Environment Agency API for additional geographic data. |
extractedAt | String | ISO 8601 timestamp of when the data was extracted by this actor. |
Use cases
- Emergency alerting -- Schedule the actor every 15 minutes filtered on severity level 1 and pipe results into Slack or SMS to get immediate notification when severe flood warnings are issued.
- Insurance risk assessment -- Pull flood warnings by county to assess real-time and historical flood exposure for property portfolios and underwriting decisions.
- Property due diligence -- Check active flood warnings for a specific county before completing property purchases, tenancy agreements, or commercial leases.
- Logistics and supply chain planning -- Monitor flood warnings along transport corridors to reroute deliveries and avoid disruption from flooded roads and infrastructure.
- Environmental research -- Enable historical data to study flood frequency, seasonal patterns, and the relationship between tidal and fluvial flood events across English counties.
- Local authority dashboards -- Feed real-time flood data into internal dashboards for council emergency response teams and flood wardens.
- Journalism and reporting -- Track current flood events across England with structured data for news coverage, data journalism, and public information services.
- Climate change analysis -- Collect flood warning data over time to identify trends in flood frequency and severity that may indicate changing climate patterns.
- Travel and tourism planning -- Monitor flood alerts in holiday destination counties to advise travellers and manage accommodation bookings during flood events.
- Construction project management -- Track flood warnings near active construction sites to trigger site protection measures and adjust work schedules.
API & Integration
Python
from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("ryanclinton/uk-flood-warnings").call(run_input={
"county": "Cumbria",
"maxResults": 200,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
if item["severityLevel"] <= 2:
print(f"[{item['severity']}] {item['description']} -- {item['message'][:120]}")
JavaScript
import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "YOUR_API_TOKEN" });
const run = await client.actor("ryanclinton/uk-flood-warnings").call({
county: "Cumbria",
maxResults: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.filter(i => i.severityLevel <= 2).forEach(item => {
console.log(`[${item.severity}] ${item.description}`);
});
cURL
# Start a run and get dataset items directly
curl "https://api.apify.com/v2/acts/ryanclinton~uk-flood-warnings/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-X POST \
-d '{"county": "Cumbria", "maxResults": 200}' \
-H "Content-Type: application/json"
Integrations
This actor works with all Apify platform integrations:
- Zapier -- Trigger Zaps when new flood warnings appear for automated multi-app workflows.
- Make (Integromat) -- Build scenarios that route flood data to CRMs, databases, or notification services.
- Google Sheets -- Automatically export flood warnings to a live spreadsheet for team-wide visibility.
- Slack -- Send formatted flood alerts to Slack channels using Apify webhooks.
- Webhooks -- Trigger any HTTP endpoint when a run completes, enabling custom alerting and data pipelines.
- Email notifications -- Configure Apify to send email alerts when scheduled runs detect new flood warnings.
How it works
- Input validation -- The actor reads your input parameters: county filter, severity level, historical toggle, and max results limit.
- URL construction -- A query URL is built for the Environment Agency flood monitoring API. If a specific severity is set, it filters to that exact level. Otherwise, it excludes level 4 (no longer in force) by default unless
includeHistoricalis enabled. The API request limit is set to 2x yourmaxResults(capped at 1000) to ensure sufficient data is fetched. - API request -- A single GET request is made to
https://environment.data.gov.uk/flood-monitoring/id/floodswith the constructed query parameters. No authentication is required. - Response parsing -- The JSON response is parsed and validated. If no flood warnings match the filters, a descriptive "no results" record is output.
- Data transformation -- Each raw flood warning is transformed into a flat output record. Nested flood area fields are extracted, missing values are given safe defaults, messages are trimmed, and an
extractedAttimestamp is appended. - Result limiting -- The transformed results are sliced to your
maxResultslimit and pushed to the Apify dataset. - Summary logging -- The actor logs a detailed run summary including severity breakdown, top counties, tidal vs non-tidal counts, and EA area distribution.
Input (county, severity, maxResults)
|
v
Build query URL with filters
|
v
GET environment.data.gov.uk/flood-monitoring/id/floods
|
v
Parse JSON response
|
v
Transform each item to flat output
|
v
Slice to maxResults limit
|
v
Push to Apify Dataset
|
v
Log severity, county, tidal, EA area summaries
Performance & cost
| Metric | Value |
|---|---|
| Average run time | 5--10 seconds |
| Memory usage | 256 MB |
| API calls per run | 1 (single GET request) |
| Compute units per run | ~0.001 CU |
| Estimated cost per run | ~$0.0005 (fraction of a cent) |
| Free tier runs per month | ~5,000 runs within Apify's $5 free monthly credit |
| External API cost | Free (no API key required) |
| Hourly monitoring cost | Less than $0.50/month |
The actor is exceptionally lightweight because it makes a single HTTP request with no pagination, no browser rendering, and no proxy requirements. The Environment Agency API responds in under 2 seconds for most queries, and the transformation step adds negligible overhead.
Limitations
- England only -- The Environment Agency covers England. Scotland (SEPA), Wales (Natural Resources Wales), and Northern Ireland (DfI Rivers) have separate flood warning services not covered by this actor.
- No river-level filtering -- The API does not support filtering by specific river or watercourse name. Use county filtering and then post-process results using the
riverOrSeaoutput field. - No geographic coordinate filtering -- You cannot filter by latitude/longitude or bounding box. County-level filtering is the finest geographic granularity available.
- Snapshot data -- Each run captures flood warnings at a point in time. The actor does not track changes between runs. Use Apify's dataset versioning or your own deduplication logic for change detection.
- Maximum 500 results per run -- The actor caps output at 500 warnings. During major flooding events, nationwide active warnings may exceed this limit. Use county filtering to ensure complete coverage for your area of interest.
- Message text variability -- Warning messages are written by EA staff and vary in length, format, and detail. Parse message content with appropriate flexibility.
- API availability -- The actor depends on the Environment Agency API being online and responsive. Planned or unplanned outages on the EA side will cause the actor to fail.
Responsible use
- Respect the data source -- The Environment Agency provides this data as a free public service. Avoid excessive request volumes that could strain their infrastructure. Scheduling runs no more frequently than every 15 minutes is reasonable for most use cases.
- Do not use as sole safety source -- Flood warnings from this actor should supplement, not replace, official EA flood warning channels and local emergency services. Always follow official guidance during flooding events.
- Attribute the data -- When republishing or displaying flood warning data, credit the UK Environment Agency as the original source in accordance with their Open Government Licence.
- Handle personal impact sensitively -- Flood events affect real people and communities. When using this data in reporting, dashboards, or public-facing applications, present information responsibly and with appropriate context.
- Cache appropriately -- If serving flood data to multiple consumers, cache results on your side rather than running the actor repeatedly for the same query within short time windows.
FAQ
Q: Does this actor cover all of the UK? A: No. The Environment Agency covers England only. Scotland is covered by SEPA, Wales by Natural Resources Wales, and Northern Ireland by DfI Rivers. This actor retrieves data exclusively from the English Environment Agency API.
Q: How often is the flood data updated at the source? A: The Environment Agency updates its flood monitoring data in real time. Warnings are issued, updated, and removed as conditions change. Each actor run gives you a snapshot of the current state at execution time.
Q: Do I need an API key or registration? A: No. The Environment Agency flood monitoring API is completely free and open. No registration, API key, or subscription is required.
Q: What do the severity levels mean? A: Level 1 (Severe Flood Warning) means severe flooding with danger to life. Level 2 (Flood Warning) means flooding is expected and immediate action is required. Level 3 (Flood Alert) means flooding is possible and you should be prepared. Level 4 (Warning no longer in force) means the warning has been removed.
Q: Can I filter warnings for a specific river?
A: The API does not support direct river-name filtering. Filter by county, then use the riverOrSea field in the output to programmatically isolate warnings for a specific watercourse.
Q: What happens if there are no active flood warnings? A: If no warnings match your filters, the actor outputs a single record with a "No flood warnings found" message along with your filter settings. This is normal during dry weather periods.
Q: Can I schedule this actor for automated monitoring? A: Yes. Use Apify's scheduling feature to run the actor at any interval -- every 15 minutes, hourly, or daily. Combine with webhooks to trigger Slack messages, emails, or API calls whenever new flood data is available.
Q: How do I detect new or changed warnings between runs?
A: Compare the floodAreaId and timeSeverityChanged fields between consecutive runs. New flood area IDs indicate new warnings, and changed timestamps indicate updates to existing warnings.
Q: Why are some county values comma-separated? A: Some flood areas span multiple counties. The Environment Agency stores these as comma-separated strings (e.g., "Devon, Somerset"). The actor preserves this original format.
Q: Can I get polygon or map boundary data for flood areas?
A: The floodAreaUrl field in each result links directly to the EA flood area record, which contains polygon and geographic boundary data for mapping applications.
Q: Is the data available in CSV or Excel format? A: Yes. After a run completes, you can download the dataset in JSON, CSV, XML, Excel, or RSS format directly from the Apify Console or via the API.
Q: How far back does historical data go?
A: The includeHistorical toggle includes warnings marked as "no longer in force" that are still present in the EA API. The API retains recently expired warnings but does not serve a full historical archive. For long-term historical analysis, schedule regular runs and accumulate data over time.
Related actors
| Actor | Description | Link |
|---|---|---|
| NOAA Weather Alert Monitor | Monitor US weather alerts including flood warnings from NOAA. | apify.com/ryanclinton/noaa-weather-alerts |
| GDACS Disaster Alerts | Search the Global Disaster Alert and Coordination System for worldwide flood, earthquake, and cyclone events. | apify.com/ryanclinton/gdacs-disaster-alerts |
| FEMA Disaster Declaration Search | Search US federal disaster declarations including flood-related emergencies. | apify.com/ryanclinton/fema-disaster-search |
| UK Companies House | Search the UK Companies House register for company data -- useful for cross-referencing flood-affected business locations. | apify.com/ryanclinton/uk-companies-house |
| UK Food Hygiene Ratings | Search UK Food Standards Agency ratings -- complementary UK public data actor for combined government data workflows. | apify.com/ryanclinton/uk-food-hygiene |
| Weather Forecast Search | Get weather forecasts for any location -- pair with flood warnings for comprehensive weather and flood monitoring. | apify.com/ryanclinton/weather-forecast-search |
How it works
Configure
Set your parameters in the Apify Console or pass them via API.
Run
Click Start, trigger via API, webhook, or set up a schedule.
Get results
Download as JSON, CSV, or Excel. Integrate with 1,000+ apps.
Use cases
Sales Teams
Build targeted lead lists with verified contact data.
Marketing
Research competitors and identify outreach opportunities.
Data Teams
Automate data collection pipelines with scheduled runs.
Developers
Integrate via REST API or use as an MCP tool in AI workflows.
Related actors
Bulk Email Verifier
Verify email deliverability at scale. MX record validation, SMTP mailbox checks, disposable and role-based detection, catch-all flagging, and confidence scoring. No external API costs.
GitHub Repository Search
Search GitHub repositories by keyword, language, topic, stars, forks. Sort by stars, forks, or recently updated. Returns metadata, topics, license, owner info, URLs. Free API, optional token for higher limits.
Website Content to Markdown
Convert any website to clean Markdown for RAG pipelines, LLM training, and AI apps. Crawls pages, strips boilerplate, preserves headings, tables, and code blocks. GFM support.
Website Tech Stack Detector
Detect 100+ web technologies on any website. Identifies CMS, frameworks, analytics, marketing tools, chat widgets, CDNs, payment systems, hosting, and more. Batch-analyze multiple sites with version detection and confidence scoring.
Ready to try UK Environment Agency Flood Warnings?
Start for free on Apify. No credit card required.
Open on Apify Store