OGC WCS Coverage Extractor
Pricing
from $0.35 / 1,000 coverage offerings
OGC WCS Coverage Extractor
Point at ANY OGC Web Coverage Service (WCS 2.0.1/2.0.0/1.1/1.0) — rasdaman, MapServer, GeoServer, deegree, EOxServer, THREDDS. Reads GetCapabilities + DescribeCoverage; returns flat rows per coverage (id, subtype, WGS84 bbox, grid type, axis labels, corners, range fields). Pay per coverage.
Pricing
from $0.35 / 1,000 coverage offerings
Rating
0.0
(0)
Developer
Datamule
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
23 days ago
Last modified
Categories
Share
What does WCS Coverage Extractor do?
It reads the coverage catalog of an OGC Web Coverage Service (WCS) and returns it as clean table rows. Give it one or more WCS endpoint URLs. It returns one row per coverage: the coverage ID, its subtype and the service title. If the server publishes more, capabilities rows also get the WGS84 bounding box and title; describe/discovery rows add grid axes, corners, grid size and band (range field) names.
Use it to see which raster layers a WCS server offers before you download anything, to put several servers' catalogs into one spreadsheet, or to feed coverage IDs into your own GIS pipeline.
It returns metadata only. It does not download raster or pixel data (it never sends GetCoverage requests).
Quick start: the exact sample run
This is the published example input. Press Start to run it:
{"mode": "capabilities","wcsVersion": "2.0.1","maxRecords": 5,"sources": ["https://demo.mapserver.org/cgi-bin/wcs"],"coverageIds": []}
When this was run, the MapServer demo listed three coverages, so the run returned 3 rows: 3 coverage events, US$0.0015 on the FREE tier.
Real output from that sample
Actor run p9teUwshQLbzYXWke (build 0.1.2, 2026-09-26) ran this exact input and returned these rows:
| coverageId | coverageSubtype | _wcsVersion | _serverSoftware | _serviceTitle |
|---|---|---|---|---|
| ndvi | RectifiedGridCoverage | 2.0.1 | MapServer | WCS Demo Server for MapServer, setup by GatewayGeo |
| fpar | RectifiedGridCoverage | 2.0.1 | MapServer | WCS Demo Server for MapServer, setup by GatewayGeo |
| modis | RectifiedGridCoverage | 2.0.1 | MapServer | WCS Demo Server for MapServer, setup by GatewayGeo |
Here is one of those rows as JSON. _raw.xml holds the server's own XML fragment; it is shortened here, and the other null fields are left out:
{"_sourceService": "https://demo.mapserver.org/cgi-bin/wcs","_wcsVersion": "2.0.1","_mode": "capabilities","_serverSoftware": "MapServer","_serviceTitle": "WCS Demo Server for MapServer, setup by GatewayGeo","coverageId": "ndvi","coverageSubtype": "RectifiedGridCoverage","title": null,"wgs84_bbox": null,"_raw": { "xml": "<ns0:CoverageSummary ...><ns0:CoverageId>ndvi</ns0:CoverageId>..." }}
This demo server's capabilities document gives only the ID and subtype. That is why title, wgs84_bbox and the other optional fields are null. The Actor never fills in values the server did not send. Use describe mode to get grid details. You can export the dataset as JSON, CSV, Excel or HTML.
Modes
capabilities(default): sends one GetCapabilities request per source and returns one row per advertised coverage. Rows includecoverageId,coverageSubtype,title,abstract,wgs84_bbox([minLon, minLat, maxLon, maxLat], when the server sends one),boundingBoxCrs, native corners andadditionalParameters. This is the cheapest way to list a server.describe: sends one DescribeCoverage request per ID incoverageIds(every advertised coverage if the list is empty). Each coverage row includesgridType,gridDimension,axisLabels,envelopeSrsandsrsDimension. It also haslowerCorner/upperCorneras text, in the envelope's own CRS and axis order. The grid index bounds are ingridLow/gridHigh, plusrangeFieldNames(bands) andnativeFormat.discovery: runs GetCapabilities, then DescribeCoverage for every advertised coverage, up tomaxRecords. It returns describe-style rows (their_modeisdescribe).
Every row also carries:
_sourceService_wcsVersion: the version the server actually served_serverSoftware: a best-effort guess_raw.xml: the original XML for that coverage
Use it on your own WCS server
- Endpoint: put your service's base URL in
sources. That is the URL that answersSERVICE=WCS&REQUEST=GetCapabilities. Extra query parameters such as?map=...are kept. You can list several endpoints; one that fails is skipped with a warning. - Coverage IDs: run
capabilitiesfirst. Then copy the IDs you want (for examplendviorfpar) intocoverageIdsand switchmodetodescribe. - maxRecords: the total row cap across all sources. The sample uses 5. The form prefill and the default are 1000, so lower it for a small first run.
- Version:
wcsVersionis your preferred version. If the server does not support it, the Actor falls back through 2.0.1 → 2.0.0 → 1.1.1 → 1.1.0 → 1.0.0 automatically. - Auth (optional): use
bearerTokenandextraHeadersfor protected deployments. They are never logged.
Pricing and your budget
- Priced unit: one
coverageevent per output row. That is one advertised coverage in capabilities mode, or one described coverage in describe/discovery mode. - Price per row, by Apify plan: FREE US$0.0005, BRONZE US$0.00045, SILVER US$0.0004, GOLD US$0.00035, PLATINUM US$0.0003, DIAMOND US$0.00025. That works out to US$0.25–0.50 per 1,000 rows.
- Max run charge: your max run charge is a hard ceiling. The Actor stops before any row it cannot pay for. Once not even one more row fits, it makes no further WCS request. It never writes unpaid rows.
maxRecordsalso caps the number of rows. - Platform usage (compute) is billed separately by Apify. For the 3-row sample run above it was about US$0.0014.
Supported servers and limits
- It reads WCS 2.0.x, 1.1.x and 1.0.0 capabilities documents. The DescribeCoverage parser targets the WCS 2.0 GML/GMLCOV core.
- It was checked live in July 2026 against MapServer (the demo above) and rasdaman (
https://ows.rasdaman.org/rasdaman/ows). Other standard WCS servers (GeoServer, deegree, THREDDS and so on) may work, but they are not tested or guaranteed. Some servers list only IDs in their capabilities, like the demo. - It sends KVP GET requests only: no SOAP or XML POST, and no coverage downloads.
- If a server returns an error inside an HTTP 200 response (an OWS ExceptionReport), the Actor treats it as an error and skips it. It never reports that as an empty success. If every source fails, the run exits with code 91.
- The raw XML stored for each row is capped at 200,000 characters.
Support
Found a WCS server that returns wrong or empty rows? Open an issue on the Issues tab and include the endpoint URL and the mode you used.