Geofabrik · Schema

Geofabrik Extract Index

JSON Schema for the Geofabrik Download API index-v1.json GeoJSON FeatureCollection response.

OpenStreetMapGeospatialGISMapsDownloadOSMRoutingGeocoding

Properties

Name Type Description
type string GeoJSON object type — always 'FeatureCollection'.
features array Array of extract features, each describing a downloadable OSM region.
View JSON Schema on GitHub

JSON Schema

geofabrik-extract-index-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://api-evangelist.github.io/geofabrik/json-schema/geofabrik-extract-index-schema.json",
  "title": "Geofabrik Extract Index",
  "description": "JSON Schema for the Geofabrik Download API index-v1.json GeoJSON FeatureCollection response.",
  "type": "object",
  "required": ["type", "features"],
  "properties": {
    "type": {
      "type": "string",
      "const": "FeatureCollection",
      "description": "GeoJSON object type — always 'FeatureCollection'."
    },
    "features": {
      "type": "array",
      "description": "Array of extract features, each describing a downloadable OSM region.",
      "items": {
        "$ref": "#/$defs/ExtractFeature"
      }
    }
  },
  "$defs": {
    "ExtractFeature": {
      "type": "object",
      "required": ["type", "properties"],
      "properties": {
        "type": {
          "type": "string",
          "const": "Feature"
        },
        "properties": {
          "$ref": "#/$defs/ExtractProperties"
        },
        "geometry": {
          "description": "GeoJSON boundary geometry for the extract area, or null for the planet.",
          "oneOf": [
            { "type": "null" },
            { "$ref": "#/$defs/GeoJsonPolygon" },
            { "$ref": "#/$defs/GeoJsonMultiPolygon" }
          ]
        }
      }
    },
    "ExtractProperties": {
      "type": "object",
      "required": ["id", "name", "urls"],
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique extract identifier (letters, digits, hyphens, forward slashes).",
          "examples": ["act", "europe", "us/california", "germany"]
        },
        "parent": {
          "type": "string",
          "description": "Identifier of the next larger excerpt that contains this one.",
          "examples": ["australia", "north-america"]
        },
        "name": {
          "type": "string",
          "description": "English long-form area name.",
          "examples": ["Australian Capital Territory", "Germany"]
        },
        "iso3166-1:alpha2": {
          "type": "array",
          "description": "ISO 3166-1 alpha-2 two-letter country codes covering this extract.",
          "items": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2,
            "pattern": "^[A-Z]{2}$"
          },
          "examples": [["AU"], ["DE"], ["US", "CA"]]
        },
        "iso3166-2": {
          "type": "array",
          "description": "ISO 3166-2 sub-national region codes covering this extract.",
          "items": {
            "type": "string",
            "pattern": "^[A-Z]{2}-[A-Z0-9]{1,3}$"
          },
          "examples": [["AU-ACT"], ["US-CA"]]
        },
        "urls": {
          "$ref": "#/$defs/ExtractUrls"
        }
      }
    },
    "ExtractUrls": {
      "type": "object",
      "description": "Download URLs for the extract in various formats.",
      "properties": {
        "pbf": {
          "type": "string",
          "format": "uri",
          "description": "Direct download URL for the latest .osm.pbf (PBF binary) extract."
        },
        "bz2": {
          "type": "string",
          "format": "uri",
          "description": "Direct download URL for the latest .osm.bz2 (bzip2-compressed OSM XML) extract."
        },
        "shp": {
          "type": "string",
          "format": "uri",
          "description": "Direct download URL for the latest shapefile ZIP archive."
        },
        "updates": {
          "type": "string",
          "format": "uri",
          "description": "Base URL for the replication/diff updates feed; append /state.txt for current sequence."
        },
        "pbf-internal": {
          "type": "string",
          "format": "uri",
          "description": "OSM PBF with user/editor metadata; requires OpenStreetMap OAuth login."
        },
        "history": {
          "type": "string",
          "format": "uri",
          "description": "Full history .osh.pbf file; requires OpenStreetMap OAuth login."
        },
        "taginfo": {
          "type": "string",
          "format": "uri",
          "description": "Link to Geofabrik's taginfo instance for this extract region."
        }
      }
    },
    "GeoJsonPolygon": {
      "type": "object",
      "required": ["type", "coordinates"],
      "properties": {
        "type": { "type": "string", "const": "Polygon" },
        "coordinates": {
          "type": "array",
          "items": {
            "type": "array",
            "items": {
              "type": "array",
              "items": { "type": "number" },
              "minItems": 2,
              "maxItems": 2
            }
          }
        }
      }
    },
    "GeoJsonMultiPolygon": {
      "type": "object",
      "required": ["type", "coordinates"],
      "properties": {
        "type": { "type": "string", "const": "MultiPolygon" },
        "coordinates": {
          "type": "array",
          "items": {
            "type": "array",
            "items": {
              "type": "array",
              "items": {
                "type": "array",
                "items": { "type": "number" },
                "minItems": 2,
                "maxItems": 2
              }
            }
          }
        }
      }
    }
  }
}