UK Community pharmacy dispensing data, as an API

Know every branch's items against the pharmacy down the road.

Scriptline turns public, pharmacy-level dispensing figures into JSON. Benchmark a branch, build the items history for an acquisition target and check MHRA alerts across the estate, without clicking through one pharmacy at a time.

  • Monthly items by pharmacy
  • Area and LPC rankings
  • MHRA alerts and recalls
  • No patient data
MHRA alert - Class 2 recall

Example recall notice: one batch, pharmacy-level action

ref EX-2026/000 · simulated

Monthly dispensed items - last 12 months

Illustrative area: Hollowmere, 3 pharmacies

Simulated data. Pharmacy names, items and the alert shown are invented for illustration.

29hosted endpoints, each returning JSON
9public pharmacy data sources
8UK endpoints for dispensing, rankings and MHRA alerts
0patient records. Pharmacy-level aggregates only
The job today

You find out a rival is gaining items when yours have already fallen.

The figures are public. The work of getting them into one sheet, every month, for every branch and every target, is what eats the week.

Monday, board pack due

Benchmarking, one pharmacy at a time

Fourteen branches, three or four neighbours each. That is fifty-odd pharmacy pages to open, read and copy before you can say which branches are losing ground locally.

With Scriptline: loop your ODS codes through the dispensing trends and area leaderboard endpoints and land the lot in one table.

Broker sends a new listing

A valuation built by hand

The sales memo quotes an items figure. Checking it means rebuilding two years of monthly items in a spreadsheet, then doing it again for the comparables.

With Scriptline: pull the target's profile and monthly trend in one call each, and screen a whole area before you request the pack.

Friday, 4:40pm

The recall that sat in an inbox

MHRA alerts arrive by email to whoever signed up. Across a group, nobody can say with confidence which branches have seen which notice.

With Scriptline: read the alerts list on your own schedule and post new notices to the channel every branch manager already watches.

Coverage

29 endpoints across 9 sources. UK dispensing data leads.

Each endpoint is a hosted function. When you call it, we open the public source in a real browser on our side and return what it shows as JSON.

PharmData

8 endpoints
United Kingdom · community pharmacy

The core of Scriptline for pharmacy groups, brokers and buying groups: who dispenses what volume, where they rank, and what the MHRA has published.

  • Pharmacy profile
  • Provider search
  • Dispensing trends
  • NHS areas
  • Area leaderboard
  • LPC rankings
  • MHRA alerts list
  • MHRA alert detail
Retail medicine catalogues and prices

1mg

6 endpoints
India
  • Medicine search
  • Medicine information
  • Delivery product search
  • Category hierarchy
  • Medicine widgets
  • Ayurveda herbs

Clicks

4 endpoints
South Africa
  • Product search
  • Product details
  • Category hierarchy
  • Category products

MedPlus

3 endpoints
India
  • Product search
  • Search by location
  • Categories

Drugs.com

3 endpoints
Drug reference
  • Alphabetical drug list
  • Medications by condition
  • Pill identifier search

Al-Dawaa

2 endpoints
Saudi Arabia
  • Medication search
  • Medication details

Netmeds

1 endpoint
India
  • Product search

PharmEasy

1 endpoint
India
  • Product search

Arogga

1 endpoint
Bangladesh
  • Product search

That is the full list

Nine sources, 29 endpoints. We would rather show you exactly what exists than a logo wall. Need a source that is not here? Ask us.

How it works

One POST per question. JSON back.

No scraper to maintain and no browser to run. If your analyst can write a spreadsheet macro, they can call this.

  1. Pick an endpointEach one has a function ID and a short list of variables, such as a pharmacy's ODS code or an area name.
  2. Start a runSend one authenticated POST. We open the public source in a real browser on our side and read the page at that moment.
  3. Use the JSONLoad it into Excel, Power BI, a data warehouse or a Slack alert. Schedule the calls yourself, as often as your plan allows.

Scriptline is a request API: data is read when you call. It is not a push stream, and it is as current as the public source is on the day.

# Dispensing trends for one pharmacy
curl -L -X POST \
  "https://api.notte.cc/functions/$FUNCTION_ID/runs/start" \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "function_id": "'"$FUNCTION_ID"'",
    "variables": {
      "ods_code": "FZZ99",
      "months": 12
    }
  }'
The call shape is real. Variable names, ODS codes and the response body are illustrative.
Branch benchmark

Where would your branch sit in its local area?

Move the slider to your branch's monthly items and pick the kind of area it trades in. This is the view the area leaderboard endpoint lets you build for every branch you own or want to buy.

7,900items / month
2,00018,000
Local rank4th
of 12 pharmacies
in this area
To move up one place+620items / month
Share of area items9.4%lead over next: 310

Hollowmere and districtitems / month

Simulated area. Every pharmacy name and figure here is invented. Real calls return the public, pharmacy-level figures the source shows on the day.

From the people who use it

Less copying figures. More deciding what to do about them.

I used to spend the first two days of every month copying items figures into the board pack. Now the sheet refreshes itself and I spend that time working out why a branch slipped.
PS
Priya S.Commercial manager, 14-branch independent group
When a listing comes in I can have the target and every pharmacy around it in one table before the first call with the vendor. It changes the questions we ask.
TM
Tom M.Analyst, pharmacy brokerage
The alerts feed into the same channel our branch managers use for everything else. I stopped forwarding emails and hoping somebody had read them.
HO
Hannah O.Operations lead, 9-branch family group
Also in Scriptline: retail price data

Building an online pharmacy or a price-comparison app?

For product and pricing teams in India, the Gulf and South Africa: read retail medicine listings across e-pharmacies through the same API, one search per call.

  • India: 1mg, MedPlus, Netmeds and PharmEasy product search, plus 1mg medicine information and categories
  • Saudi Arabia: Al-Dawaa medication search and details
  • South Africa: Clicks product search, details and category listings
  • Bangladesh: Arogga product search
  • Reference: Drugs.com drug list, medications by condition and pill identifier search
See the Platform plan

One medicine, four storefronts

query: "examplomycin 500mg tablet, strip of 10"
1mgin stockINR 118.40
PharmEasyin stockINR 121.00
Netmedsin stockINR 115.75
MedPlus2 stores nearbyINR 124.10
Simulated example. The product, prices and stock shown are invented. Listed retail prices are informational and are not clinical or prescribing guidance.
Pricing

Priced below an afternoon of an analyst's time.

Every plan includes all 29 endpoints. You pay for runs, which is one call to one endpoint.

Counter

For a small group checking its own branches each month.

£79 / month
  • 1,000 runs per month
  • All 29 endpoints
  • 1 API key
  • Email support
Start with Counter

Group

For 5 to 50 branches benchmarking every branch against its neighbours.

£249 / month
  • 6,000 runs per month
  • All 29 endpoints
  • 5 API keys for analysts and tools
  • Starter spreadsheet and Python notebook
  • Priority email support
Get an API key

Platform

For brokers, buying groups and e-pharmacy pricing teams.

Custom
  • Run volume agreed with you
  • All 29 endpoints
  • Unlimited API keys
  • Help designing your screening or price pipeline
  • Invoice billing
Talk to us

Prices exclude VAT. Cancel any time before the next billing month.

FAQ

Questions a careful buyer asks.

Does Scriptline contain any patient data?

No. Everything returned is public, aggregate, pharmacy-level data: for example a pharmacy's total dispensed items in a month, or its position in an area ranking. There is no patient data, no prescriber-level data and nothing that identifies an individual.

Where does the data come from?

From the nine public sources listed in the coverage section. When you start a run, we open the source in a real browser on our side, read what it publishes and return it as JSON. We do not alter the figures, and we name the source for every endpoint.

Is this real time?

It is a request API. Data is read at the moment you call, so you get what the source shows on that day. Dispensing figures follow the source's own publication schedule, so the latest month available is whatever has been published. There is no push stream: if you want a daily alert check, you schedule a daily call.

Is Scriptline endorsed by the NHS or the MHRA?

No. Scriptline is an independent commercial service. It is not affiliated with, endorsed by or operated on behalf of the NHS, the MHRA, any regulator or any of the named sources.

Can I rely on it for a valuation or for recall compliance?

Treat it as an input that saves you the manual collection, not as the final word. For an acquisition you will still do your own due diligence against the vendor's records. For recalls, keep your official MHRA subscription and your existing procedures: Scriptline helps you see and share alerts, it does not replace your obligations.

What if a source changes its website or is unavailable?

The endpoints read live websites, so a run can fail when a source is down or has changed. Maintaining the endpoints when a source changes is our job rather than yours. We do not publish availability figures on this page and would rather you test the endpoints you need before you depend on them.

What do I need to use it?

An API key and anything that can send an HTTPS request: Python, Power Query, a no-code automation tool or a scheduled script. The Group plan includes a starter spreadsheet and notebook so an analyst can begin with a list of ODS codes.

Does the retail price data give medical guidance?

No. Catalogue and price endpoints return what a retailer or reference site lists publicly. They are for product, pricing and market analysis and are not medical, clinical or prescribing advice.

See next month's local picture before your own numbers tell you.

Start with your own ODS codes and the pharmacies around them. The first benchmark table usually takes an afternoon, and then it refreshes whenever you ask.