Skip to main content

What is GOV.UK Notify?

GOV.UK Notify is a government notification service that allows public sector organizations to send SMS, email, and letter notifications to citizens quickly and reliably. The service provides a REST API for integration, along with official client libraries for multiple programming languages.
GOV.UK Notify handles millions of notifications daily for UK government services, providing reliable delivery tracking, multi-provider failover, and comprehensive reporting.

Key Features

Multi-Channel Delivery

Send SMS, emails, and physical letters through a single unified API with automatic provider routing.

Template Management

Create reusable message templates with personalisation fields for dynamic content.

Scalable Architecture

Built on Flask and Celery with PostgreSQL, designed to handle high-volume notification processing.

Multiple Providers

Integrated with AWS SES for email, Firetext and MMG for SMS, and DVLA for letter printing.

Delivery Tracking

Real-time status updates with detailed delivery receipts and failure notifications.

Rate Limiting

Built-in rate limiting and daily message caps to prevent abuse and manage costs.

Inbound SMS

Receive and process inbound SMS messages with webhook callbacks.

Bulk Processing

Upload CSV files to send thousands of personalized notifications in batch jobs.

Get Started

Quick Start

Send your first notification in minutes with step-by-step guidance.

System Architecture

Understand the system components and how they work together.

Authentication

Learn how to authenticate API requests with JWT tokens.

API Reference

Explore the complete public API reference with examples.

API Capabilities

The GOV.UK Notify API provides the following public endpoints:
  • POST /v2/notifications/sms - Send an SMS message
  • POST /v2/notifications/email - Send an email
  • POST /v2/notifications/letter - Send a letter (templated or precompiled PDF)
  • GET /v2/notifications/ - Get notification status by ID
  • GET /v2/notifications - List all notifications with filtering
  • GET /v2/notifications//pdf - Download letter PDF
  • GET /v2/template/ - Get a specific template
  • GET /v2/templates - List all templates for your service
  • POST /v2/template//preview - Preview a template with personalisation
  • GET /v2/received-text-messages - Retrieve inbound SMS messages

Technology Stack

GOV.UK Notify is built with:
  • Python 3.13 - Runtime environment
  • Flask - Web framework for REST API
  • Celery - Asynchronous task queue for notification processing
  • PostgreSQL - Primary data store with read replicas
  • Redis - Caching and Celery message broker
  • AWS Services - SES (email), S3 (document storage), CloudFront (CDN)
  • SQLAlchemy - ORM and database migrations via Alembic

Who Uses Notify?

GOV.UK Notify is used by hundreds of UK government services to:
  • Send appointment reminders and confirmations
  • Deliver application status updates
  • Issue payment receipts and invoices
  • Provide password reset and verification codes
  • Send policy renewal notices and reminders
  • Communicate emergency alerts and service updates

Support & Documentation

Core Concepts

Learn about services, templates, and notifications

Client Libraries

Use official clients for Python, Ruby, Java, Node.js, and more

Operations Guide

Deploy and operate your own instance
This documentation covers the API service component. For the admin web interface, see the notifications-admin repository.

Build docs developers (and LLMs) love