TransCAPI Disruptions API

The Disruptions API from TransCAPI — 1 operation(s) for disruptions.

Operations 1

GET /v1/disruptions.json Planned works, incidents and line status across bus, National Rail and TfL modes #

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/transcapi:transcapi-disruptions-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

transcapi-disruptions-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    url: https://www.transcapi.com
  description: 'Public transport data for Great Britain (England, Scotland and Wales): stops and places, bus and rail departures and arrivals with live running, routes and services, live bus positions, disruptions and journey planning. Every departure says in `source` whether its time is live or timetabled. Data is official open data; attribution requirements are at https://www.transcapi.com/docs/data-sources.'
  termsOfService: https://www.transcapi.com/terms
  title: TransC Disruptions API
  version: 1.0.0
servers:
- description: Production
  url: https://api.transcapi.com
security:
- ApiKeyHeader: []
- ApiKeyQuery: []
tags:
- name: Disruptions
paths:
  /v1/disruptions.json:
    get:
      description: 'Combines the DfT''s national BODS SIRI-SX bus situation feed, National Rail''s Knowledgebase incidents (planned engineering works and unplanned incidents), TfL''s line status for the Tube, DLR, Overground, Elizabeth line and trams, and the service alerts of every Dutch operator (OVapi) and of SNCB, De Lijn and TEC in Belgium, normalised into one shape. Each result carries the `source` it came from (`bods_siri_sx`, `nre_kb`, `tfl`, `ovapi_gtfsr`, `bmc_gtfsr`). National Rail incidents list the stations named in their affected routes, with CRS codes and positions, so stop, location and route filters apply to rail too.


        By default only disruptions currently in force are returned, and lines running a good service are omitted; pass `include_good_service=true` to see every TfL line''s status including the healthy ones. The `sources` object reports when each feed was last retrieved and whether it last failed, so an empty list is distinguishable from an outage.'
      parameters:
      - description: 'Comma-separated modes to include - any of `bus`, `tram`, `rail`, `metro`, `ferry`, `tube`, `dlr`, `overground`, `elizabeth-line`. Default is all of them. `tram` draws on both SIRI-SX and TfL. `rail` is National Rail''s engineering works and incidents, plus any rail situations bus operators publish through SIRI-SX, and SNCB''s in Belgium. `metro` and `ferry` are the Netherlands and Belgium.

          '
        in: query
        name: mode
        schema:
          type: string
      - description: 'Comma-separated severities - any of `severe`, `minor`, `information`, `good`, `unknown`.

          '
        in: query
        name: severity
        schema:
          type: string
      - description: Only disruptions naming this stop as affected
        in: query
        name: atcocode
        schema:
          type: string
      - description: Operator name or code, matched as a substring
        in: query
        name: operator
        schema:
          type: string
      - description: Line or route name, matched as a substring
        in: query
        name: line
        schema:
          type: string
      - in: query
        name: lat
        schema:
          type: number
      - in: query
        name: lon
        schema:
          type: number
      - description: 'Search radius in metres around lat/lon. Only disruptions naming at least one stop with coordinates can match a geographic query.

          '
        in: query
        name: radius
        schema:
          default: 2000
          type: integer
      - in: query
        name: min_lat
        schema:
          type: number
      - in: query
        name: min_lon
        schema:
          type: number
      - in: query
        name: max_lat
        schema:
          type: number
      - in: query
        name: max_lon
        schema:
          type: number
      - description: 'An encoded polyline (precision 5, as OpenTripPlanner and Google Maps emit) describing a route. Only disruptions naming a stop within `path_radius` metres of it are returned. Use this rather than a bounding box to ask "what is disrupting this journey": a service number identifies a route only within one operator''s area, so filtering by `line` alone will match the same number in other towns. Matching uses each situation''s complete stop list, not the capped one in the response.

          '
        in: query
        name: path
        schema:
          type: string
      - description: 'How far from the path a stop may be, in metres. Maximum 5000. Only meaningful alongside `path`.

          '
        in: query
        name: path_radius
        schema:
          default: 300
          type: integer
      - description: 'True for planned works only, false for unplanned incidents only. Omit to include both.

          '
        in: query
        name: planned
        schema:
          type: boolean
      - description: Exclude disruptions whose validity period has not started or has ended
        in: query
        name: active_only
        schema:
          default: true
          type: boolean
      - in: query
        name: include_good_service
        schema:
          default: false
          type: boolean
      - in: query
        name: limit
        schema:
          default: 50
          type: integer
      - in: query
        name: page
        schema:
          default: 1
          type: integer
      responses:
        '200':
          description: List of disruptions
      summary: Planned works, incidents and line status across bus, National Rail and TfL modes
      tags:
      - Disruptions
      operationId: getV1DisruptionsJson
      x-operation-id-source: derived
components:
  securitySchemes:
    ApiKeyHeader:
      in: header
      name: X-Api-Key
      type: apiKey
    ApiKeyQuery:
      in: query
      name: api_key
      type: apiKey