Decodes a GeoTIFF/COG (https URL or inline base64), reads the selected RGB bands
Decodes a GeoTIFF/COG (https URL or inline base64), reads the selected RGB bands via windowed overview reads, applies a tone-map stretch, and returns a PNG/WebP plus georeference metadata (CRS, bounds, pixel scale) and source stats. Limits: 20 MB source, 2048 px output width. Billed per attempt: payment settles after structural validation, before decode, so decode-time failures (e.g. a bands_rgb band the source lacks) are still charged.
Answeringour last check, 2026-09-24
1 of 1checks answered this week
70 msmedian answer time
$0.03listed price per call
$0.03price it asked us
Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.
Endpoint
POST https://wasm-geotiff-transcoder.jannioura.workers.dev/
| Category | Everything else |
|---|---|
| Provider host | wasm-geotiff-transcoder.jannioura.workers.dev |
| Networks | eip155:8453 |
| Payment schemes | exact |
| Self-reported calls, 30 days | 6 from 2 payers (the provider's figure, not ours) |
Our checks, last 30 days
| Day | Result | HTTP | Asked | Time |
|---|---|---|---|---|
| 2026-09-24 | valid payment request | 402 | $0.03 | 70 ms |
Example input (from the provider)
{
"body": {
"source": "https://raw.githubusercontent.com/OSGeo/gdal/master/autotest/gcore/data/rgbsmall.tif"
},
"bodyType": "json",
"method": "POST",
"type": "http"
}
Promised output schema (from the provider)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"oneOf": [
{
"required": [
"source"
]
},
{
"required": [
"or_base64_body"
]
}
],
"properties": {
"bands_rgb": {
"default": [
1,
2,
3
],
"description": "1-based band indices mapped to R, G, B output channels. Whether an index is valid can only be known after the source is fetched and decoded (its real band count isn't knowable in advance), so a mismatch here still incurs the charge -- see the top-level description.",
"items": {
"minimum": 1,
"type": "integer"
},
"maxItems": 3,
"minItems": 3,
"type": "array"
},
"max_width_px": {
"default": 2048,
"maximum": 2048,
"minimum": 1,
"type": "integer"
},
"or_base64_body": {
"contentEncoding": "base64",
"description": "Inline base64-encoded GeoTIFF bytes. Exactly one of `source` or `or_base64_body` must be provided.",
"type": "string"
},
"output_format": {
"default": "webp",
"enum": [
"webp",
"png"
],
"type": "string"
},
"source": {
"description": "https URL of the GeoTIFF/COG to transcode. Exactly one of `source` or `or_base64_body` must be provided.",
"format": "uri",
"type": "string"
},
"stretch": {
"default": "percentile_2_98",
"enum": [
"none",
"percentile_2_98"
],
"type": "string"
}
},
"required": [],
"type": "object"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
},
"method": {
"enum": [
"POST",
"PUT",
"PATCH"
],
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"properties": {
"compute_ms": {
"type": "integer"
},
"format": {
"enum": [
"webp",
"png"
],
"type": "string"
},
"georef": {
"properties": {
"bounds_wgs84": {
"description": "[west, south, east, north] in WGS84 degrees; null when the source CRS is unknown.",
"items": {
"type": "number"
},
"maxItems": 4,
"minItems": 4,
"type": [
"array",
"null"
]
},
"crs": {
"examples": [
"EPSG:32610"
],
"type": "string"
},
"pixel_scale_m": {
"type": [
"number",
"null"
]
}
},
"type": "object"
},
"height_px": {
"type": "integer"
},
"image_base64": {
"contentEncoding": "base64",
"type": "string"
},
"source_stats": {
"properties": {
"bands": {
"type": "integer"
},
"bit_depth": {
"type": [
"integer",
"null"
]
},
"compression": {
"type": "string"
}
},
"type": "object"
},
"width_px": {
"type": "integer"
}
},
"required": [
"image_base64",
"format",
"width_px",
"height_px",
"georef",
"source_stats",
"compute_ms"
],
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}