OGC API Features Extractor
Pricing
from $0.35 / 1,000 features
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
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
a day 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 therel="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}/collectionsand 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 computedbbox, andlongitude/latitudefor point features) while the fullproperties,geometryand the untouched Feature (raw) are all preserved, so nothing is lost even though every service exposes different attributes.
Quick start (3 features, about $0.0015)
The Input form and the ready-to-run example open with exactly this job, so you can just click Start. It pulls 3 lakes from the public pygeoapi reference server and needs no key:
{ "serviceRoot": "https://demo.pygeoapi.io/master", "collectionId": ["lakes"], "maxItems": 3 }
Real output from a local run of this exact input on 2026-09-25 (3 rows, exit 0).
Heavy fields (geometry, raw) are shortened here:
{"_serviceRoot": "https://demo.pygeoapi.io/master","_mode": "feature","featureId": "0","collectionId": "lakes","geometryType": "Polygon","longitude": null,"latitude": null,"propertyCount": 6,"properties": { "id": 0, "scalerank": 0, "name": "Lake Baikal", "name_alt": "https://en.wikipedia.org/wiki/Lake_Baikal", "admin": null, "featureclass": "Lake" },"geometry": { "type": "Polygon", "coordinates": ["…"] },"raw": { "type": "Feature", "…": "…" }}
The other two rows were Lake Winnipeg and Great Slave Lake. longitude/latitude
are filled only for point features; polygons get a computed bbox.
Example inputs
All large lakes from the pygeoapi reference server (no auth). The collection holds 25 features, so this costs at most about $0.0125:
{ "serviceRoot": "https://demo.pygeoapi.io/master", "collectionId": ["lakes"], "maxItems": 25 }
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/collectionsor/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/itemsquery params (CQL,properties, …).limit— server-side page size (the actor paginates regardless).maxItems— total feature cap across all pages/collections (the form opens at 3; 25 if you clear it). Raise it deliberately: every returned feature is one charge.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 afeatureor acollection.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 — one feature event per record returned (one per collection
in discovery mode). FREE-tier price is $0.0005 per feature, lower on paid tiers.
A query that matches nothing costs nothing.
| Run | Features | Event cost (FREE tier) |
|---|---|---|
| Quick start above | 3 | $0.0015 |
| Default cap | 25 | $0.0125 |
| Discovery on demo.pygeoapi.io (17 collections) | 17 | $0.0085 |
| Large pull | 1,000 | $0.50 |
Apify platform usage is billed separately from these event charges.
Notes
- Speaks OGC API — Features Part 1 (Core) item access; handles GeoJSON
/itemsand the standardrel="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.