L logiover
developer-tools · Jul 3, 2026 · 7 min read

Overpass QL out center tags: Valid Syntax and What It Returns

Is `out center tags;` valid Overpass QL? Yes — and the parameter order doesn't matter. Here's exactly what `out center tags` returns, how it differs from `out center` and `out body`, and when to use each.

If you’ve written an Overpass query to pull businesses or POIs out of OpenStreetMap, you’ve almost certainly hit the last line — the out statement — and paused. Is it out center tags;? out tags center;? Does the order matter? Is out center; enough on its own? The Overpass QL documentation lists the parameters but is thin on the practical question everyone actually has: what does out center tags; return, and is it even valid syntax?

Short answer: out center tags; is valid, the order of the two keywords does not matter, and it returns exactly the tags of each element plus a single usable coordinate — no geometry bloat. That last property is why it’s the right output line for lead and POI extraction. This guide breaks down the out statement precisely so you never have to guess again.

The one-paragraph answer

out takes a whitespace-separated list of parameters, and per the Overpass QL specification they can appear in any order. center and tags belong to two independent groups — center is a geometry modifier, tags is a verbosity level — so out center tags; and out tags center; are identical and both valid. The combination means: give me each element’s tags, plus one representative lat/lon (the centre of its bounding box), and skip the raw node/member geometry. For a table of businesses with a name, phone, website and a point on the map, that’s precisely the shape you want.

Anatomy of the out statement

Every Overpass query ends by printing a result set with out. The statement accepts parameters from four independent categories, appended after the word out and before the semicolon:

GroupOptionsPurpose
Verbosityids, skel, body (default), tags, metaHow much detail per element
Geometrygeom, bb, centerWhether/how coordinates are attached
Sort orderasc (default), qtID order vs. faster spatial order
Limita positive integer, e.g. 100Cap the number of results

Because each group is independent, you mix at most one from each and the order is free. out tags center 500 qt; is legal and so is out qt 500 center tags;. The parser reads each keyword by name, not by position.

The verbosity levels, precisely

This is the group people misunderstand, so here is exactly what each returns:

  • ids — element type and id only. Nothing else.
  • skel — “skeleton”: geometry only, no tags. Node lat/lon, or a way’s node references.
  • body (default) — ids, tags, and child references (a way’s nodes, a relation’s members). This is what you get if you write a bare out;. Note: body gives you a way’s node IDs, not their resolved coordinates.
  • tags — tags only, no geometry at all. Even a node comes back with no lat/lon.
  • meta — everything in body plus edit metadata: timestamp, version, changeset, user, uid. Use this only if you intend to edit or audit the data.

The default is body, and body already includes tags — so out center; on its own returns tags too. The difference between out center; and out center tags; is not whether you get tags; it’s whether you also get the raw child geometry.

The geometry modifiers

  • center — adds a single center point (the centre of the element’s bounding box) to ways and relations. Nodes already are a point, so they’re unaffected in position. Handy detail from the spec: the centre is not guaranteed to fall inside a concave polygon — it’s the bbox centroid, not a point-on-surface.
  • geom — attaches the full resolved geometry: every coordinate of a way, every member of a relation. Verbose but complete.
  • bb — attaches the bounding box only (min/max lat/lon), not a single point.

So what does out center tags; actually return?

Combine tags (verbosity: tags, no child geometry) with center (geometry: one representative point) and you get the leanest useful record: tags + one coordinate, for every element type. Here’s the same restaurant as a node and as a building way, under three different out lines, so the difference is concrete.

A restaurant mapped as a way (a building outline), printed with out center tags;:

{
  "type": "way",
  "id": 25896247,
  "center": { "lat": 52.3641, "lon": 4.8896 },
  "tags": {
    "amenity": "restaurant",
    "name": "Café de Klos",
    "phone": "+31 20 625 5559",
    "website": "https://cafedeklos.nl",
    "cuisine": "dutch"
  }
}

The same way with out center; (i.e. default body + center) — note the extra nodes array you probably don’t want:

{
  "type": "way",
  "id": 25896247,
  "center": { "lat": 52.3641, "lon": 4.8896 },
  "nodes": [283445123, 283445124, 283445125, 283445126, 283445123],
  "tags": { "amenity": "restaurant", "name": "Café de Klos", "...": "..." }
}

And the same way with out geom; — the full polygon, which is overkill for a lead list:

{
  "type": "way",
  "id": 25896247,
  "bounds": { "minlat": 52.3640, "minlon": 4.8895, "maxlat": 52.3642, "maxlon": 4.8897 },
  "geometry": [
    { "lat": 52.3640, "lon": 4.8895 },
    { "lat": 52.3642, "lon": 4.8896 },
    { "lat": 52.3641, "lon": 4.8897 }
  ],
  "tags": { "amenity": "restaurant", "name": "Café de Klos", "...": "..." }
}

For a POI or lead dataset you want the first shape: one row, one coordinate, clean tags. That’s the whole case for out center tags;.

Run the OpenStreetMap Business & POI Scraper — it writes the Overpass QL, handles endpoint throttling, and returns flat rows (name, phone, website, address, lat/lon) so you never hand-tune an out line. No API key, no proxy.

Why you need center (or geom) at all

Nodes carry their own lat/lon, so a query that returns only nodes technically doesn’t need center. The moment your query also matches ways and relations — and for real-world features it almost always does, because a shop is frequently tagged on its building outline rather than a pin — those elements have no single coordinate. Without center or geom, a way comes back as a list of node IDs and you can’t place it on a map. center collapses each way/relation to one lat/lon so every row is directly usable. That’s why the canonical business-extraction pattern queries nodes and ways and finishes with out center tags;:

[out:json][timeout:60];
(
  node["amenity"="restaurant"](52.35,4.85,52.40,4.95);
  way["amenity"="restaurant"](52.35,4.85,52.40,4.95);
  relation["amenity"="restaurant"](52.35,4.85,52.40,4.95);
);
out center tags;

Every match — node, way, or relation — comes back with its tags and exactly one coordinate.

Common mistakes with out center tags

  • Expecting geometry from tags. out tags; (without center or geom) returns no coordinates, even for nodes. If your rows are missing lat/lon, you dropped the center.
  • Confusing center with geom. center is one point; geom is the full shape. If you only need to drop a marker, center is far lighter and faster.
  • Forgetting [out:json]. Without the [out:json] setting at the top, Overpass returns XML, and your JSON parser chokes. The out line controls detail; the settings line controls format.
  • Thinking order matters. It doesn’t. out center tags; and out tags center; are the same. Spend your attention on the query body, not the keyword order.
  • Assuming the centre sits inside the shape. For U-shaped or concave features the bbox centre can land outside the polygon. It’s fine for mapping and clustering; don’t use it for precise point-in-polygon logic.
  • No timeout and no spatial filter. out can’t save a query that asks for too much. Always scope with a bounding box, around:, or an area, and set a [timeout:...].

Which out line should you use?

  • Business / POI / lead extractionout center tags;. Tags plus one coordinate, minimum weight.
  • You need the full polygon or line (routing, rendering, area math) → out geom;.
  • You need a way’s raw node IDs (re-fetching, topology) → out body; or out center;.
  • Counting onlyout count; returns the number of matched elements and nothing else.
  • Fastest possible pull, tags irrelevantout skel qt;.

For the overwhelming majority of “get me the businesses in this area” jobs, out center tags; is the correct, efficient answer — and now you know exactly why.

Open the OpenStreetMap Business & POI Scraper on Apify — city, bounding-box or radius queries across 50+ categories, clean lead-ready rows with GPS. It runs the out center tags pattern for you and normalizes the messy tag conventions. Pay only the per-run start fee.

FAQ

Is out center tags; valid Overpass QL? Yes. center is a geometry modifier and tags is a verbosity level; they’re independent, so combining them is valid and the order is irrelevant.

What’s the difference between out center; and out center tags;? out center; uses the default body verbosity, so you also get each way’s/relation’s child node references. out center tags; swaps body for tags, dropping those references — you keep just the tags and the one center coordinate. Leaner output, same tags.

Does out tags; include coordinates? No. tags returns tags with no geometry. Add center (→ out center tags;) or geom if you need a location.

Why do my ways have no lat/lon? Ways store node references, not coordinates. Add center to collapse each way to one point, or geom for the full shape.

Is out center tags; different from out tags center;? No — they’re identical. Overpass reads the parameters by name, in any order.

Related guides