TIER / Dott GBFS API

GBFS 2.3 public feeds covering every Dott (formerly TIER) city. Per-city endpoints return real-time vehicle positions and battery state (free_bike_status), vehicle types, pricing plans, station information and status, and geofencing zones. Unauthenticated, free, and aligned with the MobilityData GBFS standard.

TIER / Dott GBFS API is published by TIER on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 1 machine-runnable capability that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko and 2 JSON Schema definitions.

Tagged areas include GBFS, Micromobility, Real-Time, and Open Data. The published artifact set on APIs.io includes an OpenAPI specification, a JSON-LD context, rate-limit docs, sample payloads, 1 Naftiko capability spec, and 2 JSON Schemas.

Documentation

Specifications

Examples

Schemas & Data

Other Resources

OpenAPI Specification

tier-mobility-gbfs-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: TIER / Dott GBFS API
  version: '2.3'
  description: >-
    Public GBFS (General Bikeshare Feed Specification) 2.3 endpoints for
    TIER / Dott shared micromobility systems. After the 2024 TIER + Dott
    merger, all GBFS feeds are served under the unified ridedott.com
    infrastructure at https://gbfs.api.ridedott.com/public/v2. Each city
    or zone is a separate "system" identified by a slug
    (e.g. `berlin`, `paris`, `london`, `madrid`, `dubai`). The API exposes
    a discovery document plus a standard set of GBFS feeds: system
    information, vehicle types, station information, station status,
    free-floating vehicle status, geofencing zones, and system pricing
    plans. All endpoints are unauthenticated and return JSON.
  contact:
    name: Dott (formerly TIER)
    url: https://ridedott.com/
servers:
  - url: https://gbfs.api.ridedott.com/public/v2
    description: Production GBFS feeds (TIER and Dott systems unified)
tags:
  - name: Discovery
    description: GBFS discovery and versioning
  - name: System
    description: System-level metadata and pricing
  - name: Vehicles
    description: Vehicle inventory, types, and real-time status
  - name: Stations
    description: Station information and availability
  - name: Zones
    description: Geofencing rules and operational zones
paths:
  /gbfs_versions.json:
    get:
      tags: [Discovery]
      summary: List GBFS Versions
      description: Returns all GBFS schema versions exposed by Dott across systems.
      operationId: listGbfsVersions
      responses:
        '200':
          description: GBFS versions document.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GbfsVersions'
  /{system_id}/gbfs.json:
    get:
      tags: [Discovery]
      summary: Get GBFS Discovery Document
      description: >-
        Returns the GBFS auto-discovery document for a given city/system,
        listing every available feed URL.
      operationId: getGbfsDiscovery
      parameters:
        - $ref: '#/components/parameters/SystemId'
      responses:
        '200':
          description: GBFS discovery document.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GbfsDiscovery'
  /{system_id}/system_information.json:
    get:
      tags: [System]
      summary: Get System Information
      description: >-
        Returns operator name, language, timezone, rental app deep links,
        and system identifier for the given city.
      operationId: getSystemInformation
      parameters:
        - $ref: '#/components/parameters/SystemId'
      responses:
        '200':
          description: System information feed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SystemInformation'
  /{system_id}/system_pricing_plans.json:
    get:
      tags: [System]
      summary: Get System Pricing Plans
      description: >-
        Returns unlock price, per-minute rate, currency, and plan IDs for
        each vehicle type in the system.
      operationId: getSystemPricingPlans
      parameters:
        - $ref: '#/components/parameters/SystemId'
      responses:
        '200':
          description: Pricing plans feed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SystemPricingPlans'
  /{system_id}/vehicle_types.json:
    get:
      tags: [Vehicles]
      summary: Get Vehicle Types
      description: >-
        Returns the form factors (scooter, bicycle), propulsion types,
        max range, and pricing-plan associations for vehicles operated
        in the system.
      operationId: getVehicleTypes
      parameters:
        - $ref: '#/components/parameters/SystemId'
      responses:
        '200':
          description: Vehicle types feed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VehicleTypes'
  /{system_id}/free_bike_status.json:
    get:
      tags: [Vehicles]
      summary: Get Free Vehicle Status
      description: >-
        Real-time list of free-floating vehicles available for rent,
        including position, battery level (`current_fuel_percent`),
        remaining range, pricing plan, and rental URIs.
      operationId: getFreeBikeStatus
      parameters:
        - $ref: '#/components/parameters/SystemId'
      responses:
        '200':
          description: Free vehicle status feed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FreeBikeStatus'
  /{system_id}/station_information.json:
    get:
      tags: [Stations]
      summary: Get Station Information
      description: Static station definitions (where stations are deployed in the system).
      operationId: getStationInformation
      parameters:
        - $ref: '#/components/parameters/SystemId'
      responses:
        '200':
          description: Station information feed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StationInformation'
  /{system_id}/station_status.json:
    get:
      tags: [Stations]
      summary: Get Station Status
      description: Real-time docking station availability and vehicle counts.
      operationId: getStationStatus
      parameters:
        - $ref: '#/components/parameters/SystemId'
      responses:
        '200':
          description: Station status feed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StationStatus'
  /{system_id}/geofencing_zones.json:
    get:
      tags: [Zones]
      summary: Get Geofencing Zones
      description: >-
        GeoJSON FeatureCollection describing no-ride, no-park, low-speed,
        and operational zones within the system.
      operationId: getGeofencingZones
      parameters:
        - $ref: '#/components/parameters/SystemId'
      responses:
        '200':
          description: Geofencing zones feed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeofencingZones'
components:
  parameters:
    SystemId:
      name: system_id
      in: path
      required: true
      description: >-
        The Dott/TIER system slug, e.g. `berlin`, `paris`, `london`,
        `madrid`, `rome`, `brussels`, `dubai`. Listed in the
        MobilityData GBFS systems registry.
      schema:
        type: string
        example: berlin
  schemas:
    FeedMeta:
      type: object
      required: [last_updated, ttl, version]
      properties:
        last_updated:
          type: integer
          format: int64
          description: POSIX timestamp when the feed was last updated.
        ttl:
          type: integer
          description: Seconds until the next regeneration.
        version:
          type: string
          example: '2.3'
    GbfsVersions:
      allOf:
        - $ref: '#/components/schemas/FeedMeta'
        - type: object
          properties:
            data:
              type: object
              properties:
                versions:
                  type: array
                  items:
                    type: object
                    properties:
                      version: { type: string }
                      url: { type: string, format: uri }
    GbfsDiscovery:
      allOf:
        - $ref: '#/components/schemas/FeedMeta'
        - type: object
          properties:
            data:
              type: object
              additionalProperties:
                type: object
                properties:
                  feeds:
                    type: array
                    items:
                      type: object
                      properties:
                        name: { type: string }
                        url: { type: string, format: uri }
    SystemInformation:
      allOf:
        - $ref: '#/components/schemas/FeedMeta'
        - type: object
          properties:
            data:
              type: object
              properties:
                system_id: { type: string }
                language: { type: string }
                name: { type: string }
                timezone: { type: string }
                rental_apps:
                  type: object
                  properties:
                    android:
                      type: object
                      properties:
                        discovery_uri: { type: string }
                        store_uri: { type: string, format: uri }
                    ios:
                      type: object
                      properties:
                        discovery_uri: { type: string }
                        store_uri: { type: string, format: uri }
    SystemPricingPlans:
      allOf:
        - $ref: '#/components/schemas/FeedMeta'
        - type: object
          properties:
            data:
              type: object
              properties:
                plans:
                  type: array
                  items:
                    type: object
                    properties:
                      plan_id: { type: string }
                      name: { type: string }
                      description: { type: string }
                      currency: { type: string }
                      price: { type: number, format: float }
                      is_taxable: { type: boolean }
                      per_min_pricing:
                        type: array
                        items:
                          type: object
                          properties:
                            interval: { type: integer }
                            rate: { type: number, format: float }
                            start: { type: integer }
    VehicleTypes:
      allOf:
        - $ref: '#/components/schemas/FeedMeta'
        - type: object
          properties:
            data:
              type: object
              properties:
                vehicle_types:
                  type: array
                  items:
                    type: object
                    properties:
                      vehicle_type_id: { type: string }
                      form_factor:
                        type: string
                        enum: [scooter, bicycle, car, moped, other, cargo_bicycle]
                      propulsion_type:
                        type: string
                        enum: [human, electric_assist, electric, combustion, combustion_diesel, hybrid, plug_in_hybrid, hydrogen_fuel_cell]
                      max_range_meters: { type: integer }
                      pricing_plan_ids:
                        type: array
                        items: { type: string }
    FreeBikeStatus:
      allOf:
        - $ref: '#/components/schemas/FeedMeta'
        - type: object
          properties:
            data:
              type: object
              properties:
                bikes:
                  type: array
                  items:
                    type: object
                    properties:
                      bike_id: { type: string }
                      lat: { type: number, format: double }
                      lon: { type: number, format: double }
                      is_reserved: { type: boolean }
                      is_disabled: { type: boolean }
                      current_range_meters: { type: integer }
                      current_fuel_percent: { type: number, format: float }
                      vehicle_type_id: { type: string }
                      pricing_plan_id: { type: string }
                      last_reported: { type: integer, format: int64 }
                      rental_uris:
                        type: object
                        properties:
                          android: { type: string, format: uri }
                          ios: { type: string, format: uri }
                          web: { type: string, format: uri }
    StationInformation:
      allOf:
        - $ref: '#/components/schemas/FeedMeta'
        - type: object
          properties:
            data:
              type: object
              properties:
                stations:
                  type: array
                  items:
                    type: object
                    properties:
                      station_id: { type: string }
                      name: { type: string }
                      lat: { type: number, format: double }
                      lon: { type: number, format: double }
                      capacity: { type: integer }
    StationStatus:
      allOf:
        - $ref: '#/components/schemas/FeedMeta'
        - type: object
          properties:
            data:
              type: object
              properties:
                stations:
                  type: array
                  items:
                    type: object
                    properties:
                      station_id: { type: string }
                      num_bikes_available: { type: integer }
                      num_docks_available: { type: integer }
                      is_installed: { type: boolean }
                      is_renting: { type: boolean }
                      is_returning: { type: boolean }
                      last_reported: { type: integer, format: int64 }
    GeofencingZones:
      allOf:
        - $ref: '#/components/schemas/FeedMeta'
        - type: object
          properties:
            data:
              type: object
              properties:
                geofencing_zones:
                  type: object
                  properties:
                    type:
                      type: string
                      enum: [FeatureCollection]
                    features:
                      type: array
                      items:
                        type: object
                        properties:
                          type: { type: string, enum: [Feature] }
                          geometry: { type: object }
                          properties:
                            type: object
                            properties:
                              name: { type: string }
                              start: { type: integer }
                              end: { type: integer }
                              rules:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    vehicle_type_id:
                                      type: array
                                      items: { type: string }
                                    ride_allowed: { type: boolean }
                                    ride_through_allowed: { type: boolean }
                                    maximum_speed_kph: { type: integer }
                                    station_parking: { type: boolean }