Data Sources
Last updated: 24 May 2026
NHS Business Services Authority (NHSBSA)
Pharmaceutical services contractors dataset containing ~10,500 active England pharmacies with names, addresses, postcodes, ODS codes, and geographic coordinates. Licensed under the Open Government Licence v3.0. Updated monthly (published the third Thursday of each month). Source: nhsbsa.nhs.uk/pharmacies-gp-practices-and-appliance-contractors/pharmaceutical-services/nhsbsa-open-data
Public Health Scotland (PHS)
Dispenser Location Contact Details dataset listing ~1,240 community pharmacies in Scotland with names, addresses, postcodes, dispenser codes and Health Board affiliations. Published via the Scottish Health and Social Care Open Data platform under the Open Government Licence v3.0. Updated monthly. Source: opendata.nhs.scot/dataset/dispenser-location-contact-details
Business Services Organisation (BSO) Northern Ireland
The Business Services Organisation, an arm’s-length body of the Department of Health in Northern Ireland, publishes a monthly dispensing-by-contractor dataset listing every community pharmacy registered with the Health and Social Care Board, including pharmacy name, contractor code, trading address and postcode. The dataset is hosted on the OpenDataNI portal under a Creative Commons Attribution (CC-BY 4.0) licence and refreshed each month after the dispensing cycle closes. Source: opendatani.gov.uk/@business-services-organisation
Google Maps via Apify
Welsh directory discovery: Wales has no public NHS contractor directory equivalent to NHSBSA (England) or Public Health Scotland. The All Wales Pharmacy Database (AWPD) maintained by NHS Wales Shared Services Partnership is restricted to Health Board and pharmacy staff and not made available as an open dataset. Welsh community pharmacies on this site are therefore discovered by querying Google Maps across every Welsh postcode area via Apify (licensed scraper that operates within Google’s allowed rate limits). Welsh listings are clearly labelled as Google-sourced on their detail pages and may include small inaccuracies that an NHS list would not have. If an official Welsh contractor list becomes available we will switch to it as the authoritative source.
Secondary enrichment (all UK nations): Beyond the Welsh directory discovery described above, the Apify compass/crawler-google-places actor is also used as a secondary enrichment layer across all four UK nations. For pharmacies whose directory record (from NHSBSA / PHS / BSO / Welsh discovery) lacks a current Google Business Profile match, we periodically run targeted Apify queries to attach Google Place IDs, star ratings, review counts, opening hours (where Google has them), accessibility information, payment methods accepted, languages spoken, and consultation-room availability. Approximately 3,250 of our 12,800+ active pharmacies have been enriched this way as of 2026-05-24. We never overwrite NHS-sourced data (phone number, address, primary opening hours) with Google data; we only fill in fields where the NHS source is null. When Google flags a pharmacy as permanentlyClosed, we set is_active = false and surface a warning in our admin logs.
NHS.uk pharmacy pages
Individual pharmacy profile pages on nhs.uk provide opening hours (standard and seasonal), services offered, accessibility information, and contact details. Scraped monthly. Used under the NHS Open Content Licence.
Bank-holiday rota publishers
When a UK bank holiday approaches, individual pharmacies open under rota arrangements coordinated by their local NHS commissioner. We aggregate published rota data from 44 source publishers covering all four UK nations:
- England (25 sources): 3 NHS Integrated Care Boards publishing rotas directly (NHS Greater Manchester, NHS Birmingham & Solihull, NHS England London) + 21 partner Local Pharmaceutical Committees (LPCs) covering ~30 of England’s 42 ICB regions + 1 emergency-fallback aggregate hosted by Community Pharmacy Kensington, Chelsea and Westminster.
- Scotland (14 sources): NHS Scotland Health Boards publishing on
communitypharmacy.scot.nhs.uk(Ayrshire & Arran, Borders, Dumfries & Galloway, Fife, Forth Valley, Greater Glasgow & Clyde, Grampian, Highland, Lanarkshire, Lothian, Orkney, Shetland, Tayside, Western Isles). - Wales (4 sources): 4 of the 7 Welsh Health Boards publishing ingestible content: Aneurin Bevan UHB (Gwent), Cardiff and Vale UHB, Powys THB, Swansea Bay UHB. The remaining 3 LHBs (Betsi Cadwaladr, Cwm Taf Morgannwg, Hywel Dda) use Sitecore JavaScript rendering that our scraper cannot read; coverage of those areas is currently incomplete.
- Northern Ireland (1 source): HSC Business Services Organisation publishes 10 per-town rota PDFs at a single canonical URL covering Antrim, Armagh, Ballycastle, Ballymena, Bangor, Belfast, Coleraine, Cookstown, Downpatrick and the Ards Peninsula.
Rota documents (PDF, DOCX, XLSX, HTML pages, and occasionally PNG images) are extracted using Anthropic Claude Haiku, which converts unstructured rota tables into a normalised JSON schema. Each extracted pharmacy is then matched against our directory via UK postcode anchoring at a 0.85+ confidence threshold; lower-confidence matches are routed to a manual review queue. When no rota row exists for a given pharmacy on a given bank holiday, we treat that pharmacy as closed by default. That is the conservative safety choice. Rota data is refreshed in the days before each bank holiday.
Anthropic Claude (LLM extraction)
Find a Pharmacy uses Anthropic Claude Haiku to extract structured data from unstructured published documents, primarily bank-holiday rota PDFs from NHS commissioners and Local Pharmaceutical Committees as described above. Claude Haiku is used in a strictly bounded role: it converts a published rota table into a JSON list of (pharmacy_name, postcode, opens_at, closes_at) tuples. No personal patient data is ever sent to Claude. Extraction prompts include a CRITICAL guardrail requiring the model to return empty results if the document doesn’t explicitly cover the target date, preventing date-mismatch errors that would otherwise produce wrong-date rota data. Claude pricing and the Anthropic API are described at anthropic.com.
postcodes.io
Postcode-to-coordinate lookup service operated by Ideal Postcodes, using MHCLG (Ministry of Housing, Communities & Local Government) data. Licensed under CC0. Source: postcodes.io
Bank holiday dates
Official UK bank holiday dates from the GOV.UK bank holidays API at gov.uk/bank-holidays.json. Updated by Cabinet Office.
Feedback data
Anonymous thumbs-up/thumbs-down votes submitted by users on individual pharmacy pages. Used only to surface community-reported accuracy concerns to the Find a Pharmacy team. Not sold or shared.