Ofcom Coverage API

The Coverage API from Ofcom — 1 operation(s) for coverage.

Operations 1

GET /coverage/{PostCode} Get broadband provision by postcode #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/ofcom-coverage-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

ofcom-coverage-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Ofcom Coverage API
  version: '1.0'
  description: 'Operations tagged Coverage across 2 of this provider''s published API definitions: ofcom-connected-nations-broadband-api-openapi.yml, ofcom-connected-nations-mobile-api-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api-proxy.ofcom.org.uk/broadband
- url: https://api-proxy.ofcom.org.uk/mobile
security:
- apiKeyHeader: []
- apiKeyQuery: []
tags:
- name: Coverage
paths:
  /coverage/{PostCode}:
    get:
      summary: Get broadband provision by postcode
      description: This endpoint will return predicted broadband speeds broken down by up/down and by Basic/Superfast/Ultrafast alongside percentage availability of the broadband speed categories.
      operationId: CoverageByPostCodeGet
      parameters:
      - name: PostCode
        in: path
        description: The postcode of interest
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful operation - broadband provision is returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FixedAvailability'
              example:
                PostCode: string
                Availability:
                - UPRN: 0
                  AddressShortDescription: string
                  PostCode: string
                  MaxBbPredictedDown: 0
                  MaxBbPredictedUp: 0
                  MaxSfbbPredictedDown: 0
                  MaxSfbbPredictedUp: 0
                  MaxUfbbPredictedDown: 0
                  MaxUfbbPredictedUp: 0
                  MaxPredictedDown: 0
                  MaxPredictedUp: 0
        '404':
          description: Post Code not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FixedAvailabilityNotFound'
              example:
                PostCode: string
                ErrorMessage: string
        '500':
          description: General error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralError'
              example:
                ErrorMessage: string
      tags:
      - Coverage
    servers:
    - url: https://api-proxy.ofcom.org.uk/broadband
components:
  schemas:
    BroadbandProvision:
      title: BroadbandProvision
      required:
      - UPRN
      - AddressShortDescription
      - PostCode
      type: object
      properties:
        UPRN:
          type: integer
          description: Unique Property Reference Number
          format: int32
        AddressShortDescription:
          type: string
          description: A compiled address description based on use of the Ordnance Survey AddressBase fields of the form - Building Name, Building Number, Dependent_ThoroughFare
        PostCode:
          maxLength: 7
          type: string
          description: Postcode of address, spaces removed
        MaxBbPredictedDown:
          minimum: -1
          type: number
          format: double
        MaxBbPredictedUp:
          minimum: -1
          type: number
          format: double
        MaxSfbbPredictedDown:
          minimum: -1
          type: number
          format: double
        MaxSfbbPredictedUp:
          minimum: -1
          type: number
          format: double
        MaxUfbbPredictedDown:
          minimum: -1
          type: number
          format: double
        MaxUfbbPredictedUp:
          minimum: -1
          type: number
          format: double
        MaxPredictedDown:
          minimum: -1
          type: number
          format: double
        MaxPredictedUp:
          minimum: -1
          type: number
          format: double
    FixedAvailabilityNotFound:
      title: FixedAvailabilityNotFound
      required:
      - PostCode
      - ErrorMessage
      type: object
      properties:
        PostCode:
          maxLength: 7
          type: string
          description: Postcode of address, spaces removed
        ErrorMessage:
          type: string
          description: A human readable error message
    FixedAvailability:
      title: FixedAvailability
      required:
      - PostCode
      - Availability
      type: object
      properties:
        PostCode:
          maxLength: 7
          type: string
          description: Postcode of address, spaces removed
        Availability:
          type: array
          items:
            $ref: '#/components/schemas/BroadbandProvision'
    GeneralError:
      title: GeneralError
      required:
      - ErrorMessage
      type: object
      properties:
        ErrorMessage:
          type: string
          description: A human readable error message
    MobileAvailabilityArray:
      type: array
      items:
        $ref: '#/components/schemas/MobileAvailability'
    MobileProvision:
      title: MobileProvision
      required:
      - UPRN
      - AddressShortDescription
      - PostCode
      - EEVoiceOutdoor
      - EEVoiceOutdoorNo4g
      - EEVoiceIndoor
      - EEVoiceIndoorNo4g
      - EEDataOutdoor
      - EEDataOutdoorNo4g
      - EEDataIndoor
      - EEDataIndoorNo4g
      - H3VoiceOutdoor
      - H3VoiceOutdoorNo4g
      - H3VoiceIndoor
      - H3VoiceIndoorNo4g
      - H3DataOutdoor
      - H3DataOutdoorNo4g
      - H3DataIndoor
      - H3DataIndoorNo4g
      - TFVoiceOutdoor
      - TFVoiceOutdoorNo4g
      - TFVoiceIndoor
      - TFVoiceIndoorNo4g
      - TFDataOutdoor
      - TFDataOutdoorNo4g
      - TFDataIndoor
      - TFDataIndoorNo4g
      - VOVoiceOutdoor
      - VOVoiceOutdoorNo4g
      - VOVoiceIndoor
      - VOVoiceIndoorNo4g
      - VODataOutdoor
      - VODataOutdoorNo4g
      - VODataIndoor
      - VODataIndoorNo4g
      type: object
      properties:
        UPRN:
          type: integer
          description: Unique Property Reference Number
          format: int32
        AddressShortDescription:
          type: string
          description: A compiled address description based on use of the Ordnance Survey AddressBase fields of the form - Building Name, Building Number, Dependent_ThoroughFare
        PostCode:
          maxLength: 7
          type: string
          description: Postcode of address, spaces removed
        EEVoiceOutdoor:
          $ref: '#/components/schemas/MobileCoverageValue'
        EEVoiceOutdoorNo4g:
          $ref: '#/components/schemas/MobileCoverageValue'
        EEVoiceIndoor:
          $ref: '#/components/schemas/MobileCoverageValue'
        EEVoiceIndoorNo4g:
          $ref: '#/components/schemas/MobileCoverageValue'
        EEDataOutdoor:
          $ref: '#/components/schemas/MobileCoverageValue'
        EEDataOutdoorNo4g:
          $ref: '#/components/schemas/MobileCoverageValue'
        EEDataIndoor:
          $ref: '#/components/schemas/MobileCoverageValue'
        EEDataIndoorNo4g:
          $ref: '#/components/schemas/MobileCoverageValue'
        H3VoiceOutdoor:
          $ref: '#/components/schemas/MobileCoverageValue'
        H3VoiceOutdoorNo4g:
          $ref: '#/components/schemas/MobileCoverageValue'
        H3VoiceIndoor:
          $ref: '#/components/schemas/MobileCoverageValue'
        H3VoiceIndoorNo4g:
          $ref: '#/components/schemas/MobileCoverageValue'
        H3DataOutdoor:
          $ref: '#/components/schemas/MobileCoverageValue'
        H3DataOutdoorNo4g:
          $ref: '#/components/schemas/MobileCoverageValue'
        H3DataIndoor:
          $ref: '#/components/schemas/MobileCoverageValue'
        H3DataIndoorNo4g:
          $ref: '#/components/schemas/MobileCoverageValue'
        TFVoiceOutdoor:
          $ref: '#/components/schemas/MobileCoverageValue'
        TFVoiceOutdoorNo4g:
          $ref: '#/components/schemas/MobileCoverageValue'
        TFVoiceIndoor:
          $ref: '#/components/schemas/MobileCoverageValue'
        TFVoiceIndoorNo4g:
          $ref: '#/components/schemas/MobileCoverageValue'
        TFDataOutdoor:
          $ref: '#/components/schemas/MobileCoverageValue'
        TFDataOutdoorNo4g:
          $ref: '#/components/schemas/MobileCoverageValue'
        TFDataIndoor:
          $ref: '#/components/schemas/MobileCoverageValue'
        TFDataIndoorNo4g:
          $ref: '#/components/schemas/MobileCoverageValue'
        VOVoiceOutdoor:
          $ref: '#/components/schemas/MobileCoverageValue'
        VOVoiceOutdoorNo4g:
          $ref: '#/components/schemas/MobileCoverageValue'
        VOVoiceIndoor:
          $ref: '#/components/schemas/MobileCoverageValue'
        VOVoiceIndoorNo4g:
          $ref: '#/components/schemas/MobileCoverageValue'
        VODataOutdoor:
          $ref: '#/components/schemas/MobileCoverageValue'
        VODataOutdoorNo4g:
          $ref: '#/components/schemas/MobileCoverageValue'
        VODataIndoor:
          $ref: '#/components/schemas/MobileCoverageValue'
        VODataIndoorNo4g:
          $ref: '#/components/schemas/MobileCoverageValue'
    MobileCoverageValue:
      title: MobileCoverageValue
      type: integer
      description: "States:\n * `0` - None\n * `3` - Limited\n * `4` - Likely"
      format: int
      example: 1
    MobileAvailabilityNotFound:
      title: MobileAvailabilityNotFound
      required:
      - PostCode
      - ErrorMessage
      type: object
      properties:
        PostCode:
          maxLength: 7
          type: string
          description: Postcode of address, spaces removed
        ErrorMessage:
          type: string
          description: A human readable error message
    MobileAvailability:
      title: MobileAvailability
      required:
      - PostCode
      - Availability
      type: object
      properties:
        PostCode:
          maxLength: 7
          type: string
          description: Postcode of address, spaces removed
        Availability:
          type: array
          items:
            $ref: '#/components/schemas/MobileProvision'
  securitySchemes:
    apiKeyHeader:
      type: apiKey
      name: Ocp-Apim-Subscription-Key
      in: header
    apiKeyQuery:
      type: apiKey
      name: subscription-key
      in: query
x-refined-from:
- ofcom-connected-nations-broadband-api-openapi.yml
- ofcom-connected-nations-mobile-api-openapi.yml