wasm-geotiff-transcoder.jannioura.workers.dev
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.
Offering
- Provider
- wasm-geotiff-transcoder.jannioura.workers.dev
- Method
- POST
- Offering type
- Api Endpoint
- Transport type
- http
- Category
- Weather And Environment
- Delivery
- Not provided
- Pricing model
- Not provided
- x402 version
- 2
Endpoint context
- URL
https://wasm-geotiff-transcoder.jannioura.workers.dev/- MIME type
- application/json
- First seen
- 2026-10-16T01:51:30.109Z
- Last seen
- Tags
- None supplied
Payment pricing
x402 payment terms are the authoritative price for calling this endpoint.
- Payment option 1
- 0.03 USDC
Atomic price: 30000 · Network: eip155:8453 · Asset: USDC · Scheme: exact
Raw x402 terms
[
{
"scheme": "exact",
"network": "eip155:8453",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "30000",
"payTo": "0x86256e25d4e5511eb6dcc474a4e779970267e903"
}
]Observed health
- Status
- Healthy
- Latest latency
- 80 ms
- Average latency
- 569 ms
- HTTP status
- 402
- Last checked
- Reachability
- 92.9% over 14 checks
Latency is measured to the first response headers. A reachable result does not verify response accuracy or merchant identity.
Input schema
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "http"
},
"method": {
"type": "string",
"enum": [
"POST",
"PUT",
"PATCH"
]
},
"bodyType": {
"type": "string",
"enum": [
"json",
"form-data",
"text"
]
},
"body": {
"type": "object",
"required": [],
"properties": {
"source": {
"type": "string",
"format": "uri",
"description": "https URL of the GeoTIFF/COG to transcode. Exactly one of `source` or `or_base64_body` must be provided."
},
"or_base64_body": {
"type": "string",
"contentEncoding": "base64",
"description": "Inline base64-encoded GeoTIFF bytes. Exactly one of `source` or `or_base64_body` must be provided."
},
"bands_rgb": {
"type": "array",
"items": {
"type": "integer",
"minimum": 1
},
"minItems": 3,
"maxItems": 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.",
"default": [
1,
2,
3
]
},
"output_format": {
"type": "string",
"enum": [
"webp",
"png"
],
"default": "webp"
},
"max_width_px": {
"type": "integer",
"minimum": 1,
"maximum": 2048,
"default": 2048
},
"stretch": {
"type": "string",
"enum": [
"none",
"percentile_2_98"
],
"default": "percentile_2_98"
}
},
"oneOf": [
{
"required": [
"source"
]
},
{
"required": [
"or_base64_body"
]
}
]
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"additionalProperties": false
}Output schema
{
"type": "object",
"properties": {
"type": {
"type": "string"
},
"example": {
"type": "object",
"required": [
"image_base64",
"format",
"width_px",
"height_px",
"georef",
"source_stats",
"compute_ms"
],
"properties": {
"image_base64": {
"type": "string",
"contentEncoding": "base64"
},
"format": {
"type": "string",
"enum": [
"webp",
"png"
]
},
"width_px": {
"type": "integer"
},
"height_px": {
"type": "integer"
},
"georef": {
"type": "object",
"properties": {
"crs": {
"type": "string",
"examples": [
"EPSG:32610"
]
},
"bounds_wgs84": {
"type": [
"array",
"null"
],
"items": {
"type": "number"
},
"minItems": 4,
"maxItems": 4,
"description": "[west, south, east, north] in WGS84 degrees; null when the source CRS is unknown."
},
"pixel_scale_m": {
"type": [
"number",
"null"
]
}
}
},
"source_stats": {
"type": "object",
"properties": {
"bands": {
"type": "integer"
},
"bit_depth": {
"type": [
"integer",
"null"
]
},
"compression": {
"type": "string"
}
}
},
"compute_ms": {
"type": "integer"
}
}
}
},
"required": [
"type"
]
}