diff --git a/index.json b/index.json
index 91fa594..04c8c97 100644
--- a/index.json
+++ b/index.json
@@ -24,6 +24,9 @@
             "subCategories": [
                 {
                     "id": "communication"
+                },
+                {
+                    "id": "public"
                 }
             ]
         },
diff --git a/public.json b/public.json
new file mode 100644
index 0000000..ded77b9
--- /dev/null
+++ b/public.json
@@ -0,0 +1,17 @@
+{
+    "type": "overpass",
+    "name:en": "Public Services",
+    "query": {
+      "12": "(node[amenity~'^(court_house|embassy|public_building|townhall)$'];way[amenity~'^(court_house|embassy|public_building|townhall)$'];relation[amenity~'^(court_house|embassy|public_building|townhall)$'];node[amenity=recycling][recyling_type=centre];way[amenity=recycling][recyling_type=centre];relation[amenity=recycling][recyling_type=centre];);",
+      "16": "(node[amenity~'^(court_house|embassy|public_building|townhall|clock|drinking_water|recycling)$'];way[amenity~'^(court_house|embassy|public_building|townhall|recycling)$'];relation[amenity~'^(court_house|embassy|public_building|townhall|recycling)$'];node[drinking_water]);"
+    },
+    "minZoom": 12,
+    "feature": {
+        "title": "{{ tags.name|default(tags.operator)|default(tagTrans('amenity', tags.amenity)) }}",
+        "markerSign": "{% if tags.amenity=='post_office' %}🏤{% elseif tags.amenity=='post_box'%}📮{% elseif tags.amenity=='internet_cafe' %}💻{% elseif tags.amenity=='telephone' %}✆{% endif %}",
+        "body": "{{ tagTrans('amenity', tags.amenity) }}<br/>{% if tags.operator %}Operator: {{ tags.operator }}<br/>{% endif %}",
+        "description": "{{ tagTrans('amenity', tags.amenity) }}"
+    }
+}
+
+