# Mappls Developer Platform > Maps, location, navigation, telematics, workforce, GIS, offline, and AI-native tools. ## Product documentation - [Maps](https://developer.mappls.com/docs/maps): Fast, expressive vector and raster maps across web, mobile, hybrid, and embedded apps. State model: stateless. - [Search & Places](https://developer.mappls.com/docs/search-places): Autosuggest, geocoding, nearby discovery, place details, and Mappls Pin addressing. State model: stateless. - [Routes & Navigation](https://developer.mappls.com/docs/routes-navigation): Routes, matrices, optimization, map matching, predictive ETAs, and turn-by-turn navigation. State model: hybrid. - [InTouch Telematics](https://developer.mappls.com/docs/intouch-telematics): Live tracking, trips, devices, vehicles, events, geofences, and fleet intelligence. State model: stateful. - [Workmate](https://developer.mappls.com/docs/workmate): Workforce automation for people, clients, tasks, attendance, proof, and live operations. State model: stateful. - [GIS & Analytics](https://developer.mappls.com/docs/gis-analytics): Spatial data, analysis, maps, dashboards, and embeddable location intelligence. State model: hybrid. - [App Widgets & Deep Links](https://developer.mappls.com/docs/app-widgets-deep-links): Embeddable Mappls experiences for places, directions, 3D views, RealView, and app hand-off. State model: stateless. - [Offline & Automotive](https://developer.mappls.com/docs/offline-automotive): Offline maps, search, routing, guidance, compilers, and embedded navigation runtimes. State model: stateful. - [AI & Location](https://developer.mappls.com/docs/ai-location): AI/ML APIs, vision, location-aware agents, ranking, and natural-language spatial workflows. State model: hybrid. - [Capture & Feedback](https://developer.mappls.com/docs/capture-feedback): On-demand location capture, camera evidence, map feedback, and update workflows. State model: hybrid. ## Platform implementation guides - [REST](https://developer.mappls.com/platforms/rest): Put Mappls behind a stable service boundary in any stack. - [Web](https://developer.mappls.com/platforms/web): Build expressive browser maps without surrendering performance or control. - [Android](https://developer.mappls.com/platforms/android): Compose native maps, places, tracking, and navigation with Android lifecycle discipline. - [iOS](https://developer.mappls.com/platforms/ios): Deliver Mappls-native Apple experiences through modular, lifecycle-safe frameworks. - [React Native](https://developer.mappls.com/platforms/react-native): Share product logic while keeping native Mappls capabilities honest on both platforms. - [Flutter](https://developer.mappls.com/platforms/flutter): Use one Dart experience with deliberate native Mappls configuration underneath. - [Cordova](https://developer.mappls.com/platforms/cordova): Maintain hybrid location experiences with explicit native ownership and a migration path. - [Xamarin](https://developer.mappls.com/platforms/xamarin): Stabilize existing .NET mobile integrations and move forward without losing behavior. - [Linux](https://developer.mappls.com/platforms/linux): Run location and navigation reliably on controlled, embedded Linux systems. - [Automotive](https://developer.mappls.com/platforms/automotive): Treat in-vehicle navigation as a safety-aware, upgradeable system—not a screen. - [Widgets](https://developer.mappls.com/platforms/widgets): Embed complete Mappls experiences while keeping hand-off, privacy, and fallback deliberate. - [Deep links](https://developer.mappls.com/platforms/deep-links): Open useful Mappls place and journey experiences from any channel—with no SDK requirement. - [MCP](https://developer.mappls.com/platforms/mcp): Give AI systems typed Mappls capabilities with policy, evidence, and human control. - [Product × platform capability matrix](https://developer.mappls.com/platforms/matrix): all 130 combinations across 10 products and 13 platforms; 47 explicitly listed and 83 retained as honest not-listed selection stops. - Machine-readable matrix and exact detail: https://developer.mappls.com/api/capability-matrix and https://developer.mappls.com/api/capability-matrix?product={productSlug}&platform={platformSlug}. AI clients can call mappls_get_capability_matrix or read mappls://catalog/capability-matrix. - Matrix evidence never turns an adjacent SDK, tutorial, starter, sample, or repository into availability, entitlement, compatibility, support, or production approval. - [Capability Qualification Center](https://developer.mappls.com/platforms/qualify): 130 portable product-platform evidence journeys; 43 have exact public implementation evidence, 4 remain exact-contract selections, and 83 preserve the product-owner stop. - Machine-readable qualification index, exact detail, and downloads: https://developer.mappls.com/api/capability-qualifications and https://developer.mappls.com/api/capability-qualifications?product={productSlug}&platform={platformSlug}&download=1. AI clients can call mappls_get_capability_qualification or read mappls://catalog/capability-qualifications. - Qualification plans accept no credential or provider payload, make zero provider calls, expose no write, and never grant entitlement or production approval. - [Live Conformance Center](https://developer.mappls.com/conformance): plan 8 bounded non-production reads across 3 direct product lanes while preserving dedicated qualification for all 10 product families; inspect the canonical report and compute its SHA-256 locally without upload. - Machine-readable plans and downloads: https://developer.mappls.com/api/conformance?operation=autosuggest&operation=route&generation=current-static-query®ion=IND. AI clients can call mappls_plan_live_conformance or read mappls://catalog/live-conformance. - The planner makes no provider call and accepts no credential or provider payload. The runner exposes no write; a passing report grants no adjacent entitlement or production authority. ## Platform quickstarts - [Your first trusted Mappls request](https://developer.mappls.com/quickstart/rest-api) — REST, 15 minutes, public-source: a validated autosuggest result from a credential-safe server boundary - [Render one accessible web map](https://developer.mappls.com/quickstart/web-map) — Web, 15 minutes, public-source: a responsive map and text-synchronized selected place - [Create a lifecycle-safe Android map](https://developer.mappls.com/quickstart/android-native) — Android, 25 minutes, public-source: a native map screen that survives recreation and permission denial - [Create a lifecycle-safe iOS map](https://developer.mappls.com/quickstart/ios-native) — iOS, 25 minutes, public-source: a native Swift map feature with explicit package and view ownership - [Bridge one map feature across Android and iOS](https://developer.mappls.com/quickstart/react-native-map) — React Native, 30 minutes, public-source: a typed shared map feature with separately verified native halves - [Build a native-backed Flutter place picker](https://developer.mappls.com/quickstart/flutter-map) — Flutter, 30 minutes, public-source: a Dart form that commits one accepted Mappls place identity - [Stabilize a Cordova map before migration](https://developer.mappls.com/quickstart/cordova-maintenance) — Cordova, 35 minutes, legacy-maintenance: a reproducible legacy screen behind a replaceable capability facade - [Extract a Xamarin map integration for replacement](https://developer.mappls.com/quickstart/xamarin-maintenance) — Xamarin, 40 minutes, entitlement-required: a shared .NET contract with independently owned Android and iOS adapters - [Boot a supervised embedded map client](https://developer.mappls.com/quickstart/linux-embedded) — Linux, 45 minutes, entitlement-required: a health-checked native process with an atomic data/runtime boundary - [Simulate one recoverable navigation session](https://developer.mappls.com/quickstart/automotive-navigation) — Automotive, 60 minutes, entitlement-required: a safety-aware route-to-arrival state machine over an entitled runtime - [Embed a place journey with an owned fallback](https://developer.mappls.com/quickstart/widgets-place) — Widgets, 20 minutes, public-source: an accessible host that validates one widget result and survives widget failure - [Ship one zero-SDK Mappls hand-off](https://developer.mappls.com/quickstart/deep-links) — Deep links, 10 minutes, public-source: a place link that reaches the same intent across app and browser fallbacks - [Connect a read-only Mappls agent](https://developer.mappls.com/quickstart/mcp-agent) — MCP, 15 minutes, local-reference: a grounded documentation query through local stdio or authenticated stateless HTTP - Machine-readable quickstarts: https://developer.mappls.com/api/quickstarts ## Downloadable platform starter projects - [Trusted REST service starter](https://developer.mappls.com/starter-kits/rest-api-starter) — REST, JavaScript, public-source: A dependency-free autosuggest service with bounded input, fixture-first behavior, abortable live calls, normalized output, and credential-safe errors. Download: https://developer.mappls.com/downloads/starter-kits/rest-api-starter.zip - [Accessible web map host starter](https://developer.mappls.com/starter-kits/web-map-starter) — Web, HTML + JavaScript, public-source: A responsive keyboard-accessible map host with explicit loading, ready, unavailable, selection, and teardown states around a replaceable SDK adapter. Download: https://developer.mappls.com/downloads/starter-kits/web-map-starter.zip - [Android lifecycle adapter starter](https://developer.mappls.com/starter-kits/android-native-starter) — Android, Kotlin, public-source: A Kotlin contract that keeps camera, selection, permission, recreation, and teardown state outside unconfirmed SDK types. Download: https://developer.mappls.com/downloads/starter-kits/android-native-starter.zip - [iOS view-ownership starter](https://developer.mappls.com/starter-kits/ios-native-starter) — iOS, Swift, public-source: A dependency-free Swift feature contract that isolates selected package types behind main-actor lifecycle and restoration. Download: https://developer.mappls.com/downloads/starter-kits/ios-native-starter.zip - [React Native bridge-contract starter](https://developer.mappls.com/starter-kits/react-native-map-starter) — React Native, TypeScript, public-source: A typed shared state contract with independent Android and iOS adapter qualification instead of assumed wrapper parity. Download: https://developer.mappls.com/downloads/starter-kits/react-native-map-starter.zip - [Flutter place-selection starter](https://developer.mappls.com/starter-kits/flutter-map-starter) — Flutter, Dart, public-source: A Dart selection aggregate and adapter seam preserving Mappls Pin identity while Android and iOS distributions are verified independently. Download: https://developer.mappls.com/downloads/starter-kits/flutter-map-starter.zip - [Cordova stabilization starter](https://developer.mappls.com/starter-kits/cordova-maintenance-starter) — Cordova, JavaScript, legacy-maintenance: A legacy-safe WebView facade that waits for device readiness, owns teardown, and keeps a web/deep-link fallback available for migration. Download: https://developer.mappls.com/downloads/starter-kits/cordova-maintenance-starter.zip - [Xamarin extraction starter](https://developer.mappls.com/starter-kits/xamarin-maintenance-starter) — Xamarin, C#, entitlement-required: A shared .NET contract extracting business identity and commands from legacy bindings before independent Android and iOS successor selection. Download: https://developer.mappls.com/downloads/starter-kits/xamarin-maintenance-starter.zip - [Embedded Linux supervisor starter](https://developer.mappls.com/starter-kits/linux-embedded-starter) — Linux, C++, entitlement-required: A proprietary-runtime-neutral C++ seam with boot, health, degraded, stopped, and teardown states for entitled Linux distributions. Download: https://developer.mappls.com/downloads/starter-kits/linux-embedded-starter.zip - [Automotive release-manifest starter](https://developer.mappls.com/starter-kits/automotive-navigation-starter) — Automotive, C++ + JSON, entitlement-required: A protected-artifact-neutral release skeleton for runtime/data/configuration/voice compatibility, qualification, atomic switch, and rollback. Download: https://developer.mappls.com/downloads/starter-kits/automotive-navigation-starter.zip - [Widget journey host starter](https://developer.mappls.com/starter-kits/widgets-place-starter) — Widgets, HTML + JavaScript, public-source: A credential-free nearby iframe host with loading, ready, fallback, candidate, committed, and destroyed application states. Download: https://developer.mappls.com/downloads/starter-kits/widgets-place-starter.zip - [Deep-link handoff starter](https://developer.mappls.com/starter-kits/deep-links-starter) — Deep links, HTML + JavaScript, public-source: A dependency-free navigation-link builder with validation and separate click, app-attempt, fallback, and arrival evidence. Download: https://developer.mappls.com/downloads/starter-kits/deep-links-starter.zip - [MCP client policy starter](https://developer.mappls.com/starter-kits/mcp-agent-starter) — MCP, JavaScript + JSON, local-reference: A dependency-free policy starter separating offline and live-read MCP resources before adding an SDK transport. Download: https://developer.mappls.com/downloads/starter-kits/mcp-agent-starter.zip ## Exact-source launchpads and offline harnesses - [Mappls API Organization Guide: source launchpad](https://developer.mappls.com/launchpads/github) — .github, stateless, source-ready, fingerprint 862c91224d2b3e3fd8d3bed8. Offline harness: https://developer.mappls.com/downloads/source-starters/github.zip - [Angular Sample for MapmyIndia Interactive Maps JS SDK & MapmyIndia RESTful APIs for Web: source launchpad](https://developer.mappls.com/launchpads/mapmyindia-angular-sample-websdk-rest) — mapmyindia-angular-sample-webSDK-REST, stateless, sample-learning, fingerprint 4280593e3c2f3278656e1952. Offline harness: https://developer.mappls.com/downloads/source-starters/mapmyindia-angular-sample-websdk-rest.zip - [MapmyIndia Interactive Maps JS SDK & MapmyIndia RESTful APIs for Web in Pure JS: source launchpad](https://developer.mappls.com/launchpads/mapmyindia-purejs-sample-websdk-rest) — mapmyindia-pureJS-sample-webSDK-REST, stateless, sample-learning, fingerprint 7648d47274423632e0d612ff. Offline harness: https://developer.mappls.com/downloads/source-starters/mapmyindia-purejs-sample-websdk-rest.zip - [MAPPLS AI / ML APIs: source launchpad](https://developer.mappls.com/launchpads/mappls-ai-apis) — mappls-ai-apis, stateless, source-ready, fingerprint 80cfbc9b9c7ce4b4590d05e1. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-ai-apis.zip - [Mappls Vector Map Android SDK JetPack Compose: source launchpad](https://developer.mappls.com/launchpads/mappls-android-compose-demo) — mappls-android-compose-demo, stateless, sample-learning, fingerprint 37562302b0fcd2d2115c705f. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-android-compose-demo.zip - [Mappls Android SDK: source launchpad](https://developer.mappls.com/launchpads/mappls-android-sdk) — mappls-android-sdk, stateless, source-ready, fingerprint 2ccc51932d1b333b3561336c. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-android-sdk.zip - [Mappls Annotation Extension for iOS: source launchpad](https://developer.mappls.com/launchpads/mappls-annotation-extension-ios-distribution) — mappls-annotation-extension-ios-distribution, stateless, binary-review, fingerprint dcb2a91e8716dd659728ce45. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-annotation-extension-ios-distribution.zip - [Mappls Annotation Extension for iOS: source launchpad](https://developer.mappls.com/launchpads/mappls-annotation-extension-ios-distribution-base) — mappls-annotation-extension-ios-distribution-base, stateless, binary-review, fingerprint dcb2a91e8716dd659728ce45. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-annotation-extension-ios-distribution-base.zip - [[MapplsAPICore](): source launchpad](https://developer.mappls.com/launchpads/mappls-api-core-ios-distribution) — mappls-api-core-ios-distribution, stateless, binary-review, fingerprint 32bdcb00147ba07812b6903e. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-api-core-ios-distribution.zip - [[MapplsAPIKit (REST API Kit for iOS)](): source launchpad](https://developer.mappls.com/launchpads/mappls-api-kit-ios-distribution) — mappls-api-kit-ios-distribution, stateless, binary-review, fingerprint 8067ef763bd59da11448365f. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-api-kit-ios-distribution.zip - [[MapplsAPIKit (REST API Kit for iOS)](): source launchpad](https://developer.mappls.com/launchpads/mappls-api-kit-ios-distribution-base) — mappls-api-kit-ios-distribution-base, stateless, binary-review, fingerprint fef99dda42ad1a82220474a2. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-api-kit-ios-distribution-base.zip - [Mappls App Widgets: source launchpad](https://developer.mappls.com/launchpads/mappls-app-widgets) — mappls-app-widgets, stateless, source-ready, fingerprint 1cb282714a115237fb8e116d. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-app-widgets.zip - [MapplsCamera SDK for iOS: source launchpad](https://developer.mappls.com/launchpads/mappls-camera-ios-distribution) — mappls-camera-ios-distribution, stateless, binary-review, fingerprint 5188dcc0949df5e35f014373. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-camera-ios-distribution.zip - [Mappls Camera SDK: source launchpad](https://developer.mappls.com/launchpads/mappls-camera-sdk-android) — mappls-camera-sdk-android, stateless, source-ready, fingerprint 7840f9c22c6b19e5eafd7e97. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-camera-sdk-android.zip - [MapplsCamera SDK for iOS: source launchpad](https://developer.mappls.com/launchpads/mappls-camera-sdk-ios) — mappls-camera-sdk-ios, stateless, source-ready, fingerprint be2f3bb17147aef1890e71e5. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-camera-sdk-ios.zip - [MapplsDirectionUI for iOS: source launchpad](https://developer.mappls.com/launchpads/mappls-direction-ui-ios-distribution) — mappls-direction-ui-ios-distribution, hybrid, binary-review, fingerprint c8594d45a1d168c0c9d4df60. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-direction-ui-ios-distribution.zip - [MapplsDirectionUI for iOS: source launchpad](https://developer.mappls.com/launchpads/mappls-direction-ui-ios-distribution-base) — mappls-direction-ui-ios-distribution-base, hybrid, binary-review, fingerprint c8594d45a1d168c0c9d4df60. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-direction-ui-ios-distribution-base.zip - [MapplsDrivingRangePlugin for iOS: source launchpad](https://developer.mappls.com/launchpads/mappls-drivingrange-plugin-ios-distribution) — mappls-drivingrange-plugin-ios-distribution, stateless, binary-review, fingerprint ab30151929b38a436eb0bfee. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-drivingrange-plugin-ios-distribution.zip - [MapplsDrivingRangePlugin for iOS: source launchpad](https://developer.mappls.com/launchpads/mappls-drivingrange-plugin-ios-distribution-base) — mappls-drivingrange-plugin-ios-distribution-base, stateless, binary-review, fingerprint d45431cb565d97f838db4aef. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-drivingrange-plugin-ios-distribution-base.zip - [MapplsFeedbackKit for iOS: source launchpad](https://developer.mappls.com/launchpads/mappls-feedback-kit-ios-distribution) — mappls-feedback-kit-ios-distribution, hybrid, binary-review, fingerprint 505b2357a59292ab056a8375. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-feedback-kit-ios-distribution.zip - [MapplsFeedbackKit for iOS: source launchpad](https://developer.mappls.com/launchpads/mappls-feedback-kit-ios-distribution-base) — mappls-feedback-kit-ios-distribution-base, hybrid, binary-review, fingerprint 505b2357a59292ab056a8375. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-feedback-kit-ios-distribution-base.zip - [MapplsFeedbackUIKit for iOS: source launchpad](https://developer.mappls.com/launchpads/mappls-feedback-uikit-ios-distribution) — mappls-feedback-uikit-ios-distribution, hybrid, binary-review, fingerprint ce9bd0f45c46db6da97d67b3. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-feedback-uikit-ios-distribution.zip - [MapplsFeedbackUIKit for iOS: source launchpad](https://developer.mappls.com/launchpads/mappls-feedback-uikit-ios-distribution-base) — mappls-feedback-uikit-ios-distribution-base, hybrid, binary-review, fingerprint ce9bd0f45c46db6da97d67b3. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-feedback-uikit-ios-distribution-base.zip - [Mappls Flutter SDK: source launchpad](https://developer.mappls.com/launchpads/mappls-flutter-sdk) — mappls-flutter-sdk, stateless, source-ready, fingerprint 512ead785542761a9bff4f58. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-flutter-sdk.zip - [MapplsGeoanalytics Plugin for iOS: source launchpad](https://developer.mappls.com/launchpads/mappls-geoanalytics-ios-distribution) — mappls-geoanalytics-ios-distribution, stateless, binary-review, fingerprint b68a2b4329dc3c4db762969b. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-geoanalytics-ios-distribution.zip - [MapplsGeoanalytics Plugin for iOS: source launchpad](https://developer.mappls.com/launchpads/mappls-geoanalytics-ios-distribution-base) — mappls-geoanalytics-ios-distribution-base, stateless, binary-review, fingerprint b68a2b4329dc3c4db762969b. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-geoanalytics-ios-distribution-base.zip - [MapplsGeofenceUI Plugin for iOS: source launchpad](https://developer.mappls.com/launchpads/mappls-geofence-ui-ios-distribution) — mappls-geofence-ui-ios-distribution, hybrid, binary-review, fingerprint dc9ee3cb13b907b481c65810. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-geofence-ui-ios-distribution.zip - [MapplsGeofenceUI Plugin for iOS: source launchpad](https://developer.mappls.com/launchpads/mappls-geofence-ui-ios-distribution-base) — mappls-geofence-ui-ios-distribution-base, hybrid, binary-review, fingerprint dc9ee3cb13b907b481c65810. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-geofence-ui-ios-distribution-base.zip - [Mappls Insight Embeddable Visualizations: source launchpad](https://developer.mappls.com/launchpads/mappls-insight-sdk) — mappls-insight-sdk, stateless, source-ready, fingerprint 0ae2cda7c0a988f9a2be664e. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-insight-sdk.zip - [Mappls Intouch Android SDK: source launchpad](https://developer.mappls.com/launchpads/mappls-intouch-android-sdk) — mappls-intouch-android-sdk, stateful, source-ready, fingerprint 47e2aea8b4e7549e12b44dfe. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-intouch-android-sdk.zip - [Mappls Intouch IOS Distribution: source launchpad](https://developer.mappls.com/launchpads/mappls-intouch-ios-distribution) — mappls-intouch-ios-distribution, stateful, selection-required, fingerprint 9b4522931dc0fa13f91cd719. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-intouch-ios-distribution.zip - [Mappls Intouch IOS Distribution Base: source launchpad](https://developer.mappls.com/launchpads/mappls-intouch-ios-distribution-base) — mappls-intouch-ios-distribution-base, stateful, selection-required, fingerprint 01ba4719c80b6fe911b091a7. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-intouch-ios-distribution-base.zip - [[Mappls Intouch SDK](): source launchpad](https://developer.mappls.com/launchpads/mappls-intouch-ios-sdk) — mappls-intouch-ios-sdk, stateful, source-ready, fingerprint d11c093839d4dfcabfdba4e9. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-intouch-ios-sdk.zip - [Mappls Intouch REST Apis: source launchpad](https://developer.mappls.com/launchpads/mappls-intouch-rest-apis) — mappls-intouch-rest-apis, stateful, source-ready, fingerprint 06df37d758e9eed1e65f69df. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-intouch-rest-apis.zip - [Mappls iOS SDK: source launchpad](https://developer.mappls.com/launchpads/mappls-ios-sdk) — mappls-ios-sdk, stateless, source-ready, fingerprint 3e3adfeaccf78bbea89a8cbb. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-ios-sdk.zip - [Mappls LMS IOS Distribution: source launchpad](https://developer.mappls.com/launchpads/mappls-lms-ios-distribution) — mappls-lms-ios-distribution, stateless, binary-review, fingerprint a9995a27ea65a15fcd371bcb. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-lms-ios-distribution.zip - [Mappls LMS IOS Distribution Base: source launchpad](https://developer.mappls.com/launchpads/mappls-lms-ios-distribution-base) — mappls-lms-ios-distribution-base, stateless, binary-review, fingerprint c5f9894dd4d6f5a5c44eba24. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-lms-ios-distribution-base.zip - [Mappls Location Capture SDK: source launchpad](https://developer.mappls.com/launchpads/mappls-location-capture-android-sdk) — mappls-location-capture-android-sdk, hybrid, source-ready, fingerprint b698bbb4e4a361b24ec4a5d2. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-location-capture-android-sdk.zip - [Mappls Location Capture IOS SDK: source launchpad](https://developer.mappls.com/launchpads/mappls-location-capture-ios-sdk) — mappls-location-capture-ios-sdk, hybrid, selection-required, fingerprint 01ba4719c80b6fe911b091a7. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-location-capture-ios-sdk.zip - [Mappls Location Capture SDK (iOS): source launchpad](https://developer.mappls.com/launchpads/mappls-location-capture-sdk-ios-distribution) — mappls-location-capture-sdk-ios-distribution, hybrid, binary-review, fingerprint aa62d5d6bb832bc41af55ce8. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-location-capture-sdk-ios-distribution.zip - [[Mappls Map SDK](): source launchpad](https://developer.mappls.com/launchpads/mappls-map-ios-distribution) — mappls-map-ios-distribution, stateless, binary-review, fingerprint fd3d74d52bd9f7cd6db39df1. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-map-ios-distribution.zip - [[Mappls Map SDK](): source launchpad](https://developer.mappls.com/launchpads/mappls-map-ios-distribution-base) — mappls-map-ios-distribution-base, stateless, binary-review, fingerprint c44a5c147bbf3ed89e854974. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-map-ios-distribution-base.zip - [[Mappls Map SDK](): source launchpad](https://developer.mappls.com/launchpads/mappls-map-move-ios-distribution-base) — mappls-map-move-ios-distribution-base, stateless, binary-review, fingerprint df6752e592f6282a73260c2e. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-map-move-ios-distribution-base.zip - [[Custom Search Nearby Records](Custom-Search-Nearby-Records): source launchpad](https://developer.mappls.com/launchpads/mappls-nearby-finder-ios-distribution) — mappls-nearby-finder-ios-distribution, stateless, binary-review, fingerprint c98e46c291897e99300024c3. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-nearby-finder-ios-distribution.zip - [[Custom Search Nearby Records](Custom-Search-Nearby-Records): source launchpad](https://developer.mappls.com/launchpads/mappls-nearby-finder-ios-distribution-base) — mappls-nearby-finder-ios-distribution-base, stateless, binary-review, fingerprint c98e46c291897e99300024c3. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-nearby-finder-ios-distribution-base.zip - [Mappls Nearby Search Widget for iOS: source launchpad](https://developer.mappls.com/launchpads/mappls-nearby-ui-ios-distribution) — mappls-nearby-ui-ios-distribution, stateless, binary-review, fingerprint 139be695050e0183761cf105. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-nearby-ui-ios-distribution.zip - [Mappls Nearby Search Widget for iOS: source launchpad](https://developer.mappls.com/launchpads/mappls-nearby-ui-ios-distribution-base) — mappls-nearby-ui-ios-distribution-base, stateless, binary-review, fingerprint 97c2b14769200eece962afc2. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-nearby-ui-ios-distribution-base.zip - [MapplsRasterCatalogue Plugin for iOS: source launchpad](https://developer.mappls.com/launchpads/mappls-raster-catalogue-ios-distribution) — mappls-raster-catalogue-ios-distribution, stateless, binary-review, fingerprint 4bc01e5166d2793f3a0ca310. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-raster-catalogue-ios-distribution.zip - [MapplsRasterCatalogue Plugin for iOS: source launchpad](https://developer.mappls.com/launchpads/mappls-raster-catalogue-ios-distribution-base) — mappls-raster-catalogue-ios-distribution-base, stateless, binary-review, fingerprint 4bc01e5166d2793f3a0ca310. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-raster-catalogue-ios-distribution-base.zip - [Mappls Intouch React Native SDK: source launchpad](https://developer.mappls.com/launchpads/mappls-react-native-intouch-sdk) — mappls-react-native-intouch-sdk, stateful, source-ready, fingerprint cb0703543c8025cdd17cc535. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-react-native-intouch-sdk.zip - [Mappls React Native SDK: source launchpad](https://developer.mappls.com/launchpads/mappls-react-native-sdk) — mappls-react-native-sdk, stateless, source-ready, fingerprint 2bf827b9457541a5e1624942. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-react-native-sdk.zip - [Mappls Map APIs (REST) !: source launchpad](https://developer.mappls.com/launchpads/mappls-rest-apis) — mappls-rest-apis, stateless, source-ready, fingerprint a27fe1435b9cd778f7d5352d. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-rest-apis.zip - [MapplsUIWidgets - UI Components SDK for iOS: source launchpad](https://developer.mappls.com/launchpads/mappls-ui-widget-ios-distribution) — mappls-ui-widget-ios-distribution, hybrid, binary-review, fingerprint fa23204b72658dbd8f725bcd. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-ui-widget-ios-distribution.zip - [MapplsUIWidgets - UI Components SDK for iOS: source launchpad](https://developer.mappls.com/launchpads/mappls-ui-widget-ios-distribution-base) — mappls-ui-widget-ios-distribution-base, hybrid, binary-review, fingerprint e117a13d81e7182e759a4d72. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-ui-widget-ios-distribution-base.zip - [Sign up for Mappls: source launchpad](https://developer.mappls.com/launchpads/mappls-web-maps) — mappls-web-maps, stateless, source-ready, fingerprint 6d102a2fe3c3301e12220a39. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-web-maps.zip - [Mappls Web Maps JS: source launchpad](https://developer.mappls.com/launchpads/mappls-web-maps-js) — mappls-web-maps-js, stateless, source-ready, fingerprint 5b7bd5c66a780e8315d64bec. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-web-maps-js.zip - [Mappls Web Plugins: source launchpad](https://developer.mappls.com/launchpads/mappls-web-plugins) — mappls-web-plugins, stateless, source-ready, fingerprint 0500ead3cc1dcb4e9f2fcd08. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-web-plugins.zip - [Workmate SDK - Android: source launchpad](https://developer.mappls.com/launchpads/mappls-workmate-android-sdk) — mappls-workmate-android-sdk, stateful, source-ready, fingerprint e04a9f1e646d0348e9df1cdb. Offline harness: https://developer.mappls.com/downloads/source-starters/mappls-workmate-android-sdk.zip - [Skydnn AI APIs: source launchpad](https://developer.mappls.com/launchpads/skydnn-aiapi-docs) — skydnn-aiapi-docs, stateless, source-ready, fingerprint f407d95bd8b3db716f04033d. Offline harness: https://developer.mappls.com/downloads/source-starters/skydnn-aiapi-docs.zip - [V1.2.0 Logs: source launchpad](https://developer.mappls.com/launchpads/v1-2-0-logs) — v1.2.0-logs, stateless, source-ready, fingerprint 29445321439b02ac0adff1a2. Offline harness: https://developer.mappls.com/downloads/source-starters/v1-2-0-logs.zip - Machine-readable source launchpads: https://developer.mappls.com/api/launchpads or mappls://catalog/source-launchpads. Retrieve exact detail with mappls_get_source_launchpad. - Every harness makes zero provider calls and proves source identity and review boundaries only; it does not prove package availability, entitlement, compatibility, or live success. - Machine-readable starter projects, including exact file manifests and source boundaries: https://developer.mappls.com/api/starter-kits ## SDK and binary distribution center - [Choose an SDK or distribution](https://developer.mappls.com/sdks): 58 exact public records across 7 platforms—24 source SDKs and 34 binary distributions—with lifecycle, install evidence, source activity, local correspondence, migration risk, and production compatibility gates. - Machine-readable SDK catalog and exact detail: https://developer.mappls.com/api/sdks and https://developer.mappls.com/api/sdks?slug={sdkSlug} - AI clients can call mappls_get_sdk or read mappls://catalog/sdks. Repository identity, activity, and captured install text never prove package availability, entitlement, or compatibility. ## API contract generations and migrations - [Compare API generations](https://developer.mappls.com/api-generations): 17 operation groups retain 34 exact version-labelled variants and 17 adjacent migration comparisons. - 17 downloadable offline migration workbenches provide eight adapter languages and 51 fixture tests in total; all accept zero credentials and make zero provider calls. - [GET /alarm](https://developer.mappls.com/api-generations/intouch-get-alarm-10c842d182) — InTouch Telematics: v1-0-0 → v2-0-0; 0 structural review signals. Workbench: https://developer.mappls.com/downloads/api-generations/intouch-get-alarm-10c842d182-migration-kit.zip; checksum: https://developer.mappls.com/downloads/api-generations/intouch-get-alarm-10c842d182-migration-kit.zip.sha256 - [POST /alarm](https://developer.mappls.com/api-generations/intouch-post-alarm-8579e8cb93) — InTouch Telematics: v1-0-0 → v2-0-0; 0 structural review signals. Workbench: https://developer.mappls.com/downloads/api-generations/intouch-post-alarm-8579e8cb93-migration-kit.zip; checksum: https://developer.mappls.com/downloads/api-generations/intouch-post-alarm-8579e8cb93-migration-kit.zip.sha256 - [DELETE /alarm/{id}](https://developer.mappls.com/api-generations/intouch-delete-alarm-id-ca6df54f47) — InTouch Telematics: v1-0-0 → v2-0-0; 0 structural review signals. Workbench: https://developer.mappls.com/downloads/api-generations/intouch-delete-alarm-id-ca6df54f47-migration-kit.zip; checksum: https://developer.mappls.com/downloads/api-generations/intouch-delete-alarm-id-ca6df54f47-migration-kit.zip.sha256 - [POST /alarm/{id}](https://developer.mappls.com/api-generations/intouch-post-alarm-id-352bd7eab8) — InTouch Telematics: v1-0-0 → v2-0-0; 0 structural review signals. Workbench: https://developer.mappls.com/downloads/api-generations/intouch-post-alarm-id-352bd7eab8-migration-kit.zip; checksum: https://developer.mappls.com/downloads/api-generations/intouch-post-alarm-id-352bd7eab8-migration-kit.zip.sha256 - [GET /alarm/alarmLog/](https://developer.mappls.com/api-generations/intouch-get-alarm-alarmlog-0de27f90fb) — InTouch Telematics: v1-0-0 → v2-0-0; 0 structural review signals. Workbench: https://developer.mappls.com/downloads/api-generations/intouch-get-alarm-alarmlog-0de27f90fb-migration-kit.zip; checksum: https://developer.mappls.com/downloads/api-generations/intouch-get-alarm-alarmlog-0de27f90fb-migration-kit.zip.sha256 - [GET /geofence/](https://developer.mappls.com/api-generations/intouch-get-geofence-0428994c0e) — InTouch Telematics: v1-0-0 → v2-0-0; 0 structural review signals. Workbench: https://developer.mappls.com/downloads/api-generations/intouch-get-geofence-0428994c0e-migration-kit.zip; checksum: https://developer.mappls.com/downloads/api-generations/intouch-get-geofence-0428994c0e-migration-kit.zip.sha256 - [POST /geofence/](https://developer.mappls.com/api-generations/intouch-post-geofence-9930a2a5a4) — InTouch Telematics: v1-0-0 → v2-0-0; 0 structural review signals. Workbench: https://developer.mappls.com/downloads/api-generations/intouch-post-geofence-9930a2a5a4-migration-kit.zip; checksum: https://developer.mappls.com/downloads/api-generations/intouch-post-geofence-9930a2a5a4-migration-kit.zip.sha256 - [DELETE /geofence/{id}](https://developer.mappls.com/api-generations/intouch-delete-geofence-id-acd58f4735) — InTouch Telematics: v1-0-0 → v2-0-0; 0 structural review signals. Workbench: https://developer.mappls.com/downloads/api-generations/intouch-delete-geofence-id-acd58f4735-migration-kit.zip; checksum: https://developer.mappls.com/downloads/api-generations/intouch-delete-geofence-id-acd58f4735-migration-kit.zip.sha256 - [GET /geofence/{id}](https://developer.mappls.com/api-generations/intouch-get-geofence-id-9d8bafa2d5) — InTouch Telematics: v1-0-0 → v2-0-0; 0 structural review signals. Workbench: https://developer.mappls.com/downloads/api-generations/intouch-get-geofence-id-9d8bafa2d5-migration-kit.zip; checksum: https://developer.mappls.com/downloads/api-generations/intouch-get-geofence-id-9d8bafa2d5-migration-kit.zip.sha256 - [POST /geofence/{id}](https://developer.mappls.com/api-generations/intouch-post-geofence-id-83a7719be5) — InTouch Telematics: v1-0-0 → v2-0-0; 0 structural review signals. Workbench: https://developer.mappls.com/downloads/api-generations/intouch-post-geofence-id-83a7719be5-migration-kit.zip; checksum: https://developer.mappls.com/downloads/api-generations/intouch-post-geofence-id-83a7719be5-migration-kit.zip.sha256 - [GET /describeDataset](https://developer.mappls.com/api-generations/mgis-get-describedataset-855417da71) — mGIS Analytics: v1 → v2; 3 structural review signals. Workbench: https://developer.mappls.com/downloads/api-generations/mgis-get-describedataset-855417da71-migration-kit.zip; checksum: https://developer.mappls.com/downloads/api-generations/mgis-get-describedataset-855417da71-migration-kit.zip.sha256 - [GET /getGeometryType](https://developer.mappls.com/api-generations/mgis-get-getgeometrytype-97af5b353e) — mGIS Analytics: v1 → v2; 2 structural review signals. Workbench: https://developer.mappls.com/downloads/api-generations/mgis-get-getgeometrytype-97af5b353e-migration-kit.zip; checksum: https://developer.mappls.com/downloads/api-generations/mgis-get-getgeometrytype-97af5b353e-migration-kit.zip.sha256 - [GET /getLayersList](https://developer.mappls.com/api-generations/mgis-get-getlayerslist-7a2d5959c7) — mGIS Analytics: v1 → v2; 1 structural review signals. Workbench: https://developer.mappls.com/downloads/api-generations/mgis-get-getlayerslist-7a2d5959c7-migration-kit.zip; checksum: https://developer.mappls.com/downloads/api-generations/mgis-get-getlayerslist-7a2d5959c7-migration-kit.zip.sha256 - [GET /getLegendsImg](https://developer.mappls.com/api-generations/mgis-get-getlegendsimg-eed36ebbd0) — mGIS Analytics: v1 → v2; 1 structural review signals. Workbench: https://developer.mappls.com/downloads/api-generations/mgis-get-getlegendsimg-eed36ebbd0-migration-kit.zip; checksum: https://developer.mappls.com/downloads/api-generations/mgis-get-getlegendsimg-eed36ebbd0-migration-kit.zip.sha256 - [GET /map/getFeatureInfo](https://developer.mappls.com/api-generations/mgis-get-map-getfeatureinfo-6dd132c52b) — mGIS Analytics: v1 → v2; 0 structural review signals. Workbench: https://developer.mappls.com/downloads/api-generations/mgis-get-map-getfeatureinfo-6dd132c52b-migration-kit.zip; checksum: https://developer.mappls.com/downloads/api-generations/mgis-get-map-getfeatureinfo-6dd132c52b-migration-kit.zip.sha256 - [GET /map/getLayerJoin](https://developer.mappls.com/api-generations/mgis-get-map-getlayerjoin-9a1aac1c53) — mGIS Analytics: v1 → v2; 0 structural review signals. Workbench: https://developer.mappls.com/downloads/api-generations/mgis-get-map-getlayerjoin-9a1aac1c53-migration-kit.zip; checksum: https://developer.mappls.com/downloads/api-generations/mgis-get-map-getlayerjoin-9a1aac1c53-migration-kit.zip.sha256 - [GET /map/getMap](https://developer.mappls.com/api-generations/mgis-get-map-getmap-ee5f026cd2) — mGIS Analytics: v1 → v2; 0 structural review signals. Workbench: https://developer.mappls.com/downloads/api-generations/mgis-get-map-getmap-ee5f026cd2-migration-kit.zip; checksum: https://developer.mappls.com/downloads/api-generations/mgis-get-map-getmap-ee5f026cd2-migration-kit.zip.sha256 - Machine-readable index and exact detail: https://developer.mappls.com/api/contract-generations and https://developer.mappls.com/api/contract-generations?slug={generationGroupSlug} - AI clients can call mappls_get_contract_generation or read mappls://catalog/contract-generations. Preferred means highest retained version-labelled source evidence only—not provider support, entitlement, compatibility, availability, or production approval. ## Authentication and credential architecture - [Choose an authentication path](https://developer.mappls.com/authentication): 14 distinct trusted-server, browser, mobile, wrapper, widget, deep-link, enterprise, device, and MCP paths with placement, restriction, rotation, diagnostics, and evidence boundaries. - Machine-readable catalog and advisor: https://developer.mappls.com/api/authentication?runtime=browser&product=maps - AI clients can call mappls_get_authentication_path or read mappls://catalog/authentication. Neither accepts a credential value; ambiguous generations remain selection-required. ## Errors, retries, and diagnostics - [Classify a Mappls failure](https://developer.mappls.com/errors): 11 cross-platform recovery classes distinguish validation, authentication, entitlement, conflicts, throttling, network/provider faults, and unknown stateful outcomes. - Machine-readable classifier: https://developer.mappls.com/api/errors?status=504&operationSafety=state-transition&hasRequestId=true - AI clients can call mappls_diagnose_error or read mappls://catalog/errors. The classifier accepts only bounded safe metadata—not credentials, full URLs, provider payloads, customer data, precise location, or media. ## Developer Console webhooks - [Build a production webhook receiver](https://developer.mappls.com/webhooks): 4 signed, versioned console topics with TypeScript, Python, Java, and Go verification; raw-body HMAC; durable deduplication; ordered lanes; bounded retry; and governed replay. - Machine-readable contract: https://developer.mappls.com/api/webhook-guide or mappls://guides/webhooks - Signing input: ${timestamp}.${eventId}.${rawBody}. These four topics describe this developer console reference implementation. They are not Mappls product webhooks, InTouch payloads, or the 138 application-owned event blueprints. ## Organization access and ownership continuity - New developers submit bounded organization/application context at https://developer.mappls.com/get-started through /api/organization-requests. A signed HTTP-only browser session—not contact email—owns the pre-login status and cancellation view; it accepts no credentials, customer payloads, precise locations, or provider calls. - Company operators independently approve or reject the exact version at https://developer.mappls.com/admin/organization-requests. Approval provisions an active organization, verified declared profile, and development project only. It grants no sign-in authority, credential, entitlement, or production approval. - After approving an organization, a stepped-up platform administrator separately issues its first owner sign-in at https://developer.mappls.com/admin/developers through /api/admin/developers/{developerId}/owner-invitation. Approval alone grants no login authority. - The seven-day activation capability is revealed once, stored only as a SHA-256 digest, and rotated on reissue. Its OIDC claim binds the verified issuer+subject as the sole owner/org_admin, commits roster, lifecycle, event, and audit evidence atomically, then enters /console/get-started. Email remains notification metadata; external directory completion is separate. - Organization administrators create seven-day, one-use member invitations at https://developer.mappls.com/console/team. Only a SHA-256 token digest is persisted. Acceptance verifies the configured OIDC issuer+subject and never uses email as identity authority; roster activation and exact binding evidence commit together, while external directory completion remains separately reconciled. - Current owners use https://developer.mappls.com/console/team and https://developer.mappls.com/api/team/ownership-transfers to nominate a different active administrator. The nominee accepts or declines with a separately governed tenant org-admin identity within seven days. - Acceptance rechecks the transfer and both roster versions, then demotes the former owner and promotes the nominee in one sole-owner transaction. Every action retains reason, reference, SHA-256, audit, outbox, and immutable timeline evidence. - Platform operators inspect read-only evidence at https://developer.mappls.com/admin/access and https://developer.mappls.com/api/admin/team-ownership-transfers. No platform override is exposed, and tenant projections omit identity-binding identifiers. ## Periodic access certification - Company identity administrators open 7–90 day campaigns at https://developer.mappls.com/admin/access and https://developer.mappls.com/api/admin/access-certifications. Each campaign freezes active/pending roster authority plus active issuer-subject bindings and assigns a different platform reviewer. - Every remediate finding creates a governed closure row exposed at https://developer.mappls.com/api/team/access-remediations and https://developer.mappls.com/api/admin/access-remediations. A company administrator assigns distinct operator/verifier identities, a 1–60 day deadline, and an exact roster, ownership-transfer, or binding outcome. - Action evidence does not change access or prove closure. The exact assigned verifier can complete remediation only after the governed source ledger reaches the assigned outcome; overdue work remains visible and history stays append-only. - The current organization owner decides non-owner roster items through https://developer.mappls.com/console/team using an active governed org-admin identity. The assigned independent company reviewer decides the owner and identity-binding items. - Decisions are retain or remediate. Remediation emits governed work but does not suspend, revoke, certify propagation, or prove completion; a clean later snapshot is required after corrective action. - External directory work is separately visible at https://developer.mappls.com/api/admin/identity-lifecycle. Every operation binds one exact issuer-subject binding version; signed results arrive only through https://developer.mappls.com/api/internal/identity-lifecycle-events, and deprovisioning cannot succeed without provider-session revocation confirmation. - Full contract: docs/TEAM_OWNERSHIP_TRANSFER.md. Email is display and attribution metadata, never the authentication key or the proof of separation. ## Environments and deployment readiness - [Separate every deployment boundary](https://developer.mappls.com/environments): fixture, development, staging, and production guidance with 11 conditional evidence controls and an explicit promotion contract. - Machine-readable assessor: https://developer.mappls.com/api/environments?targetEnvironment=production&stateModel=stateful&credentialSurface=server-secret&liveProviderCalls=true - AI clients can call mappls_plan_environment or read mappls://catalog/environments. Neither accepts credentials, URLs, provider payloads, customer data, or release artifacts; application activity never self-approves production. ## Agent integration and governance - [Design a governed Mappls AI application](https://developer.mappls.com/ai/agents): 6 purpose-bound developer, place, route, fleet, field, and release patterns with 12 conditional controls and 8 evaluation dimensions. - Machine-readable planner: https://developer.mappls.com/api/agent-integrations?pattern=place-concierge&deployment=customer-facing&providerMode=live-read&dataClass=precise-location&autonomy=confirmed-read - AI clients can call mappls_plan_agent_integration or read mappls://catalog/agent-integrations. Planning accepts no prompt, credential, location, identifier, payload, URL, or artifact; no provider or application write is exposed. ## Offline developer CLI - The website command palette searches all 707 canonical destinations locally in the browser, with API/SDK, build, and learning scopes. Only the static public index is fetched; query text is never transmitted, logged, analyzed, or sent to a provider. - [Mappls Developer CLI](https://developer.mappls.com/cli): search 707 canonical developer destinations, create any of 13 platform starters, and inspect project identity, evidence files, credential literals, unsafe paths, and readiness gates without a provider call. - Download: https://developer.mappls.com/downloads/mappls-developer-cli.zip - SHA-256: https://developer.mappls.com/downloads/mappls-developer-cli.zip.sha256 - All data commands support JSON. The CLI accepts no provider credential and does not turn a successful doctor report into entitlement or production approval. ## Deterministic solution architect - [Compose a Mappls solution](https://developer.mappls.com/architect): choose from 16 industry scenarios, 13 exact platforms, and 10 products; receive separate stateless and durable lanes, quickstarts, tutorials, journeys, contracts, source evidence, runnable apps, and six release gates. - Machine-readable plan: https://developer.mappls.com/api/solution-plan?useCase=last-mile-delivery&platform=Web - AI clients can call mappls_plan_solution or read mappls://catalog/solution-plans for valid values. ## Documentation completeness and gap ledger - [Inspect documentation coverage](https://developer.mappls.com/coverage): 105 exact source, product, and platform records; 79 of 82 public-source rows currently satisfy every required check, with 3 required gaps kept explicit. - Machine-readable coverage and the five-state acquisition protocol: https://developer.mappls.com/api/coverage; authenticated owner/reviewer operations: https://developer.mappls.com/admin/documentation and https://developer.mappls.com/api/admin/documentation-evidence. - All 707 canonical developer destinations have an anonymous, revision-bound page-feedback identity. Browser intake at https://developer.mappls.com/api/documentation-feedback accepts no account identity, email, URL, credential, location, or provider payload; company triage is governed at https://developer.mappls.com/admin/documentation-feedback. This is a human feedback channel, not an AI write tool. - Product- or platform-adjacent tutorials and apps never count as source-exact quickstart, contract, journey, or migration evidence. A score is snapshot documentation evidence—not provider support, entitlement, compatibility, or release approval. ## Mappls Developer Academy - [Build a personalized curriculum](https://developer.mappls.com/academy): 16 industry outcomes × 13 exact platforms × 3 entry experiences = 624 deterministic paths through source orientation, quickstarts, code and contract labs, hostile journeys, one of 20 maintained capstones, and production exit evidence. - Machine-readable plan: https://developer.mappls.com/api/learning-path?useCase=field-service&platform=Android&experience=beginner - AI clients can call mappls_plan_learning_path or read mappls://catalog/learning-paths. The planner accepts no credentials, locations, payloads, prompts, evidence files, or URLs; completion grants no certification, entitlement, or production approval. - Human learners may save up to twelve paths in browser-local storage. Each completed module is bound to its SHA-256 curriculum revision and automatically reopens when that module changes. Progress is not synchronized, analyzed, exposed as an AI write tool, or accepted as certification, entitlement, conformance, release, or deployment evidence. ## End-to-end implementation recipes - [Implementation Recipe Library](https://developer.mappls.com/recipes): 48 source-linked recipes span 16 industries and 3 operating depths, with 384 editable code views, deterministic fixture scenarios, recovery controls, and tested downloadable capstones. - Machine-readable index and exact detail: https://developer.mappls.com/api/recipes and https://developer.mappls.com/api/recipes?slug={recipeSlug} - AI clients can call mappls_get_implementation_recipe or read mappls://catalog/recipes. Recipes make no provider call or write and never prove entitlement, package availability, payload compatibility, or production readiness. ## Portable integration manifests - [Build an integration manifest](https://developer.mappls.com/integration-manifests): 624 deterministic use-case, platform, and operating-depth decisions bind products, companion runtimes, authentication generations, exact source-fingerprinted operations, durable journeys, runnable proof, and release gates. - Machine-readable builder: https://developer.mappls.com/api/integration-manifest?useCase=last-mile-delivery&platform=Android&mode=durable-operation - AI clients can call mappls_build_integration_manifest or read mappls://catalog/integration-manifests. The offline builder accepts no prompt, credential, payload, location, URL, file, tenant input, or evidence artifact and makes no provider call or write. - The CLI can create and validate the same canonical artifact; an authenticated application download adds bounded tenant status without credential values, private destinations, or provider payloads. ## Tenant Application Build Workspace - Authenticated developers can open https://developer.mappls.com/console/apps/{applicationId}/build?useCase={useCaseSlug}&mode={mode} to join a canonical recipe to that application’s current provisioning, product-access, credential-status, event, and runtime evidence. - Authenticated machine plan: https://developer.mappls.com/api/apps/{applicationId}/build-plan?useCase={useCaseSlug}&mode={mode} - Portable application handoff: https://developer.mappls.com/api/apps/{applicationId}/integration-manifest?useCase={useCaseSlug}&mode={mode} - Self-verifying launch dossier: https://developer.mappls.com/api/apps/{applicationId}/launch-dossier?useCase={useCaseSlug}&mode={mode}. It binds the exact manifest digest, safe control-plane evidence, fixture proof, acceptance gates, and seven authority states for CI and independent review. Its embedded digest is self-generated, not signed; CI should cross-check the separately downloaded canonical application manifest. - The launch dossier always reports productionReady=false. Provider conformance, security/privacy, operations, production release, deployment, and post-release evidence remain authoritative outside the developer-generated artifact; the CLI rejects integrity drift or attempted self-approval. - Durable application release intake: authenticated developers submit only launch-dossier/manifest IDs and SHA-256 digests at /api/apps/{applicationId}/release-handoffs. Company acceptance requires an existing draft release record but cannot satisfy a release gate, change release state, approve, deploy, or authorize traffic. - Governed production deployment: /admin/releases creates an application-scoped deployment only after the linked release is approved and the application handoff is accepted. A creator assigns a different operator; a third identity authorizes; only the operator moves traffic through canary, monotonic ramps, and observation; the original authorizer reconciles; operator or authorizer can roll back. Every transition carries an optimistic version, bounded evidence reference, SHA-256 digest, reason, actor, timestamp, audit record, and outbox event. - Tenant deployment evidence is read-only and redacted in /console/apps/{applicationId}/build. Reconciliation never retroactively satisfies a release gate, proves unobserved provider behavior, or replaces the deployment system of record. - The tenant-scoped plan returns no credential material, provider payload, or browser-visible secret; makes no provider call or write; does not substitute an adjacent API when an exact contract is absent; and never grants access or approves release. ## Tenant Application AI Workspace - Authenticated developers can open https://developer.mappls.com/console/ai for a tenant-wide inventory or https://developer.mappls.com/console/apps/{applicationId}/ai?pattern={patternSlug}&mode={offlineOrLiveRead} for one application's smallest-authority MCP plan. - Authenticated machine plan: https://developer.mappls.com/api/apps/{applicationId}/ai-plan?pattern={patternSlug}&mode={offlineOrLiveRead}; administrative inventory: https://developer.mappls.com/api/admin/ai-readiness. - MCP authority is canonical: 32 offline tools, 42 live-read tools, 38 resources, 2 prompts, and 0 write tools. - The workspace maps each live tool to its exact product entitlement, emits credential-empty stdio and remote configuration, preserves durable state outside model context, and keeps purpose, allowlist enforcement, consent, human review, evaluations, audit, budgets, kill-switch, and release approval as independent controls. - Planning does not register an OAuth client, issue a token, call a provider, grant an entitlement, enforce a gateway allowlist, or approve production. ## Governed data-resilience evidence - Platform administrators use https://developer.mappls.com/admin/resilience to plan a restore or regional-failover exercise for one active production application, bind backup and runbook identities, declare RPO/RTO targets, and separate creator, authorizer, operator, and data owner. - The operator records measured recovery-point lag, recovery duration, restored-record count, and variance count; only the assigned data owner can reconcile evidence that meets both objectives and has zero record variance. - Owning developers receive a redacted, read-only posture at https://developer.mappls.com/console/resilience and https://developer.mappls.com/api/console/data-resilience. Administrator commands remain under https://developer.mappls.com/api/admin/data-resilience. - These records are governance evidence only: they do not execute a backup, restore, regional failover, retention or legal-hold action, authorize traffic, or prove unobserved data. ## Governed tenant data-lifecycle evidence - Platform administrators use https://developer.mappls.com/admin/data-lifecycle to freeze a production application's data class, storage scope, residency region, retention/deletion objectives, policy and sampling-query digests, and exact privacy reviewer, operator, and data owner. - The privacy reviewer authorizes; the operator records sample size, oldest-record age, overdue deletions, out-of-region records, and untracked backups; only the assigned data owner can reconcile a positive sample whose age is within policy and whose three violation counts are zero. - Owning developers receive a redacted, read-only posture at https://developer.mappls.com/console/data-lifecycle and https://developer.mappls.com/api/console/data-lifecycle. Administrator commands remain under https://developer.mappls.com/api/admin/data-lifecycle. - These records are sampled governance evidence only: they do not retain, delete, move, export, anonymize, or legally hold data, establish legal basis, or prove unsampled storage. ## Application data-practices declarations - Authenticated developers use https://developer.mappls.com/console/data-practices and https://developer.mappls.com/api/data-practices to submit an application revision declaring specific purpose, location and related data categories, processing modes, represented people, retention, residency, notice and assessment digests, privacy contact, sharing, transfer, and minors scope. - Platform privacy reviewers use https://developer.mappls.com/admin/privacy and https://developer.mappls.com/api/admin/data-practices to approve or reject with a separate evidence identity. A later approved revision atomically supersedes the former approved record without deleting its history. - Tenant cancellation, optimistic versions, ownership isolation, immutable events, audit, and outbox evidence are enforced. The tenant read model excludes internal reviewer identity, decision rationale, and evidence reference. - Approval records independent review of the declaration only; it does not establish legal basis, verify notice or consent, inspect runtime data, execute retention/deletion, authorize cross-border transfer, or prove compliance. ## Governed application retirement - Authenticated developers use https://developer.mappls.com/console/retirements and https://developer.mappls.com/api/application-retirements to submit or cancel an evidence-bound end-of-life request with a future effective time, explicit data disposition, runbook/disposition digests, and traffic/consumer/owner attestations. - Platform administrators use https://developer.mappls.com/admin/retirements and https://developer.mappls.com/api/admin/application-retirements for independent review. Approval fails closed while credentials, webhooks, entitlements, access requests, deployments, or resilience/lifecycle exercises remain active. - Approval only suspends the local application and emits a uniquely identified provider request. A separately signed provisioning result is the sole retired/failed authority; failed work can receive a fresh admin retry identity, and replay conflicts are rejected. - The application, immutable timeline, audit, outbox, and provider-result evidence are retained. Retirement does not hard-delete the application, export/delete customer data, decide legal retention, migrate downstream consumers, close a contract, or prove unobserved provider behavior. ## Deep-link handoff builder - [Build a validated Mappls deep link](https://developer.mappls.com/tools/deep-links): current source-documented place, navigation, point-on-map, and Get Pin intents with HTML, JavaScript, Kotlin, Swift, fallback evidence, and device tests. - Machine-readable builder: https://developer.mappls.com/api/deep-link?intent=navigation&latitude=28.612964&longitude=77.229463&destinationName=India%20Gate&mode=driving - AI clients can call mappls_build_deep_link or read mappls://catalog/deep-links. Neither accepts a credential. ## Widget integration builder - [Configure a Mappls widget](https://developer.mappls.com/tools/widgets): 7 exact iframe generators and 2 guarded enterprise, native, or selection-required tracks; no credential input. - Machine-readable builder: https://developer.mappls.com/api/widget-config?widget=places&mapplsPin=9ADJ1X - AI clients can call mappls_build_widget_embed or read mappls://catalog/widgets. Optional and required browser access values are literal placeholders only. - [Operate an Add a Place contribution](https://developer.mappls.com/tools/widgets/add-a-place): use the corrected public query shape, keep reported submission distinct from publication, and require a supported evidence source plus Mappls Pin before closure. - Runnable journey: https://developer.mappls.com/samples/place-contribution-desk and machine configuration: https://developer.mappls.com/api/widget-config?widget=add-a-place&position=top-left&zoom=16&pitch=0&fullscreen=true - [Operate an entitled RealView inspection](https://developer.mappls.com/tools/widgets/realview): isolate the browser-visible token, validate only exact-origin status 204, and separate human observation from imagery metadata and reviewer acceptance. - Runnable journey: https://developer.mappls.com/samples/realview-inspection-desk and machine configuration: https://developer.mappls.com/api/widget-config?widget=realview&mapplsPin=JQ5QN8&minDistance=20&maxDistance=1000 - [Select a native widget path](https://developer.mappls.com/tools/widgets/native): 4 current platform lines × 5 capabilities, with exact version evidence, explicit coverage gaps, six lifecycle states, host-owned persistence, adapter scaffolds, and release tests. - Machine-readable selector: https://developer.mappls.com/api/native-widget-path?platform=android&capability=place-search - AI clients can call mappls_get_native_widget_path or read mappls://catalog/native-widgets. A not-listed pairing remains selection-required. - [Plan an mGIS integration](https://developer.mappls.com/tools/mgis): 4 separate surfaces, 12 Web JS methods, and 8 durable API groups with placeholder-only browser examples and explicit contract gates. - Machine-readable planner: https://developer.mappls.com/api/mgis-plan?surface=web-sdk-methods&method=layer-list - AI clients can call mappls_plan_mgis_integration or read mappls://catalog/mgis. Cloud mGIS and sovereign MIGIST are distinct products. - [Operate an offline or automotive release](https://developer.mappls.com/tools/automotive): 7 application-owned phases, A/B slot safety, 10 hostile-path tests, and explicit public/current-local/legacy-local evidence generations. - Runnable journey: https://developer.mappls.com/samples/offline-release-control and machine evidence: mappls://catalog/automotive. The reference accepts no protected package, credential, license, activation key, binary, or artifact body. - [Operate a governed SkyDNN vision workflow](https://developer.mappls.com/tools/vision): 4 reviewed OpenAPI operations, 7 application-owned lifecycle stages, 8 industry scenarios, and 10 hostile-path tests. - Runnable journey: https://developer.mappls.com/samples/vision-evidence-desk and machine evidence: mappls://catalog/vision. The reference accepts no image, video, media URL, credential, face, plate, or provider-internal path. ## SDK and API migrations - [Core REST: MapmyIndia generation to Mappls contracts](https://developer.mappls.com/migrate/core-rest-generation): direct-lineage, high risk. Move trusted-server integrations across host, path, authentication, schema, and quota generations with contract evidence instead of string replacement. - [Web maps and plugins: legacy scripts to a governed browser boundary](https://developer.mappls.com/migrate/web-maps-and-plugins): adjacent-evidence, high risk. Replace global-script assumptions with explicit origin restrictions, lifecycle ownership, typed adapters, accessible fallbacks, and measured rendering parity. - [InTouch Android SDK lineage](https://developer.mappls.com/migrate/intouch-android): direct-lineage, critical risk. Migrate tracking journeys as consent-aware state machines, preserving session identity, offline queues, background policy, and event ordering across SDK lines. - [InTouch React Native bridge lineage](https://developer.mappls.com/migrate/intouch-react-native): direct-lineage, critical risk. Align JavaScript, wrapper, and both native dependency graphs while keeping tracking identity and recovery above the bridge. - [InTouch iOS SDK lineage](https://developer.mappls.com/migrate/intouch-ios): direct-lineage, critical risk. Move the explicitly deprecated MapmyIndia iOS tracking line to a release-qualified Mappls SDK while preserving durable session identity, consent, background execution, event order, and unknown-outcome recovery. - [InTouch REST contract generation](https://developer.mappls.com/migrate/intouch-rest-generation): selection-required, critical risk. Re-contract a stateful telematics integration without confusing a newer repository name with a confirmed endpoint or write-compatible product generation. - [Cordova and Ionic: stabilize, then migrate by journey](https://developer.mappls.com/migrate/cordova-ionic-exit): selection-required, critical risk. Turn an aging hybrid integration into replaceable application capabilities, then move complete journeys to a confirmed web, native, or cross-platform target. - [React Native maps and REST wrappers](https://developer.mappls.com/migrate/react-native-maps): direct-lineage, high risk. Move beta-era bridges to a release-specific Mappls wrapper while testing the Android and iOS implementations as separate products. - [Flutter map plugin lineage](https://developer.mappls.com/migrate/flutter-map-lineage): direct-lineage, high risk. Replace the explicitly obsolete MapmyIndia Flutter plugin with a release-qualified Mappls line while treating Dart, Android, iOS, and native SDK versions as one reproducible compatibility graph. - [Android vector map SDK lineage](https://developer.mappls.com/migrate/android-map-lineage): direct-lineage, high risk. Move the explicitly deprecated MapmyIndia vector SDK line to an approved Mappls Android release through a narrow application map boundary and a clean device/release qualification matrix. - [iOS map and API package lineage](https://developer.mappls.com/migrate/ios-map-packages): direct-lineage, high risk. Resolve modular Swift package/distribution lines as one compatible release set and keep Mappls symbols behind testable Swift protocols. - [mGIS and GeoAnalytics workspace generation](https://developer.mappls.com/migrate/mgis-workspace-generation): selection-required, critical risk. Contain legacy mGIS API/library contracts behind a durable workspace seam, then select the entitled current dataset, web-method, analysis, and deployment surfaces without inventing replacement endpoints. - [Workmate and workforce journeys](https://developer.mappls.com/migrate/workmate-workforce): selection-required, critical risk. Reframe deprecated Workmate surfaces around durable workforce aggregates, then select the entitled Mappls modules that satisfy each complete journey. - Machine-readable migrations: https://developer.mappls.com/api/migrations ## Release intelligence and compatibility - [Developer-platform releases and source compatibility](https://developer.mappls.com/changelog): 3 reference-implementation releases and 82 exact-once public source lifecycle records. - Snapshot activity bands: 29 active, 30 aging, and 23 historical. Activity is evidence, not provider support or compatibility. - Machine-readable registry: https://developer.mappls.com/api/releases, mappls_get_release_intelligence, or mappls://catalog/releases. ## Industry solution blueprints - [A delivery promise customers can trust](https://developer.mappls.com/use-cases/last-mile-delivery) — Logistics: Validate addresses, allocate stops, guide drivers, stream progress, and prove completion. - [A pickup flow that survives the real world](https://developer.mappls.com/use-cases/ride-hailing) — Mobility: Find entrances, match riders and drivers, route continuously, and resolve pickup ambiguity. - [Dispatch the right technician, with the right proof](https://developer.mappls.com/use-cases/field-service) — Utilities: Turn outages or service requests into skill-aware, route-efficient field jobs. - [Restore the grid from alarm to verified service](https://developer.mappls.com/use-cases/energy-grid-resilience) — Energy: Correlate network alarms, weather exposure, switching plans, field crews, and restoration evidence. - [Choose the next store with evidence](https://developer.mappls.com/use-cases/retail-expansion) — Retail: Combine catchments, demographics, competition, access, and existing performance. - [Make address risk explainable](https://developer.mappls.com/use-cases/banking-address-risk) — Financial services: Standardize applications, verify presence, enrich geography, and route cases for review. - [Evidence-led claims from incident to settlement](https://developer.mappls.com/use-cases/insurance-claims) — Insurance: Capture location and imagery, use governed vision triage, dispatch assessors, and understand catastrophe exposure. - [Coordinate time-critical care without losing custody](https://developer.mappls.com/use-cases/hospital-care-logistics) — Healthcare: Resolve facilities and entrances, dispatch suitable transport, track hand-offs, and preserve privacy-minimized care logistics evidence. - [Route coordinated response under pressure](https://developer.mappls.com/use-cases/emergency-response) — Public safety: Resolve caller location, find capable resources, route around incidents, and maintain a common picture. - [A living operations map for the city](https://developer.mappls.com/use-cases/smart-city-operations) — Government: Unify assets, incidents, crews, citizen feedback, and long-term spatial analysis. - [Navigation built for intermittent connectivity](https://developer.mappls.com/use-cases/connected-vehicle) — Automotive: Ship an activated, updateable in-vehicle navigation lifecycle with online enhancement. - [Run a safe, punctual airport turnaround](https://developer.mappls.com/use-cases/aviation-ground-operations) — Aviation: Coordinate stands, service vehicles, restricted zones, inspections, and turnaround milestones on one governed operating picture. - [Turn inspiration into an itinerary](https://developer.mappls.com/use-cases/travel-discovery) — Travel: Help travelers discover, sequence, visualize, and open rich place experiences. - [Coordinate field operations across every plot](https://developer.mappls.com/use-cases/agriculture-field-ops) — Agriculture: Map parcels, schedule crews, track equipment, and compare observations over time. - [Move material safely across a changing mine](https://developer.mappls.com/use-cases/mining-haulage-safety) — Mining: Version haul roads and exclusion zones, dispatch compatible equipment, track cycles, and reconcile safety and production evidence. - [Operate the network from tower to doorstep](https://developer.mappls.com/use-cases/telecom-network-care) — Telecommunications: Link network assets, alarms, field teams, and customer impact spatially. ## Stateful journey blueprints - [Plan a stateful operating model](https://developer.mappls.com/tools/stateful): 9 journey-bearing product tracks across 3 provider-stateful, 4 hybrid, and 2 application-owned boundaries; 18 complete state machines, eight control layers, linked evidence, verified apps, and release gates. - Machine-readable plan: https://developer.mappls.com/api/stateful-plan?product=intouch-telematics or call mappls_plan_stateful_integration. Valid tracks are at mappls://catalog/stateful. - [Execute the Stateful Journey Lab](https://developer.mappls.com/tools/journey-lab): 18 lifecycles × 5 complete, replay, stale-version, invalid-transition, and unknown-outcome scenarios = 90 deterministic application-owned fixture paths, with six-language clients and no credential, provider call, payload, or write. - Machine-readable simulation: POST https://developer.mappls.com/api/journey-simulator with exactly journey and scenario; AI clients can call mappls_simulate_journey or read mappls://catalog/journey-simulator. A passing fixture is not entitlement, provider resource, webhook, performance, or production evidence. - [Complete stateful implementation workshops](https://developer.mappls.com/journeys): 18 exact journey workshops provide 144 labs, 90 application-owned scaffolds, five hostile scenarios per journey, and one checksummed maintained capstone per workshop. - Machine-readable workshop index and exact detail: https://developer.mappls.com/api/journey-workshops and https://developer.mappls.com/api/journey-workshops?journey={journeySlug}; AI clients can call mappls_get_journey_workshop or read mappls://catalog/journey-workshops. - [Field-service task lifecycle](https://developer.mappls.com/journeys/field-service-task): 8 states, 8 transitions, 4 failure plans. Create, assign, accept, travel, prove, approve, and close a field job without losing actor, retry, or evidence history. - [Connected fleet trip](https://developer.mappls.com/journeys/connected-fleet-trip): 6 states, 7 transitions, 4 failure plans. Provision an observable trip, follow live vehicle state, explain exceptions, close deliberately, and retain a replayable operational record. - [Fleet geofence exception](https://developer.mappls.com/journeys/fleet-geofence-exception): 6 states, 5 transitions, 4 failure plans. Create a governed zone, evaluate vehicle activity, suppress noise, raise an actionable case, and retire the rule safely. - [Coordinated incident response](https://developer.mappls.com/journeys/emergency-incident-response): 7 states, 8 transitions, 5 failure plans. Resolve an incident location, select a capable available responder, route and observe the unit, adapt to hazards, establish arrival, resolve with evidence, and review every decision. - [Recoverable navigation session](https://developer.mappls.com/journeys/navigation-session): 6 states, 6 transitions, 4 failure plans. Move from route intent through preview, guidance, reroute, arrival, and cleanup while surviving process, sensor, and network interruption. - [Governed spatial analysis](https://developer.mappls.com/journeys/governed-spatial-analysis): 7 states, 6 transitions, 4 failure plans. Ingest versioned data, validate and publish it, execute reproducible analysis, review lineage, and share a governed decision layer. - [Durable multi-stop itinerary](https://developer.mappls.com/journeys/durable-weekend-itinerary): 6 states, 9 transitions, 4 failure plans. Discover provider-backed places, preserve their Mappls Pins in a versioned itinerary, preview the exact ordered route, invalidate stale plans on edits, and retain visit or skip progress through completion. - [Consented address verification](https://developer.mappls.com/journeys/consented-address-verification): 9 states, 11 transitions, 4 failure plans. Normalize a declared service address, capture purpose-bound device evidence, apply an explainable versioned policy, require human review where evidence is weak, and retire precise data without erasing accountability. - [Governed spatial agent run](https://developer.mappls.com/journeys/governed-spatial-agent-run): 7 states, 6 transitions, 4 failure plans. Turn a natural-language spatial objective into an inspectable plan, obtain an exact least-privilege approval, execute allow-listed Mappls tools, and cite provider evidence without exposing credentials to the model. - [Offline automotive release](https://developer.mappls.com/journeys/offline-automotive-release): 7 states, 7 transitions, 4 failure plans. Manufacture, activate, install, operate, update, recover, and retire a navigation runtime and map-data release as one compatible system. - [Application-owned widget selection](https://developer.mappls.com/journeys/widget-selection-session): 7 states, 8 transitions, 5 failure plans. Launch a Mappls widget, recover through a useful fallback, validate a narrow candidate, commit it deliberately, invalidate stale selection, and submit one durable business record. - [iOS direction planning and navigation handoff](https://developer.mappls.com/journeys/ios-direction-planning-handoff): 8 states, 8 transitions, 4 failure plans. Own route intent and revisions in the host app, present MapplsDirectionUI for editing and calculation, validate the selected route callback, and hand off to navigation without confusing a UI request with a started or completed trip. - [iOS geofence draft and publication boundary](https://developer.mappls.com/journeys/ios-geofence-draft): 6 states, 6 transitions, 4 failure plans. Present the Mappls geofence editor, normalize circle or polygon output into a versioned application draft, validate geometry and policy, and stop at a review-ready artifact until a separately documented provider publication contract is selected. - [iOS feedback report and review](https://developer.mappls.com/journeys/ios-feedback-report-review): 9 states, 9 transitions, 4 failure plans. Open one feedback UI generation, normalize a bounded report candidate, commit an application submission, reconcile provider acknowledgement separately, review evidence, and close only with an attributable resolution. - [Consent-bound location capture evidence](https://developer.mappls.com/journeys/location-capture-evidence): 8 states, 9 transitions, 5 failure plans. Initialize and configure an entitled Location Capture SDK, acquire a bounded single or subscribed fix, preserve accuracy and timing as evidence, review weak results, and stop every native resource deterministically. - [Governed place contribution and publication](https://developer.mappls.com/journeys/place-contribution-publication): 7 states, 8 transitions, 5 failure plans. Embed the credential-free Add a Place surface, record what the user reports, reconcile independently, and call a place published only when durable provider-backed evidence exists. - [Entitled RealView remote inspection](https://developer.mappls.com/journeys/realview-remote-inspection): 10 states, 11 transitions, 6 failure plans. Qualify paid RealView entitlement, open one browser-visible-token viewer attempt, handle the documented no-imagery signal safely, and turn human observations into a reviewed business record without inventing panorama metadata. - [Governed SkyDNN inference review](https://developer.mappls.com/journeys/vision-inference-review): 8 states, 8 transitions, 6 failure plans. Lock an entitled model to an immutable asset identity, call the documented synchronous prediction boundary, validate geometry and confidence, require independent review, and redact derived detections on schedule. - [Workshop: Build Field-service task lifecycle](https://developer.mappls.com/journeys/field-service-task/workshop): 8 labs, 5 scaffolds, 5 hostile scenarios, 6-test capstone. - [Workshop: Build Connected fleet trip](https://developer.mappls.com/journeys/connected-fleet-trip/workshop): 8 labs, 5 scaffolds, 5 hostile scenarios, 7-test capstone. - [Workshop: Build Fleet geofence exception](https://developer.mappls.com/journeys/fleet-geofence-exception/workshop): 8 labs, 5 scaffolds, 5 hostile scenarios, 7-test capstone. - [Workshop: Build Coordinated incident response](https://developer.mappls.com/journeys/emergency-incident-response/workshop): 8 labs, 5 scaffolds, 5 hostile scenarios, 8-test capstone. - [Workshop: Build Recoverable navigation session](https://developer.mappls.com/journeys/navigation-session/workshop): 8 labs, 5 scaffolds, 5 hostile scenarios, 8-test capstone. - [Workshop: Build Governed spatial analysis](https://developer.mappls.com/journeys/governed-spatial-analysis/workshop): 8 labs, 5 scaffolds, 5 hostile scenarios, 8-test capstone. - [Workshop: Build Durable multi-stop itinerary](https://developer.mappls.com/journeys/durable-weekend-itinerary/workshop): 8 labs, 5 scaffolds, 5 hostile scenarios, 8-test capstone. - [Workshop: Build Consented address verification](https://developer.mappls.com/journeys/consented-address-verification/workshop): 8 labs, 5 scaffolds, 5 hostile scenarios, 8-test capstone. - [Workshop: Build Governed spatial agent run](https://developer.mappls.com/journeys/governed-spatial-agent-run/workshop): 8 labs, 5 scaffolds, 5 hostile scenarios, 15-test capstone. - [Workshop: Build Offline automotive release](https://developer.mappls.com/journeys/offline-automotive-release/workshop): 8 labs, 5 scaffolds, 5 hostile scenarios, 10-test capstone. - [Workshop: Build Application-owned widget selection](https://developer.mappls.com/journeys/widget-selection-session/workshop): 8 labs, 5 scaffolds, 5 hostile scenarios, 8-test capstone. - [Workshop: Build iOS direction planning and navigation handoff](https://developer.mappls.com/journeys/ios-direction-planning-handoff/workshop): 8 labs, 5 scaffolds, 5 hostile scenarios, 11-test capstone. - [Workshop: Build iOS geofence draft and publication boundary](https://developer.mappls.com/journeys/ios-geofence-draft/workshop): 8 labs, 5 scaffolds, 5 hostile scenarios, 11-test capstone. - [Workshop: Build iOS feedback report and review](https://developer.mappls.com/journeys/ios-feedback-report-review/workshop): 8 labs, 5 scaffolds, 5 hostile scenarios, 8-test capstone. - [Workshop: Build Consent-bound location capture evidence](https://developer.mappls.com/journeys/location-capture-evidence/workshop): 8 labs, 5 scaffolds, 5 hostile scenarios, 8-test capstone. - [Workshop: Build Governed place contribution and publication](https://developer.mappls.com/journeys/place-contribution-publication/workshop): 8 labs, 5 scaffolds, 5 hostile scenarios, 8-test capstone. - [Workshop: Build Entitled RealView remote inspection](https://developer.mappls.com/journeys/realview-remote-inspection/workshop): 8 labs, 5 scaffolds, 5 hostile scenarios, 10-test capstone. - [Workshop: Build Governed SkyDNN inference review](https://developer.mappls.com/journeys/vision-inference-review/workshop): 8 labs, 5 scaffolds, 5 hostile scenarios, 10-test capstone. ## Application event contracts - [Event catalog](https://developer.mappls.com/events): 138 journey-scoped application contracts cover 140 producer transitions across 18 stateful and hybrid journeys. Zero provider event payloads are claimed. - JSON Schema 2020-12 bundle: https://developer.mappls.com/events/schema.json - Machine-readable index and exact detail: https://developer.mappls.com/api/events and https://developer.mappls.com/api/events?slug={eventSlug} - AI clients can search kind=event, call mappls_get_event_contract, or read mappls://catalog/events. - [task.created · Field-service task lifecycle](https://developer.mappls.com/events/field-service-task-task-created): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [task.assigned · Field-service task lifecycle](https://developer.mappls.com/events/field-service-task-task-assigned): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [task.accepted · Field-service task lifecycle](https://developer.mappls.com/events/field-service-task-task-accepted): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [task.en_route · Field-service task lifecycle](https://developer.mappls.com/events/field-service-task-task-en-route): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [task.started · Field-service task lifecycle](https://developer.mappls.com/events/field-service-task-task-started): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [task.proof_submitted · Field-service task lifecycle](https://developer.mappls.com/events/field-service-task-task-proof-submitted): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [task.completed · Field-service task lifecycle](https://developer.mappls.com/events/field-service-task-task-completed): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [task.proof_rejected · Field-service task lifecycle](https://developer.mappls.com/events/field-service-task-task-proof-rejected): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [trip.created · Connected fleet trip](https://developer.mappls.com/events/connected-fleet-trip-trip-created): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [trip.ready · Connected fleet trip](https://developer.mappls.com/events/connected-fleet-trip-trip-ready): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [trip.started · Connected fleet trip](https://developer.mappls.com/events/connected-fleet-trip-trip-started): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [trip.exception_raised · Connected fleet trip](https://developer.mappls.com/events/connected-fleet-trip-trip-exception-raised): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [trip.exception_resolved · Connected fleet trip](https://developer.mappls.com/events/connected-fleet-trip-trip-exception-resolved): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [trip.close_requested · Connected fleet trip](https://developer.mappls.com/events/connected-fleet-trip-trip-close-requested): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [trip.closed · Connected fleet trip](https://developer.mappls.com/events/connected-fleet-trip-trip-closed): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [geofence.published · Fleet geofence exception](https://developer.mappls.com/events/fleet-geofence-exception-geofence-published): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [geofence.breached · Fleet geofence exception](https://developer.mappls.com/events/fleet-geofence-exception-geofence-breached): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [geofence_case.acknowledged · Fleet geofence exception](https://developer.mappls.com/events/fleet-geofence-exception-geofence-case-acknowledged): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [geofence_case.resolved · Fleet geofence exception](https://developer.mappls.com/events/fleet-geofence-exception-geofence-case-resolved): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [geofence.retired · Fleet geofence exception](https://developer.mappls.com/events/fleet-geofence-exception-geofence-retired): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [incident.reported · Coordinated incident response](https://developer.mappls.com/events/emergency-incident-response-incident-reported): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [incident.located · Coordinated incident response](https://developer.mappls.com/events/emergency-incident-response-incident-located): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [incident.dispatched · Coordinated incident response](https://developer.mappls.com/events/emergency-incident-response-incident-dispatched): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [dispatch.accepted · Coordinated incident response](https://developer.mappls.com/events/emergency-incident-response-dispatch-accepted): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [unit.position_recorded · Coordinated incident response](https://developer.mappls.com/events/emergency-incident-response-unit-position-recorded): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [incident.arrived · Coordinated incident response](https://developer.mappls.com/events/emergency-incident-response-incident-arrived): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [incident.resolved · Coordinated incident response](https://developer.mappls.com/events/emergency-incident-response-incident-resolved): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [incident.reviewed · Coordinated incident response](https://developer.mappls.com/events/emergency-incident-response-incident-reviewed): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [route.calculated · Recoverable navigation session](https://developer.mappls.com/events/navigation-session-route-calculated): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [navigation.started · Recoverable navigation session](https://developer.mappls.com/events/navigation-session-navigation-started): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [reroute.requested · Recoverable navigation session](https://developer.mappls.com/events/navigation-session-reroute-requested): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [route.updated · Recoverable navigation session](https://developer.mappls.com/events/navigation-session-route-updated): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [navigation.arrived · Recoverable navigation session](https://developer.mappls.com/events/navigation-session-navigation-arrived): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [navigation.ended · Recoverable navigation session](https://developer.mappls.com/events/navigation-session-navigation-ended): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [dataset.version_created · Governed spatial analysis](https://developer.mappls.com/events/governed-spatial-analysis-dataset-version-created): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [dataset.validation_started · Governed spatial analysis](https://developer.mappls.com/events/governed-spatial-analysis-dataset-validation-started): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [dataset.published · Governed spatial analysis](https://developer.mappls.com/events/governed-spatial-analysis-dataset-published): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [analysis.started · Governed spatial analysis](https://developer.mappls.com/events/governed-spatial-analysis-analysis-started): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [analysis.completed · Governed spatial analysis](https://developer.mappls.com/events/governed-spatial-analysis-analysis-completed): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [share.created · Governed spatial analysis](https://developer.mappls.com/events/governed-spatial-analysis-share-created): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [trip.created · Durable multi-stop itinerary](https://developer.mappls.com/events/durable-weekend-itinerary-trip-created): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [trip.sequence_changed · Durable multi-stop itinerary](https://developer.mappls.com/events/durable-weekend-itinerary-trip-sequence-changed): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [trip.route_previewed · Durable multi-stop itinerary](https://developer.mappls.com/events/durable-weekend-itinerary-trip-route-previewed): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [trip.started · Durable multi-stop itinerary](https://developer.mappls.com/events/durable-weekend-itinerary-trip-started): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [trip.paused · Durable multi-stop itinerary](https://developer.mappls.com/events/durable-weekend-itinerary-trip-paused): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [trip.resumed · Durable multi-stop itinerary](https://developer.mappls.com/events/durable-weekend-itinerary-trip-resumed): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [trip.stop_completed · Durable multi-stop itinerary](https://developer.mappls.com/events/durable-weekend-itinerary-trip-stop-completed): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [trip.completed · Durable multi-stop itinerary](https://developer.mappls.com/events/durable-weekend-itinerary-trip-completed): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [trip.cancelled · Durable multi-stop itinerary](https://developer.mappls.com/events/durable-weekend-itinerary-trip-cancelled): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [address_verification.entered · Consented address verification](https://developer.mappls.com/events/consented-address-verification-address-verification-entered): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [address_verification.normalized · Consented address verification](https://developer.mappls.com/events/consented-address-verification-address-verification-normalized): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [address_verification.capture_authorized · Consented address verification](https://developer.mappls.com/events/consented-address-verification-address-verification-capture-authorized): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [address_verification.consent_revoked · Consented address verification](https://developer.mappls.com/events/consented-address-verification-address-verification-consent-revoked): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [address_verification.evidence_captured · Consented address verification](https://developer.mappls.com/events/consented-address-verification-address-verification-evidence-captured): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [address_verification.compared · Consented address verification](https://developer.mappls.com/events/consented-address-verification-address-verification-compared): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [address_verification.verified · Consented address verification](https://developer.mappls.com/events/consented-address-verification-address-verification-verified): v1, 2 producer transitions, ordered by aggregateId, deduplicated by eventId. - [address_verification.rejected · Consented address verification](https://developer.mappls.com/events/consented-address-verification-address-verification-rejected): v1, 2 producer transitions, ordered by aggregateId, deduplicated by eventId. - [address_verification.review_required · Consented address verification](https://developer.mappls.com/events/consented-address-verification-address-verification-review-required): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [agent.question_received · Governed spatial agent run](https://developer.mappls.com/events/governed-spatial-agent-run-agent-question-received): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [agent.plan_created · Governed spatial agent run](https://developer.mappls.com/events/governed-spatial-agent-run-agent-plan-created): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [agent.plan_approved · Governed spatial agent run](https://developer.mappls.com/events/governed-spatial-agent-run-agent-plan-approved): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [agent.plan_rejected · Governed spatial agent run](https://developer.mappls.com/events/governed-spatial-agent-run-agent-plan-rejected): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [agent.execution_started · Governed spatial agent run](https://developer.mappls.com/events/governed-spatial-agent-run-agent-execution-started): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [agent.execution_completed · Governed spatial agent run](https://developer.mappls.com/events/governed-spatial-agent-run-agent-execution-completed): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [device.registered · Offline automotive release](https://developer.mappls.com/events/offline-automotive-release-device-registered): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [license.activated · Offline automotive release](https://developer.mappls.com/events/offline-automotive-release-license-activated): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [release.installed · Offline automotive release](https://developer.mappls.com/events/offline-automotive-release-release-installed): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [release.qualified · Offline automotive release](https://developer.mappls.com/events/offline-automotive-release-release-qualified): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [release.update_started · Offline automotive release](https://developer.mappls.com/events/offline-automotive-release-release-update-started): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [release.rollback_started · Offline automotive release](https://developer.mappls.com/events/offline-automotive-release-release-rollback-started): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [device.retired · Offline automotive release](https://developer.mappls.com/events/offline-automotive-release-device-retired): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [host.session_created · Application-owned widget selection](https://developer.mappls.com/events/widget-selection-session-host-session-created): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [widget.opened · Application-owned widget selection](https://developer.mappls.com/events/widget-selection-session-widget-opened): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [widget.fallback_activated · Application-owned widget selection](https://developer.mappls.com/events/widget-selection-session-widget-fallback-activated): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [location.candidate_received · Application-owned widget selection](https://developer.mappls.com/events/widget-selection-session-location-candidate-received): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [location.selected · Application-owned widget selection](https://developer.mappls.com/events/widget-selection-session-location-selected): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [host.text_edited · Application-owned widget selection](https://developer.mappls.com/events/widget-selection-session-host-text-edited): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [host.submitted · Application-owned widget selection](https://developer.mappls.com/events/widget-selection-session-host-submitted): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [host.cancelled · Application-owned widget selection](https://developer.mappls.com/events/widget-selection-session-host-cancelled): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [route_plan.created · iOS direction planning and navigation handoff](https://developer.mappls.com/events/ios-direction-planning-handoff-route-plan-created): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [route_plan.editor_opened · iOS direction planning and navigation handoff](https://developer.mappls.com/events/ios-direction-planning-handoff-route-plan-editor-opened): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [route_plan.calculation_requested · iOS direction planning and navigation handoff](https://developer.mappls.com/events/ios-direction-planning-handoff-route-plan-calculation-requested): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [route_plan.candidates_received · iOS direction planning and navigation handoff](https://developer.mappls.com/events/ios-direction-planning-handoff-route-plan-candidates-received): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [route_plan.route_selected · iOS direction planning and navigation handoff](https://developer.mappls.com/events/ios-direction-planning-handoff-route-plan-route-selected): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [route_plan.navigation_requested · iOS direction planning and navigation handoff](https://developer.mappls.com/events/ios-direction-planning-handoff-route-plan-navigation-requested): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [route_plan.navigation_handed_off · iOS direction planning and navigation handoff](https://developer.mappls.com/events/ios-direction-planning-handoff-route-plan-navigation-handed-off): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [route_plan.cancelled · iOS direction planning and navigation handoff](https://developer.mappls.com/events/ios-direction-planning-handoff-route-plan-cancelled): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [geofence_draft.created · iOS geofence draft and publication boundary](https://developer.mappls.com/events/ios-geofence-draft-geofence-draft-created): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [geofence_draft.editor_opened · iOS geofence draft and publication boundary](https://developer.mappls.com/events/ios-geofence-draft-geofence-draft-editor-opened): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [geofence_draft.geometry_received · iOS geofence draft and publication boundary](https://developer.mappls.com/events/ios-geofence-draft-geofence-draft-geometry-received): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [geofence_draft.review_requested · iOS geofence draft and publication boundary](https://developer.mappls.com/events/ios-geofence-draft-geofence-draft-review-requested): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [geofence_draft.approved · iOS geofence draft and publication boundary](https://developer.mappls.com/events/ios-geofence-draft-geofence-draft-approved): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [geofence_draft.cancelled · iOS geofence draft and publication boundary](https://developer.mappls.com/events/ios-geofence-draft-geofence-draft-cancelled): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [feedback_report.created · iOS feedback report and review](https://developer.mappls.com/events/ios-feedback-report-review-feedback-report-created): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [feedback_report.ui_opened · iOS feedback report and review](https://developer.mappls.com/events/ios-feedback-report-review-feedback-report-ui-opened): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [feedback_report.candidate_received · iOS feedback report and review](https://developer.mappls.com/events/ios-feedback-report-review-feedback-report-candidate-received): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [feedback_report.submitted · iOS feedback report and review](https://developer.mappls.com/events/ios-feedback-report-review-feedback-report-submitted): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [feedback_report.provider_requested · iOS feedback report and review](https://developer.mappls.com/events/ios-feedback-report-review-feedback-report-provider-requested): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [feedback_report.review_queued · iOS feedback report and review](https://developer.mappls.com/events/ios-feedback-report-review-feedback-report-review-queued): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [feedback_report.resolved · iOS feedback report and review](https://developer.mappls.com/events/ios-feedback-report-review-feedback-report-resolved): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [feedback_report.rejected · iOS feedback report and review](https://developer.mappls.com/events/ios-feedback-report-review-feedback-report-rejected): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [feedback_report.cancelled · iOS feedback report and review](https://developer.mappls.com/events/ios-feedback-report-review-feedback-report-cancelled): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [location_capture.attempt_created · Consent-bound location capture evidence](https://developer.mappls.com/events/location-capture-evidence-location-capture-attempt-created): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [location_capture.permission_requested · Consent-bound location capture evidence](https://developer.mappls.com/events/location-capture-evidence-location-capture-permission-requested): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [location_capture.sdk_ready · Consent-bound location capture evidence](https://developer.mappls.com/events/location-capture-evidence-location-capture-sdk-ready): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [location_capture.acquisition_started · Consent-bound location capture evidence](https://developer.mappls.com/events/location-capture-evidence-location-capture-acquisition-started): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [location_capture.candidate_received · Consent-bound location capture evidence](https://developer.mappls.com/events/location-capture-evidence-location-capture-candidate-received): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [location_capture.review_queued · Consent-bound location capture evidence](https://developer.mappls.com/events/location-capture-evidence-location-capture-review-queued): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [location_capture.evidence_accepted · Consent-bound location capture evidence](https://developer.mappls.com/events/location-capture-evidence-location-capture-evidence-accepted): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [location_capture.weak_evidence_approved · Consent-bound location capture evidence](https://developer.mappls.com/events/location-capture-evidence-location-capture-weak-evidence-approved): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [location_capture.attempt_cancelled · Consent-bound location capture evidence](https://developer.mappls.com/events/location-capture-evidence-location-capture-attempt-cancelled): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [place_contribution.created · Governed place contribution and publication](https://developer.mappls.com/events/place-contribution-publication-place-contribution-created): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [place_contribution.widget_opened · Governed place contribution and publication](https://developer.mappls.com/events/place-contribution-publication-place-contribution-widget-opened): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [place_contribution.submission_reported · Governed place contribution and publication](https://developer.mappls.com/events/place-contribution-publication-place-contribution-submission-reported): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [place_contribution.reconciliation_queued · Governed place contribution and publication](https://developer.mappls.com/events/place-contribution-publication-place-contribution-reconciliation-queued): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [place_contribution.published · Governed place contribution and publication](https://developer.mappls.com/events/place-contribution-publication-place-contribution-published): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [place_contribution.rejected · Governed place contribution and publication](https://developer.mappls.com/events/place-contribution-publication-place-contribution-rejected): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [place_contribution.retried · Governed place contribution and publication](https://developer.mappls.com/events/place-contribution-publication-place-contribution-retried): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [place_contribution.withdrawn · Governed place contribution and publication](https://developer.mappls.com/events/place-contribution-publication-place-contribution-withdrawn): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [realview_inspection.created · Entitled RealView remote inspection](https://developer.mappls.com/events/realview-remote-inspection-realview-inspection-created): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [realview_inspection.entitlement_requested · Entitled RealView remote inspection](https://developer.mappls.com/events/realview-remote-inspection-realview-inspection-entitlement-requested): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [realview_inspection.entitlement_confirmed · Entitled RealView remote inspection](https://developer.mappls.com/events/realview-remote-inspection-realview-inspection-entitlement-confirmed): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [realview_inspection.viewer_opened · Entitled RealView remote inspection](https://developer.mappls.com/events/realview-remote-inspection-realview-inspection-viewer-opened): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [realview_inspection.coverage_unavailable · Entitled RealView remote inspection](https://developer.mappls.com/events/realview-remote-inspection-realview-inspection-coverage-unavailable): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [realview_inspection.observation_recorded · Entitled RealView remote inspection](https://developer.mappls.com/events/realview-remote-inspection-realview-inspection-observation-recorded): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [realview_inspection.review_requested · Entitled RealView remote inspection](https://developer.mappls.com/events/realview-remote-inspection-realview-inspection-review-requested): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [realview_inspection.accepted · Entitled RealView remote inspection](https://developer.mappls.com/events/realview-remote-inspection-realview-inspection-accepted): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [realview_inspection.rework_requested · Entitled RealView remote inspection](https://developer.mappls.com/events/realview-remote-inspection-realview-inspection-rework-requested): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [realview_inspection.entitlement_expired · Entitled RealView remote inspection](https://developer.mappls.com/events/realview-remote-inspection-realview-inspection-entitlement-expired): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [realview_inspection.cancelled · Entitled RealView remote inspection](https://developer.mappls.com/events/realview-remote-inspection-realview-inspection-cancelled): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [vision.case_registered · Governed SkyDNN inference review](https://developer.mappls.com/events/vision-inference-review-vision-case-registered): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [vision.model_locked · Governed SkyDNN inference review](https://developer.mappls.com/events/vision-inference-review-vision-model-locked): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [vision.inference_requested · Governed SkyDNN inference review](https://developer.mappls.com/events/vision-inference-review-vision-inference-requested): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [vision.inference_recorded · Governed SkyDNN inference review](https://developer.mappls.com/events/vision-inference-review-vision-inference-recorded): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [vision.review_requested · Governed SkyDNN inference review](https://developer.mappls.com/events/vision-inference-review-vision-review-requested): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [vision.accepted · Governed SkyDNN inference review](https://developer.mappls.com/events/vision-inference-review-vision-accepted): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [vision.rejected · Governed SkyDNN inference review](https://developer.mappls.com/events/vision-inference-review-vision-rejected): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. - [vision.redacted · Governed SkyDNN inference review](https://developer.mappls.com/events/vision-inference-review-vision-redacted): v1, 1 producer transition, ordered by aggregateId, deduplicated by eventId. ## Endpoint contracts - [Endpoint API Reference](https://developer.mappls.com/api-reference): 162 normalized operations from 67 OpenAPI source files with 810 language samples. - Machine-readable contracts: https://developer.mappls.com/api/contracts - OpenAPI 3.1: https://developer.mappls.com/openapi.json - Credential-empty Postman collection: https://developer.mappls.com/postman/collection.json - Credential-empty Postman environment: https://developer.mappls.com/postman/environment.json - [Credential-free API sandbox](https://developer.mappls.com/sandbox): run all 162 normalized contracts across deterministic success, empty, validation, authentication, rate-limit, and unavailable scenarios without a provider call. - Sandbox execution: POST https://developer.mappls.com/api/sandbox with operationSlug, scenario, and bounded fixture inputs. A passing fixture is never entitlement or production evidence. ## API, SDK, widget, and distribution reference - [Reference Library](https://developer.mappls.com/reference): 82 source-grounded integration guides with 447 sanitized code fragments. - Machine-readable reference: https://developer.mappls.com/api/reference ## Tutorials - [Put your first Mappls map on the web](https://developer.mappls.com/tutorials/first-web-map): Beginner, 10 min. A responsive map with a styled point of interest. - [Build address autocomplete that users trust](https://developer.mappls.com/tutorials/address-autocomplete): Beginner, 20 min. An accessible, resilient delivery-address field. - [Add Mappls to an Android app](https://developer.mappls.com/tutorials/android-map): Beginner, 25 min. A native Kotlin map screen with lifecycle-safe setup. - [Add Mappls to an iOS app with Swift Package Manager](https://developer.mappls.com/tutorials/ios-map): Beginner, 25 min. A native Swift map screen. - [Build a route preview with alternatives](https://developer.mappls.com/tutorials/route-preview): Intermediate, 35 min. A production-pattern route comparison view. - [Create a nearby discovery experience](https://developer.mappls.com/tutorials/nearby-discovery): Intermediate, 40 min. A map-and-list place explorer. - [Track a delivery with a trustworthy ETA](https://developer.mappls.com/tutorials/delivery-eta): Advanced, 90 min. A stateful live-delivery journey with recovery and replay. - [Automate a complete Workmate task lifecycle](https://developer.mappls.com/tutorials/workmate-task-lifecycle): Advanced, 2 hr. An idempotent field-service integration. - [Build fleet geofence operations](https://developer.mappls.com/tutorials/fleet-geofences): Advanced, 75 min. An operations-ready geofence monitor. - [Build a reproducible site-selection model](https://developer.mappls.com/tutorials/gis-site-selection): Advanced, 2 hr. A governed retail expansion analysis. - [Design an interruption-safe offline map update](https://developer.mappls.com/tutorials/offline-package-update): Advanced, 90 min. A resilient embedded update state machine. - [Give an AI agent grounded Mappls tools](https://developer.mappls.com/tutorials/mappls-mcp-agent): Intermediate, 30 min. An agent that can reason about real places without inventing APIs. - [Provision and validate a remote MCP client](https://developer.mappls.com/tutorials/mcp-client-identity): Advanced, 55 min. A replay-safe client identity journey with durable registration, request checks, revocation, and audit evidence. - [Consume Mappls events exactly once in effect](https://developer.mappls.com/tutorials/webhook-reliability): Advanced, 55 min. A production webhook ingestion pipeline. - [Call Mappls safely from a trusted server](https://developer.mappls.com/tutorials/oauth-server-integration): Intermediate, 35 min. A credential-safe live server boundary with typed errors, timeout, retry, and provider provenance. - [Build a cross-platform React Native map](https://developer.mappls.com/tutorials/react-native-map): Intermediate, 45 min. One map experience across Android and iOS. - [Build a Flutter map and place picker](https://developer.mappls.com/tutorials/flutter-map): Intermediate, 45 min. A reusable cross-platform location field. - [Create a zero-SDK location campaign](https://developer.mappls.com/tutorials/deep-link-campaign): Beginner, 15 min. A campaign that opens a useful Mappls experience everywhere. - [Build a server-side geocoding boundary](https://developer.mappls.com/tutorials/rest-geocode-service): Beginner, 25 min. A credential-safe geocoding service with typed errors and provenance. - [Turn a device fix into a trustworthy check-in](https://developer.mappls.com/tutorials/reverse-geocode-check-in): Beginner, 30 min. A privacy-aware check-in that retains both raw evidence and human-readable context. - [Generate static maps for receipts and notifications](https://developer.mappls.com/tutorials/static-map-receipt): Beginner, 20 min. A deterministic map image pipeline for non-interactive surfaces. - [Embed a place picker widget](https://developer.mappls.com/tutorials/web-widget-place-picker): Beginner, 25 min. An accessible embedded place picker with explicit host-page ownership. - [Hand off to navigation with a resilient deep link](https://developer.mappls.com/tutorials/navigation-deep-link): Beginner, 20 min. A tested app-to-navigation hand-off across installed and uninstalled states. - [Ship a Mappls map in Cordova and Ionic](https://developer.mappls.com/tutorials/cordova-map): Intermediate, 50 min. A hybrid map screen with lifecycle-safe native bridge handling. - [Integrate Mappls into a Xamarin application](https://developer.mappls.com/tutorials/xamarin-map): Intermediate, 55 min. A shared-code location feature backed by correctly owned native map views. - [Rank responders with a distance matrix](https://developer.mappls.com/tutorials/distance-matrix-dispatch): Intermediate, 45 min. An explainable ETA-based dispatch shortlist rather than a straight-line guess. - [Build a traffic-aware commute assistant](https://developer.mappls.com/tutorials/traffic-aware-commute): Intermediate, 50 min. A route comparison experience that communicates freshness and uncertainty. - [Render a governed GeoJSON operations layer](https://developer.mappls.com/tutorials/geojson-operations-layer): Intermediate, 55 min. An accessible map layer whose visual state is reproducible from source data. - [Operate a Mappls client on embedded Linux](https://developer.mappls.com/tutorials/linux-map-client): Advanced, 2 hr. An embedded map runtime with atomic data activation and rollback evidence. - [Reconcile a complete InTouch trip lifecycle](https://developer.mappls.com/tutorials/intouch-trip-lifecycle): Advanced, 2 hr. A restart-safe connected trip with replay, late evidence, and closure reconciliation. - [Build proof review and rework for field jobs](https://developer.mappls.com/tutorials/workmate-proof-review): Advanced, 90 min. An auditable proof workflow that cannot silently overwrite rejected evidence. - [Qualify a Cordova location release](https://developer.mappls.com/tutorials/cordova-release-hardening): Advanced, 80 min. A versioned hybrid release with reproducible native builds, safe teardown, and rollback. - [Operate deep links across every hand-off](https://developer.mappls.com/tutorials/deep-link-attribution-resilience): Advanced, 70 min. A measurable zero-SDK journey that never confuses a click with arrival. - [Production-harden a Flutter location feature](https://developer.mappls.com/tutorials/flutter-production-lifecycle): Advanced, 90 min. A cross-platform feature with stable identity, bounded bridge traffic, and deterministic disposal. - [Qualify an iOS Mappls release](https://developer.mappls.com/tutorials/ios-sdk-production-readiness): Advanced, 2 hr. A clean-device iOS qualification record spanning SDK, widget, tracking, and distribution boundaries. - [Build restart-safe iOS direction and geofence handoffs](https://developer.mappls.com/tutorials/ios-direction-geofence-handoffs): Advanced, 95 min. Two tested, durable iOS handoff journeys with explicit provider and application evidence boundaries. - [Qualify React Native native parity](https://developer.mappls.com/tutorials/react-native-native-parity): Advanced, 100 min. One JavaScript contract backed by independently qualified Android and iOS behavior. - [Operate widgets as untrusted lifecycle surfaces](https://developer.mappls.com/tutorials/widget-host-production): Advanced, 85 min. A restart-safe host journey with exact-origin validation and a complete non-widget fallback. - [Harden and migrate a Xamarin location feature](https://developer.mappls.com/tutorials/xamarin-maintenance-migration): Advanced, 2 hr. A supportable existing integration with explicit compatibility, teardown, and migration evidence. ## Downloadable reference applications - [Store Locator](https://developer.mappls.com/samples/store-locator): Discover eligible branches, compare distance and ETA, preserve Mappls Pin identity, and hand off safely to navigation. Download: https://developer.mappls.com/downloads/store-locator.zip; checksum: https://developer.mappls.com/downloads/store-locator.zip.sha256 - [Delivery Control Tower](https://developer.mappls.com/samples/delivery-control-tower): Track live orders, explain ETA risk, replay a trip, and handle delivery exceptions. Download: https://developer.mappls.com/downloads/delivery-control-tower.zip; checksum: https://developer.mappls.com/downloads/delivery-control-tower.zip.sha256 - [Grid Restoration Desk](https://developer.mappls.com/samples/grid-restoration-desk): Correlate an outage, govern independent switching approval, dispatch an assigned crew, preserve rework, and reconcile restoration from telemetry and customer-impact evidence. Download: https://developer.mappls.com/downloads/grid-restoration-desk.zip; checksum: https://developer.mappls.com/downloads/grid-restoration-desk.zip.sha256 - [Care Transfer Desk](https://developer.mappls.com/samples/care-transfer-desk): Confirm the correct receiving entrance, assign eligible transport, preserve courier custody, review condition exceptions, and reconcile receiver acceptance without retaining patient or clinical data. Download: https://developer.mappls.com/downloads/care-transfer-desk.zip; checksum: https://developer.mappls.com/downloads/care-transfer-desk.zip.sha256 - [Airside Turnaround Desk](https://developer.mappls.com/samples/airside-turnaround-desk): Coordinate a revision-safe aircraft turnaround, pause for airside exceptions, preserve four service milestones, and require independent airline, airport, and safety readiness decisions. Download: https://developer.mappls.com/downloads/airside-turnaround-desk.zip; checksum: https://developer.mappls.com/downloads/airside-turnaround-desk.zip.sha256 - [Field Service Console](https://developer.mappls.com/samples/field-service): Create, assign, execute, and audit a technician visit with proof. Download: https://developer.mappls.com/downloads/field-service.zip; checksum: https://developer.mappls.com/downloads/field-service.zip.sha256 - [Fleet Geofence Monitor](https://developer.mappls.com/samples/fleet-geofence): Design zones and run an actionable live enter/exit event queue. Download: https://developer.mappls.com/downloads/fleet-geofence.zip; checksum: https://developer.mappls.com/downloads/fleet-geofence.zip.sha256 - [Retail Site Lab](https://developer.mappls.com/samples/retail-site-lab): Compare candidate sites through immutable dataset versions, reproducible scoring, lineage, and governed sharing. Download: https://developer.mappls.com/downloads/retail-site-lab.zip; checksum: https://developer.mappls.com/downloads/retail-site-lab.zip.sha256 - [Weekend Trip Planner](https://developer.mappls.com/samples/trip-planner): Preserve Mappls place identity through a durable ordered itinerary, route revisions, progress, and completion. Download: https://developer.mappls.com/downloads/trip-planner.zip; checksum: https://developer.mappls.com/downloads/trip-planner.zip.sha256 - [Incident Dispatch](https://developer.mappls.com/samples/incident-dispatch): Resolve an incident, choose a capable available responder, route, track evidence, enforce arrival, and review. Download: https://developer.mappls.com/downloads/incident-dispatch.zip; checksum: https://developer.mappls.com/downloads/incident-dispatch.zip.sha256 - [Address Verifier](https://developer.mappls.com/samples/address-verifier): Normalize an address, govern consented device evidence, apply versioned policy, and retain an attributable decision. Download: https://developer.mappls.com/downloads/address-verifier.zip; checksum: https://developer.mappls.com/downloads/address-verifier.zip.sha256 - [Map Story](https://developer.mappls.com/samples/map-story): Compile validated GeoJSON into an accessible, deterministic, source-disclosed narrative map. Download: https://developer.mappls.com/downloads/map-story.zip; checksum: https://developer.mappls.com/downloads/map-story.zip.sha256 - [Spatial Operations Agent](https://developer.mappls.com/samples/spatial-agent): Research, plan, approve, execute, and cite grounded Mappls MCP operations through fixture, local stdio, or authenticated remote transports. Download: https://developer.mappls.com/downloads/spatial-agent.zip; checksum: https://developer.mappls.com/downloads/spatial-agent.zip.sha256 - [MCP Identity Interoperability Lab](https://developer.mappls.com/samples/mcp-identity-lab): Provision, discover, validate, and revoke a remote MCP client through a signed, replay-safe control-plane adapter and a non-issuing OAuth interoperability sandbox. Download: https://developer.mappls.com/downloads/mcp-identity-lab.zip; checksum: https://developer.mappls.com/downloads/mcp-identity-lab.zip.sha256 - [Vision Evidence Desk](https://developer.mappls.com/samples/vision-evidence-desk): Lock a SkyDNN model to an immutable asset identity, record a synchronous fixture inference, validate geometry and confidence, review independently, and redact derived detections on schedule. Download: https://developer.mappls.com/downloads/vision-evidence-desk.zip; checksum: https://developer.mappls.com/downloads/vision-evidence-desk.zip.sha256 - [Widget Journey Host](https://developer.mappls.com/samples/widget-journey-host): Own a complete place-selection journey around a Mappls widget: launch, recover through fallback, normalize a candidate, commit deliberately, invalidate stale selection, and submit exactly once in effect. Download: https://developer.mappls.com/downloads/widget-journey-host.zip; checksum: https://developer.mappls.com/downloads/widget-journey-host.zip.sha256 - [Deep-link & Native UI Journey Host](https://developer.mappls.com/samples/deep-link-journey-host): Run complete direction-planning and geofence-draft lifecycles around Mappls iOS UI adapters, with an exact documented navigation-link fallback and no invented callback or provider publication claim. Download: https://developer.mappls.com/downloads/deep-link-journey-host.zip; checksum: https://developer.mappls.com/downloads/deep-link-journey-host.zip.sha256 - [Place Contribution Desk](https://developer.mappls.com/samples/place-contribution-desk): Embed the public Add a Place form, preserve contributor-reported submission as testimony, reconcile independently, and close only with attributable publication evidence. Download: https://developer.mappls.com/downloads/place-contribution-desk.zip; checksum: https://developer.mappls.com/downloads/place-contribution-desk.zip.sha256 - [RealView Inspection Desk](https://developer.mappls.com/samples/realview-inspection-desk): Qualify paid RealView access, open bounded viewer attempts, validate the documented no-imagery signal, record human observations, and require separate review without persisting tokens or imagery. Download: https://developer.mappls.com/downloads/realview-inspection-desk.zip; checksum: https://developer.mappls.com/downloads/realview-inspection-desk.zip.sha256 - [Offline Release Control](https://developer.mappls.com/samples/offline-release-control): Operate an entitled offline or automotive runtime as one compatible, dual-slot release across manufacture, activation, installation, qualification, update, interruption, rollback, and retirement. Download: https://developer.mappls.com/downloads/offline-release-control.zip; checksum: https://developer.mappls.com/downloads/offline-release-control.zip.sha256 ## AI and MCP - [AI-native Mappls](https://developer.mappls.com/ai): 42 typed tools, 38 resources, and 2 prompts. - Machine-readable AI discovery: https://developer.mappls.com/.well-known/mappls-ai.json — transport profiles, interoperability routes, corpus coverage, state rules, runnable learning, and trust boundaries. - Start with mappls_plan_agent_integration, mappls_plan_solution, or mappls_find_documentation; build exact no-credential handoffs or placeholder-only embeds, then retrieve evidence using the matching mappls_get_* tool. - Use mappls_solution_blueprint for a research-first architecture plan; it must not invent endpoints, entitlements, SDK behavior, or write capabilities. ## Source provenance - [Source Atlas](https://developer.mappls.com/sources): 82 public repositories, 81 local repositories, 15437 local documents, and 4041 sanitized endpoint references indexed. - Machine-readable source evidence: https://developer.mappls.com/api/sources - [Public ↔ local repository ledger](https://developer.mappls.com/sources/reconciliation): 22 exact, 5 normalized, and 55 unmatched public identities, plus 58 local-only repositories. Candidates are identity evidence, not compatibility proof. - Machine-readable correspondence: https://developer.mappls.com/api/reconciliation or mappls://catalog/repositories ## Trust and support - Source-backed trust boundaries: https://developer.mappls.com/trust - Public support guidance and official fallback: https://developer.mappls.com/support - Authenticated developer support: https://developer.mappls.com/console/support and company triage at https://developer.mappls.com/admin/support, with no-store APIs at /api/support-requests and /api/admin/support-requests. - Support requests are application-scoped, bounded communications. Submit only category, impact, subject, safe summary, and an optional request ID—never credentials, URLs, customer payloads, precise locations, or provider internals. - The lifecycle is submitted → acknowledged → resolved, or submitted → cancelled, with optimistic versions and immutable events. A ticket never grants entitlement, declares an incident or SLA, proves provider behavior, creates a support case, or authorizes investigation. Privileged diagnostics require a separate purpose-bound case, step-up authentication, exact scope, and an expiring delegated session. - Privileged console access: one-use action-class step-up; canonical request, operation, target, and version binding for sensitive developer/application/identity, entitlement, incident, release, handoff, and deployment changes; dual-control standard delegation; incident-bound 15-minute emergency delegation; independent post-review; immediate revocation; and an attributable redacted support view. It never changes the base role, becomes a customer session, exposes delegated writes, or returns credentials/secrets: https://developer.mappls.com/admin/access ## Machine-readable catalog - https://developer.mappls.com/api/catalog ## Important - Never expose Mappls server credentials in client code or model context. - Preserve Mappls Pins and returned place identifiers across a journey. - Treat InTouch, Workmate, mGIS/Insight, navigation, and offline runtimes as stateful integrations. - Repository classifications and legacy endpoint evidence should be validated against current product contracts before production use.