# Google Solar API GeoTIFF Layer to Image Converter

> Google Solar API GeoTIFF Layer to Image Converter is a paid API for AI agents from stable-enrich-git-stableenrich-solar-rgb-image-merit-systems.vercel.app, paid per call via x402, $0.05/call, status unknown (last checked 2026-09-15).

Downloads a Google Solar API GeoTIFF data layer (rgb, dsm, annualFlux, monthlyFlux, hourlyShade, or mask) for a given location or layer ID and returns it as a PNG or JPEG image

## Facts

- Endpoint: GET https://stable-enrich-git-stableenrich-solar-rgb-image-merit-systems.vercel.app/api/google-maps/solar/rgb-image
- Price: $0.05/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/google-solar-api-geotiff-layer-to-image-converter-782989e7
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_vwaCzth3MbnZVnTd-fxdy

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability google-solar-api-geotiff-layer-to-image-converter-782989e7
```

Example prompt: Can you pull up the monthly solar flux image for January for the building at 37.4220° latitude, -122.0841° longitude, with a 50-meter radius, and return it as a PNG?

## When to prefer this

Use this endpoint when you need to visually render any Google Solar API GeoTIFF data layer as a PNG or JPEG image — either by coordinates (Mode B) or by a known GeoTIFF layer ID (Mode A). Prefer this over raw GeoTIFF downloads when you need a ready-to-display image. It is especially useful for solar energy assessments, rooftop visualization, shade analysis, and building-level solar flux mapping.

## Known failure modes

- Missing required parameters (radiusMeters, layer, format, scale, crop, quality) returns a 400 error
- Invalid latitude/longitude outside valid ranges returns a validation error
- GeoTIFF id not found or expired returns a 404 or upstream error
- month required for hourlyShade in Mode B but omitted causes an error
- Upstream Google Solar API quota exceeded or unavailable returns a 502/503
- Invalid layer enum value returns a 400 error
- Payment not completed (x402) results in a 402 Payment Required response

## How this service works

Google Solar API - Download any GeoTIFF data layer (rgb, dsm, annualFlux, monthlyFlux, hourlyShade, mask) and return it as a PNG/JPEG image. Accepts either a GeoTIFF `id` (Mode A) or `latitude`/`longitude` (Mode B, which resolves the layer URL via dataLayers:get). For monthlyFlux pass `month` (1-12) for a single month, omit for a 4×3 grid. For hourlyShade pass `month` (required in Mode B) and optional `hour` (0-23); omit `hour` for a 6×4 grid.

## Output

A PNG or JPEG image rendered from the requested Google Solar API GeoTIFF data layer. Depending on the layer, this may be a true-color RGB aerial image, a digital surface model heatmap, an annual or monthly solar flux visualization, an hourly shade grid, or a rooftop mask. For monthlyFlux without a month, returns a 4×3 grid; for hourlyShade without an hour, returns a 6×4 grid.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET",
      "HEAD",
      "DELETE"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "$schema": "https://json-schema.org/draft/2020-12/schema",
     "required": [
      "radiusMeters",
      "layer",
      "format",
      "scale",
      "crop",
      "quality"
     ],
     "properties": {
      "id": {
       "type": "string"
      },
      "crop": {
       "type": "boolean",
       "default": false
      },
      "hour": {
       "type": "integer",
       "maximum": 23,
       "minimum": 0
      },
      "layer": {
       "enum": [
        "rgb",
        "dsm",
        "annualFlux",
        "monthlyFlux",
        "hourlyShade",
        "mask"
       ],
       "type": "string",
       "default": "rgb"
      },
      "month": {
       "type": "integer",
       "maximum": 12,
       "minimum": 1
      },
      "scale": {
       "type": "integer",
       "default": 1,
       "maximum": 2,
       "minimum": 1
      },
      "format": {
       "enum": [
        "png",
        "jpeg"
       ],
       "type": "string",
       "default": "png"
      },
      "quality": {
       "type": "integer",
       "default": 85,
       "maximum": 100,
       "minimum": 1
      },
      "latitude": {
       "type": "number",
       "maximum": 90,
       "minimum": -90
      },
      "longitude": {
       "type": "number",
       "maximum": 180,
       "minimum": -180
      },
      "radiusMeters": {
       "type": "number",
       "default": 30,
       "maximum": 100,
       "minimum": 0.1
      }
     },
     "additionalProperties": false
    }
   },
   "additionalProperties": false
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/google-solar-api-geotiff-layer-to-image-converter-782989e7/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from stable-enrich-git-stableenrich-solar-rgb-image-merit-systems.vercel.app](https://www.zero.xyz/host/stable-enrich-git-stableenrich-solar-rgb-image-merit-systems.vercel.app/llms.txt)
