OGC API Features Extractor avatar

OGC API Features Extractor

Pricing

from $0.35 / 1,000 features

Go to Apify Store
OGC API Features Extractor

OGC API Features Extractor

Point at ANY OGC API Features service (the modern WFS successor) — pygeoapi, ldproxy, GeoServer, national mapping & city GIS. List collections or page /items by bbox/datetime/CQL to flat rows (geometry, lon/lat, computed bbox, properties) + raw GeoJSON. Pay per feature.

Pricing

from $0.35 / 1,000 features

Rating

0.0

(0)

Developer

Datamule

Datamule

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

9 days ago

Last modified

Categories

Share

A generic "point at any OGC API Features service" scraper. OGC API Features is the modern, JSON/GeoJSON, OGC-blessed successor to WFS (Web Feature Service) — one open specification spoken by national mapping agencies, city / regional GIS portals, and the pygeoapi, ldproxy and GeoServer server families. Give this actor a service root URL, optionally pick collections + an area + a time window + a free-form query passthrough, and it pages the whole /items FeatureCollection into clean, flat dataset rows plus a lossless raw GeoJSON Feature.

One actor, every OGC API Features service — no per-instance scraper needed. (STAC — the satellite/EO catalog standard — is itself a profile of OGC API Features; for STAC catalogs use the companion STAC Catalog Extractor.)

What it does

  • Fetch features — set the service root + one or more collection ids and any of a bounding box, date/time window, or an arbitrary query parameters passthrough (CQL filter / properties / provider-specific keys), and it pulls every matching feature, auto-following the rel="next" pagination link (relative or absolute) up to your Max features.
  • Discover collections — leave the collection id(s) empty (or turn on List collections only) and it reads {serviceRoot}/collections and returns one row per collection: id, title, description, item type, spatial + temporal extent, CRS, and a ready-to-use items URL.
  • Normalized + raw — each feature's geometry is distilled to stable columns (geometryType, a computed bbox, and longitude/latitude for point features) while the full properties, geometry and the untouched Feature (raw) are all preserved, so nothing is lost even though every service exposes different attributes.

Example inputs

Large lakes from the pygeoapi reference server (no auth):

{ "serviceRoot": "https://demo.pygeoapi.io/master", "collectionId": ["lakes"], "maxItems": 100 }

Airports over Great Britain from ldproxy (no auth), point features → lon/lat:

{ "serviceRoot": "https://demo.ldproxy.net/zoomstack", "collectionId": ["airports"], "maxItems": 200 }

Features inside a bounding box:

{ "serviceRoot": "https://demo.pygeoapi.io/master", "collectionId": ["obs"], "bbox": [-180, -90, 180, 90], "maxItems": 50 }

Discover what a service exposes:

{ "serviceRoot": "https://demo.pygeoapi.io/master", "listCollectionsOnly": true }

A key-gated national service (e.g. UK Ordnance Survey) — supply your own key, never hardcoded:

{ "serviceRoot": "https://api.os.uk/features/ngd/ofa/v1", "collectionId": ["bld-fts-buildingpart-1"], "extraHeaders": { "key": "YOUR_OS_API_KEY" }, "maxItems": 100 }

Input reference

  • serviceRoot (required) — the OGC API root (not /collections or /items).
  • collectionId — collection id(s) to fetch; empty ⇒ discovery mode.
  • listCollectionsOnly — force discovery mode (list collections, fetch nothing).
  • bbox[west, south, east, north] in WGS84 degrees (a 6-number 3D box is also accepted).
  • datetime — RFC 3339 instant or range; open ranges with ...
  • queryParams — arbitrary extra /items query params (CQL, properties, …).
  • limit — server-side page size (the actor paginates regardless).
  • maxItems — total feature cap across all pages/collections (default 1000).
  • bearerToken / extraHeaders — optional auth for key-gated services.

Authentication

None required for the public services (pygeoapi, ldproxy demos). For key-gated services (e.g. national mapping agencies) supply a Bearer token and/or Extra request headers — both optional, never required, and the token is never logged.

Output

One dataset item per feature, with normalized columns plus:

  • _serviceRoot / _mode — the source service and whether the row is a feature or a collection.
  • geometry — the feature geometry (GeoJSON), properties — the full attribute bag, bbox — computed from the geometry when the feature omits one, longitude/latitude — set for point features.
  • raw — the complete, untouched GeoJSON Feature.

A query that matches nothing returns 0 features, not an error.

Pricing

Pay per feature — you're charged one feature event per record returned (one per collection in discovery mode). A query that matches nothing costs nothing.

Notes

  • Speaks OGC API — Features Part 1 (Core) item access; handles GeoJSON /items and the standard rel="next" offset pagination (relative and absolute hrefs).
  • Not affiliated with or endorsed by the OGC or any target service. Respect each provider's terms and any per-dataset licensing.