OpenPrescribing Tariff API
Drug-tariff prices and price-per-unit / ghost-generic savings data.
Drug-tariff prices and price-per-unit / ghost-generic savings data.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/openprescribing-tariff-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: OpenPrescribing Tariff API
version: '1.0'
summary: Free, open, key-less REST API over English NHS primary-care prescribing data.
description: OpenPrescribing.net exposes NHS England primary-care (GP) prescribing data as a free, public, RESTful API.
license:
name: MIT
url: https://github.com/bennettoxford/openprescribing/blob/main/LICENSE.txt
contact:
name: Bennett Institute for Applied Data Science
url: https://openprescribing.net/api/
servers:
- url: https://openprescribing.net/api/1.0
description: Production
tags:
- name: Tariff
description: Drug-tariff prices and price-per-unit / ghost-generic savings data.
paths:
/bubble/:
get:
operationId: getBubble
summary: Price-per-unit bubble-chart data
description: Price-per-unit data for a single BNF presentation in a shape suitable for a Highcharts bubble chart, optionally highlighting/focusing a single organisation.
tags:
- Tariff
parameters:
- name: bnf_code
in: query
required: true
schema:
type: string
description: BNF presentation code.
- name: date
in: query
required: true
schema:
type: string
format: date
description: Month (YYYY-MM-DD, first of month) within the available 5-year window.
- name: highlight
in: query
schema:
type: string
description: Organisation code to highlight (practice or CCG/Sub-ICB Location).
- name: focus
in: query
schema:
type: string
description: When set together with highlight, restricts the chart to the highlighted org.
responses:
'200':
$ref: '#/components/responses/Bubble'
'400':
$ref: '#/components/responses/BadRequest'
/tariff/:
get:
operationId: getTariff
summary: Drug-tariff prices
description: Drug-tariff prices (including NCSO price-concession data) for one or more BNF codes. Requesting no codes returns the entire (large) tariff and is cached.
tags:
- Tariff
parameters:
- name: codes
in: query
schema:
type: string
description: Comma-separated list of BNF codes. Omit to return the whole drug tariff.
- $ref: '#/components/parameters/format'
responses:
'200':
$ref: '#/components/responses/GenericList'
/price_per_unit/:
get:
operationId: getPricePerUnit
summary: Price-per-unit savings
description: Price-per-unit data and potential savings for presentations across practices or Sub-ICB Locations for a given month.
tags:
- Tariff
parameters:
- name: date
in: query
required: true
schema:
type: string
format: date
description: Month (YYYY-MM-DD, first of month).
- name: entity_code
in: query
schema:
type: string
description: Organisation code (practice or CCG/Sub-ICB Location).
- name: entity_type
in: query
schema:
type: string
enum:
- practice
- ccg
description: Organisation type; inferred from entity_code length when omitted.
- name: child_org_type
in: query
schema:
type: string
description: Child organisation type to break results down to (e.g. practice).
- name: bnf_code
in: query
schema:
type: string
description: Restrict to a single BNF code.
- name: aggregate
in: query
schema:
type: boolean
description: Aggregate across all of England.
- $ref: '#/components/parameters/format'
responses:
'200':
$ref: '#/components/responses/GenericList'
'400':
$ref: '#/components/responses/BadRequest'
/ghost_generics/:
get:
operationId: getGhostGenerics
summary: Ghost-generic savings
description: Potential savings from "ghost-branded generic" prescribing, comparing the price paid against the national median price, for a given month and organisation.
tags:
- Tariff
parameters:
- name: date
in: query
required: true
schema:
type: string
format: date
description: Month (YYYY-MM-DD, first of month).
- name: entity_code
in: query
schema:
type: string
description: Organisation code.
- name: entity_type
in: query
required: true
schema:
type: string
enum:
- practice
- ccg
description: Organisation type.
- name: group_by
in: query
schema:
type: string
enum:
- practice
- presentation
- all
default: practice
description: Aggregation level for the results.
- $ref: '#/components/parameters/format'
responses:
'200':
$ref: '#/components/responses/GenericList'
'400':
$ref: '#/components/responses/BadRequest'
components:
responses:
GenericList:
description: A list of result objects.
content:
application/json:
schema:
type: array
items:
type: object
text/csv:
schema:
type: string
Bubble:
description: Bubble-chart series and categories.
content:
application/json:
schema:
type: object
properties:
plotline:
type:
- number
- 'null'
series:
type: array
items:
type: object
categories:
type: array
items:
type: object
BadRequest:
description: Invalid request (bad/missing parameter, unrecognised org type, invalid code).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
parameters:
format:
name: format
in: query
schema:
type: string
enum:
- json
- csv
default: json
description: Response format. May also be supplied as a URL suffix (.json / .csv) via DRF format_suffix_patterns.
schemas:
Error:
type: object
description: Django REST Framework error envelope.
properties:
detail:
type: string