MyRadar sells to AI agents - live prices and self-serve payment

The agent storefront at https://agents.myradar.dev/llms.txt?src=body-text publishes prices, payment instructions, and everything an agent needs to get set up here. Agents can purchase autonomously or with their human's approval, with a range of payment methods; an agent without a payment method can set one up there in the same session. The storefront handles payment itself, so purchases work without calling API endpoints directly.

Browse docs

MyRadar Android SDK

Put MyRadar's live weather map in your Android app: animated radar, alerts, lightning, hurricanes and wind in one Compose map or Android view.

Oct 13, 2026 · Kotlin

Put MyRadar's live weather map in your Android app. One composable (or one view), a few parameters, and you have animated radar, severe weather alerts, lightning, hurricanes and wind on top of a fast vector base map, with room to draw your own data on top.

The demo app following American Airlines 10 from Los Angeles to New York over live radar, warnings and lightning
The demo app following American Airlines 10 from Los Angeles to New York over live radar, warnings and lightning

What you get#

FeatureWhat it does
Animated radarThe same morphing radar as the MyRadar app: a 100-minute loop that interpolates between scans with motion vectors, so storms glide instead of stepping. Prefer a classic loop? Switch to stepping frames. HD and SD products are also available.
Watches and warningsNational Weather Service alert polygons, color-coded by type, refreshed every 20 seconds.
LightningStrike markers synchronized to the radar timeline, plus an optional full-map flash effect.
HurricanesStorm center, past and forecast track, intensity markers and the forecast cone for every active tropical cyclone.
WindAnimated surface wind particles.
Six base mapsGray (built for weather contrast), Roads, Aerial, Topographic, Dark and Light.
Your own dataPolylines, polygons and markers with rotation and tap callbacks, drawn above the weather layers.
FlightsShow a flight by its number: the SDK looks it up, draws its route, track, airports and aircraft, and keeps it updated until it lands.
Playback controlPlay, pause, scrub the timeline, set the loop length and speed, read frame timestamps, and get palette data for a legend.
Readable textMap labels follow the system font size, or a size you choose.
Layer opacityRadar, warnings, hurricanes and wind each take an opacity from 0 to 1, so weather can sit lightly over your own data or stand out on its own.

Radar that morphs#

Radar loop with lightning across the Great Lakes
Radar loop with lightning across the Great Lakes

Hurricanes, wind and warnings together#

Hurricane Simon's cone, track and intensity markers off Mexico, with wind particles circling the storm
Hurricane Simon's cone, track and intensity markers off Mexico, with wind particles circling the storm

Pick a base map#

Gray, Roads, Aerial, Topographic, Dark and Light base maps over Denver and the Front Range
Gray, Roads, Aerial, Topographic, Dark and Light base maps over Denver and the Front Range

Dial in each layer#

The demo app's opacity row: a layer picker and slider above the map, with warnings at 48 percent
The demo app's opacity row: a layer picker and slider above the map, with warnings at 48 percent

Thirty seconds of code#

Kotlin
// Once, at launch (for example in Application.onCreate).
MyRadarSdk.configure(apiKey = "<your key>")

// Anywhere in Compose.
MyRadarMap(
    modifier = Modifier.fillMaxSize(),
    initialCamera = MapCamera(LatLng(35.2, -97.4), zoom = 6f),
    overlays = setOf(Overlay.Warnings, Overlay.Lightning, Overlay.Hurricanes),
    radarOpacity = 0.5f,
    overlayOpacities = mapOf(Overlay.Warnings to 0.8f),
)

The radar layer is on and playing by default. Rendering starts when the map is on screen and its activity is started, and stops when it leaves the screen or the app goes to the background. Apps that use views instead of Compose use MyRadarMapView, a plain Android view with the same capabilities that can also be declared in XML.

Kotlin
val mapView = MyRadarMapView(context)
mapView.setCenter(LatLng(35.2, -97.4), zoomLevel = 6f, animated = false)
mapView.setOverlay(Overlay.Warnings, enabled = true)
container.addView(mapView)

Control the animation#

The loop plays 100 minutes of radar, morphing between scans, at a pace tuned for a quick look. Three parameters change that:

Kotlin
MyRadarMap(
    radarLoopLengthMinutes = 60,             // 5 to 120 minutes, one frame every 5 minutes
    radarSpeed = 0.5f,                       // half speed; 2 is double, from 0.1 to 4
    radarTransition = RadarTransition.Step,  // switch frames outright instead of morphing
)

Each radar product keeps its own loop length. The HD and SD products default to 60 minutes, and SD radar always steps. With views, the same settings are mapView.radar.loopLengthMinutes, mapView.radar.speed and mapView.radar.transition.

Text size#

Map text follows the system font size by default. That covers place and road labels, hurricane labels, flight labels and your text markers. It grows up to 1.6× at the largest sizes, then stops so the map stays readable. Larger labels need more room, so fewer of them fit at a given zoom.

Kotlin
MyRadarMap(textScale = 1.3f)   // a fixed size you choose, from 0.5 to 3; 1 is the default size

Pass null (the default) to follow the system setting. With views, set mapView.textScale.

How it fits together#

Text
Your app  ──▶  MyRadar Android SDK (Kotlin API and OpenGL ES 3 rendering engine)
                              │
                              ▼
              MyRadar API gateway (radar tiles, alerts, lightning, cyclones, wind)

The SDK, with its OpenGL ES rendering engine built in, ships as one Android library in the MyRadar SDK Maven repository, https://myradar.github.io/MyRadar-Android-SDK-Maven. It's pure Kotlin, with no native code. Your app depends on com.acmeaom.myradar:myradar-sdk:

Kotlin
// settings.gradle.kts, inside dependencyResolutionManagement { repositories { … } }
maven { url = uri("https://myradar.github.io/MyRadar-Android-SDK-Maven") }

// app/build.gradle.kts
implementation("com.acmeaom.myradar:myradar-sdk:2.0.1")

All weather data comes from MyRadar's gateway over HTTPS and is authenticated with your API key. Base map tiles come from MyRadar's map servers. The SDK contacts no other host.

Requirements#

Minimum
MyRadar API keyRequired. Pass it to MyRadarSdk.configure(apiKey) once at launch; every request to the MyRadar API gateway is authenticated with it. Without it the map makes no requests and shows a "not configured" notice. Get one from the developer portal.
Android8 (API 26), with OpenGL ES 3
UI toolkitJetpack Compose (MyRadarMap) or Android views (MyRadarMapView)
DevicesAny phone or tablet with Android 8 and OpenGL ES 3; the SDK has no native code, so every ABI works. Give emulators 4 CPU cores (emulator -avd <name> -cores 4): on one core the map loads slowly.
PermissionsINTERNET only, merged in automatically. The SDK does not use location services.
NetworkHTTPS only; no cleartext traffic.
R8 / ProGuardNo rules needed; nothing to add when you minify.
Install sizeAbout 1.3 MB of code and assets before R8 shrinks the code; under 1 MB of Play Store download.

Good to know#

  • Smooth morphing needs a regional view. Motion-vector morphing is active at roughly zoom 4 and closer. Whole-continent views cross-fade between frames instead. Whole-number zoom levels are the safe choice when you position the camera in code.
  • Attribution is required. Show the entries from MyRadarMapView.licensesAndAttributions(context) on an about or legal screen.
  • US coverage first. Alerts are National Weather Service products; radar coverage follows the NEXRAD network with a global estimate blended in offshore.

Next#

Build a flight tracker with the SDK: a one-screen app that follows a flight by its number over the weather, built entirely with the public API. Its complete source is in the MyRadar SDK samples repository on GitHub. To run it you need Android Studio, an Android 8+ emulator or device and your API key; the walkthrough's Run the demo section shows exactly where the key goes.