TransportAPI · Capability

TransportAPI — Bus Information

TransportAPI — Bus Information. 3 operations. Lead operation: Get Bus Route Timetable. Self-contained Naftiko capability covering one Transportapi business surface.

Run with Naftiko TransportapiBus Information

What You Can Do

GET
Getbusroutetimetable — Get Bus Route Timetable
/v1/bus/route/{operator}/{line}/{direction}/{atcocode}/{date}/timetable-json
GET
Getbusstoplivedepartures — Get Bus Stop Live Departures
/v1/bus/stop/{atcocode}/live-json
GET
Getbusstoptimetable — Get Bus Stop Timetable
/v1/bus/stop/{atcocode}/timetable-json

MCP Tools

get-bus-route-timetable

Get Bus Route Timetable

read-only idempotent
get-bus-stop-live-departures

Get Bus Stop Live Departures

read-only idempotent
get-bus-stop-timetable

Get Bus Stop Timetable

read-only idempotent

Capability Spec

transportapi-bus-information.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: TransportAPI — Bus Information
  description: 'TransportAPI — Bus Information. 3 operations. Lead operation: Get Bus Route Timetable. Self-contained Naftiko
    capability covering one Transportapi business surface.'
  tags:
  - Transportapi
  - Bus Information
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    TRANSPORTAPI_API_KEY: TRANSPORTAPI_API_KEY
capability:
  consumes:
  - type: http
    namespace: transportapi-bus-information
    baseUri: https://transportapi.com/v3/uk
    description: TransportAPI — Bus Information business capability. Self-contained, no shared references.
    resources:
    - name: bus-route-operator-line-direction-atcocode-date-timetable.json
      path: /bus/route/{operator}/{line}/{direction}/{atcocode}/{date}/timetable.json
      operations:
      - name: getbusroutetimetable
        method: GET
        description: Get Bus Route Timetable
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: operator
          in: path
          type: string
          description: Bus operator code
          required: true
        - name: line
          in: path
          type: string
          description: Bus line/route number
          required: true
        - name: direction
          in: path
          type: string
          description: Direction of travel
          required: true
        - name: atcocode
          in: path
          type: string
          description: Starting stop ATCO code
          required: true
        - name: date
          in: path
          type: string
          description: Date for timetable (YYYY-MM-DD)
          required: true
        - name: app_id
          in: query
          type: string
        - name: app_key
          in: query
          type: string
    - name: bus-stop-atcocode-live.json
      path: /bus/stop/{atcocode}/live.json
      operations:
      - name: getbusstoplivedepartures
        method: GET
        description: Get Bus Stop Live Departures
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: atcocode
          in: path
          type: string
          description: The ATCO code of the bus stop
          required: true
        - name: group
          in: query
          type: string
          description: How to group departures in the response
        - name: nextbuses
          in: query
          type: string
          description: Whether to include real-time next bus predictions
        - name: limit
          in: query
          type: integer
          description: Maximum number of departures to return
        - name: app_id
          in: query
          type: string
          description: Application ID for authentication
        - name: app_key
          in: query
          type: string
          description: Application key for authentication
    - name: bus-stop-atcocode-timetable.json
      path: /bus/stop/{atcocode}/timetable.json
      operations:
      - name: getbusstoptimetable
        method: GET
        description: Get Bus Stop Timetable
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: atcocode
          in: path
          type: string
          description: The ATCO code of the bus stop
          required: true
        - name: date
          in: query
          type: string
          description: Date for timetable (YYYY-MM-DD, defaults to today)
        - name: app_id
          in: query
          type: string
        - name: app_key
          in: query
          type: string
    authentication:
      type: apikey
      key: X-App-Id
      value: '{{env.TRANSPORTAPI_API_KEY}}'
      placement: header
  exposes:
  - type: rest
    namespace: transportapi-bus-information-rest
    port: 8080
    description: REST adapter for TransportAPI — Bus Information. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/bus/route/{operator}/{line}/{direction}/{atcocode}/{date}/timetable-json
      name: bus-route-operator-line-direction-atcocode-date-timetable-json
      description: REST surface for bus-route-operator-line-direction-atcocode-date-timetable.json.
      operations:
      - method: GET
        name: getbusroutetimetable
        description: Get Bus Route Timetable
        call: transportapi-bus-information.getbusroutetimetable
        with:
          operator: rest.operator
          line: rest.line
          direction: rest.direction
          atcocode: rest.atcocode
          date: rest.date
          app_id: rest.app_id
          app_key: rest.app_key
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/bus/stop/{atcocode}/live-json
      name: bus-stop-atcocode-live-json
      description: REST surface for bus-stop-atcocode-live.json.
      operations:
      - method: GET
        name: getbusstoplivedepartures
        description: Get Bus Stop Live Departures
        call: transportapi-bus-information.getbusstoplivedepartures
        with:
          atcocode: rest.atcocode
          group: rest.group
          nextbuses: rest.nextbuses
          limit: rest.limit
          app_id: rest.app_id
          app_key: rest.app_key
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/bus/stop/{atcocode}/timetable-json
      name: bus-stop-atcocode-timetable-json
      description: REST surface for bus-stop-atcocode-timetable.json.
      operations:
      - method: GET
        name: getbusstoptimetable
        description: Get Bus Stop Timetable
        call: transportapi-bus-information.getbusstoptimetable
        with:
          atcocode: rest.atcocode
          date: rest.date
          app_id: rest.app_id
          app_key: rest.app_key
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: transportapi-bus-information-mcp
    port: 9090
    transport: http
    description: MCP adapter for TransportAPI — Bus Information. One tool per consumed operation, routed inline through this
      capability's consumes block.
    tools:
    - name: get-bus-route-timetable
      description: Get Bus Route Timetable
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: transportapi-bus-information.getbusroutetimetable
      with:
        operator: tools.operator
        line: tools.line
        direction: tools.direction
        atcocode: tools.atcocode
        date: tools.date
        app_id: tools.app_id
        app_key: tools.app_key
      outputParameters:
      - type: object
        mapping: $.
    - name: get-bus-stop-live-departures
      description: Get Bus Stop Live Departures
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: transportapi-bus-information.getbusstoplivedepartures
      with:
        atcocode: tools.atcocode
        group: tools.group
        nextbuses: tools.nextbuses
        limit: tools.limit
        app_id: tools.app_id
        app_key: tools.app_key
      outputParameters:
      - type: object
        mapping: $.
    - name: get-bus-stop-timetable
      description: Get Bus Stop Timetable
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: transportapi-bus-information.getbusstoptimetable
      with:
        atcocode: tools.atcocode
        date: tools.date
        app_id: tools.app_id
        app_key: tools.app_key
      outputParameters:
      - type: object
        mapping: $.