Juniper Mist AI Sites Maps API

A Site Map is a visual representation of the layout and structure of a location, such as a building or campus. It includes accurate information about the placement, positions, heights, and orientations of Juniper Mist Access Points (APs) and other devices in the deployment. The floorplan is an essential component of location services as it enables the location engine to generate accurate location estimates for client devices, assets, and users at the site.

Operations 13

GET /api/v1/sites/{site_id}/maps listSiteMaps #
POST /api/v1/sites/{site_id}/maps createSiteMap #
POST /api/v1/sites/{site_id}/maps/auto_geofences startSiteMapsAutoGeofence #
POST /api/v1/sites/{site_id}/maps/import importSiteMaps #
DELETE /api/v1/sites/{site_id}/maps/{map_id} deleteSiteMap #
GET /api/v1/sites/{site_id}/maps/{map_id} getSiteMap #
PUT /api/v1/sites/{site_id}/maps/{map_id} updateSiteMap #
POST /api/v1/sites/{site_id}/maps/{map_id}/auto_geofences startSiteMapAutoGeofence #
DELETE /api/v1/sites/{site_id}/maps/{map_id}/image deleteSiteMapImage #
POST /api/v1/sites/{site_id}/maps/{map_id}/image addSiteMapImage #
POST /api/v1/sites/{site_id}/maps/{map_id}/replace replaceSiteMapImage #
POST /api/v1/sites/{site_id}/maps/{map_id}/set_map bulkAssignSiteApsToMap #
POST /api/v1/sites/{site_id}/maps/{map_id}/wayfinding/import importSiteWayfindings #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/mist-ai-sites-maps-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

mist-ai-sites-maps-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    email: tmunzer@juniper.net
    name: Thomas Munzer
  description: '> Version: **2604.1.1**

    >

    > Date: **May 13, 2026**

    <div class="notification"> NOTE:<br>Some important API changes will be introduced. Please make sure to read the <a href="https://www.juniper.net/documentation/us/en/software/mist/api/http/guides/important-api-changes">announcements</a> </div>


    ---

    ## Additional Documentation

    * [Mist Automation Guide](https://www.juniper.net/documentation/us/en/software/mist/automation-integration/index.html)

    * [Mist Location SDK](https://www.juniper.net/documentation/us/en/software/mist/location-services/topics/concept/mist-how-get-mist-sdk.html)

    * [Mist Product Updates](https://www.juniper.net/documentation/us/en/software/mist/product-updates/)


    ## Helpful Resources

    * [API Sandbox and Exercises](https://api-class.mist.com/)

    * [Postman Collection, Runners and Webhook Samples](https://www.postman.com/juniper-mist/workspace/mist-systems-s-public-workspace)

    * [Python Script Examples](https://github.com/tmunzer/mist_library)

    * [API Demo Apps](https://apps.mist-lab.fr/)

    * [Juniper Blog](https://blogs.juniper.net/)


    ## Mist Web Browser Extension:

    * Google Chrome, Microsoft Edge and other Chromium-based browser: [Chrome Web Store](https://chromewebstore.google.com/detail/mist-extension/ejhpdcljeamillfhdihkkmoakanpbplh)

    * Firefox: [Firefox Add-ons](https://addons.mozilla.org/en-US/firefox/addon/mist-extension/)


    ---'
  license:
    name: MIT
    url: https://raw.githubusercontent.com/tmunzer/Mist-OAS3.0/main/LICENSE
  title: Mist Sites Maps API
  version: 2604.1.1
  x-logo:
    altText: Juniper-MistAI
    backgroundColor: '#FFFFFF'
    url: https://www.mist.com/wp-content/uploads/logo.png
servers:
- description: Mist Global 01
  url: https://api.mist.com
- description: Mist Global 02
  url: https://api.gc1.mist.com
- description: Mist Global 03
  url: https://api.ac2.mist.com
- description: Mist Global 04
  url: https://api.gc2.mist.com
- description: Mist Global 05
  url: https://api.gc4.mist.com
- description: Mist EMEA 01
  url: https://api.eu.mist.com
- description: Mist EMEA 02
  url: https://api.gc3.mist.com
- description: Mist EMEA 03
  url: https://api.ac6.mist.com
- description: Mist EMEA 04
  url: https://api.gc6.mist.com
- description: Mist APAC 01
  url: https://api.ac5.mist.com
- description: Mist APAC 02
  url: https://api.gc5.mist.com
- description: Mist APAC 03
  url: https://api.gc7.mist.com
security:
- apiToken: []
- basicAuth: []
- basicAuth: []
  csrfToken: []
tags:
- description: 'A Site Map is a visual representation of the layout and structure of a location, such as a building or campus.


    It includes accurate information about the placement, positions, heights, and orientations of Juniper Mist Access Points (APs) and other devices in the deployment.


    The floorplan is an essential component of location services as it enables the location engine to generate accurate location estimates for client devices, assets, and users at the site.'
  name: Sites Maps
paths:
  /api/v1/sites/{site_id}/maps:
    parameters:
    - $ref: '#/components/parameters/site_id'
    get:
      description: Get List of Site Maps
      operationId: listSiteMaps
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/page'
      responses:
        '200':
          $ref: '#/components/responses/MapsArray'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: listSiteMaps
      tags:
      - Sites Maps
    post:
      description: Create Site Map
      operationId: createSiteMap
      requestBody:
        content:
          application/json:
            examples:
              Example:
                value:
                  group_idx: 0
                  group_name: string
                  height: 0
                  height_m: 0
                  latlng_br:
                    lat: string
                    lng: string
                  latlng_tl:
                    lat: string
                    lng: string
                  locked: true
                  name: string
                  occupancy_limit: 0
                  orientation: 0
                  origin_x: 0
                  origin_y: 0
                  ppm: 0
                  sitesurvey_path:
                  - coordinate: string
                    name: string
                    nodes:
                    - edges:
                        N2: string
                      name: string
                      position:
                        x: 0
                        y: 0
                  type: image
                  view: roadmap
                  wall_path:
                    coordinate: string
                    nodes:
                    - edges:
                        N2: string
                      name: string
                      position:
                        x: 0
                        y: 0
                  wayfinding:
                    micello:
                      account_key: string
                      default_level_id: 0
                    snap_to_path: true
                  wayfinding_path:
                    coordinate: string
                    nodes:
                    - edges:
                        N2: string
                      name: string
                      position:
                        x: 0
                        y: 0
                  width: 0
                  width_m: 0
            schema:
              $ref: '#/components/schemas/map'
        description: Request Body
      responses:
        '200':
          $ref: '#/components/responses/Map'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: createSiteMap
      tags:
      - Sites Maps
  /api/v1/sites/{site_id}/maps/auto_geofences:
    parameters:
    - $ref: '#/components/parameters/site_id'
    post:
      description: The auto geofence service is a map parsing service that uses map image data to identify the exterior of buildings in the map image also known as "geofences". This API processes all maps for a given SiteId. The maps must have an image to parse for the auto geofence service. Repeated POST requests to this endpoint while the auto geofence service is processing the map will be rejected.
      operationId: startSiteMapsAutoGeofence
      responses:
        '200':
          $ref: '#/components/responses/OK'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: startSiteMapsAutoGeofence
      tags:
      - Sites Maps
  /api/v1/sites/{site_id}/maps/import:
    parameters:
    - $ref: '#/components/parameters/site_id'
    post:
      description: 'Import data from files is a multipart POST which has an file, an optional json, and an optional csv, to create floorplan, assign matching inventory to specific site, place ap if name or mac matches.


        # Note

        This endpoint (at the site level), the AP must be already assigned to the site to be placed on the floorplan. If you want to place APs from the Org inventory, it is required to use the endpoint at the Org level [importOrgMaps](#operation/importOrgMaps)


        # CSV File Format

        ```csv

        Vendor AP name,Mist AP Mac

        US Office AP-2,5c:5b:35:00:00:02

        US Office AP-3,5c5b35000002

        ```'
      operationId: importSiteMaps
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/map_site_import_file'
      responses:
        '200':
          $ref: '#/components/responses/MapImport'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: importSiteMaps
      tags:
      - Sites Maps
  /api/v1/sites/{site_id}/maps/{map_id}:
    parameters:
    - $ref: '#/components/parameters/site_id'
    - $ref: '#/components/parameters/map_id'
    delete:
      description: Delete Site Map
      operationId: deleteSiteMap
      responses:
        '200':
          $ref: '#/components/responses/OK'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: deleteSiteMap
      tags:
      - Sites Maps
    get:
      description: Get Site Map Details
      operationId: getSiteMap
      responses:
        '200':
          $ref: '#/components/responses/Map'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: getSiteMap
      tags:
      - Sites Maps
    put:
      description: Update Site Map
      operationId: updateSiteMap
      requestBody:
        content:
          application/json:
            examples:
              Example:
                value:
                  height: 0
                  height_m: 0
                  latlng_br:
                    lat: string
                    lng: string
                  latlng_tl:
                    lat: string
                    lng: string
                  locked: true
                  name: string
                  occupancy_limit: 0
                  orientation: 0
                  origin_x: 0
                  origin_y: 0
                  ppm: 0
                  sitesurvey_path:
                  - coordinate: string
                    name: string
                    nodes:
                    - edges:
                        N2: string
                      name: string
                      position:
                        x: 0
                        y: 0
                  type: image
                  view: roadmap
                  wall_path:
                    coordinate: string
                    nodes:
                    - edges:
                        N2: string
                      name: string
                      position:
                        x: 0
                        y: 0
                  wayfinding:
                    micello:
                      account_key: string
                      default_level_id: 0
                    snap_to_path: true
                  wayfinding_path:
                    coordinate: string
                    nodes:
                    - edges:
                        N2: string
                      name: string
                      position:
                        x: 0
                        y: 0
                  width: 0
                  width_m: 0
            schema:
              $ref: '#/components/schemas/map'
        description: Request Body
      responses:
        '200':
          $ref: '#/components/responses/Map'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: updateSiteMap
      tags:
      - Sites Maps
  /api/v1/sites/{site_id}/maps/{map_id}/auto_geofences:
    parameters:
    - $ref: '#/components/parameters/map_id'
    - $ref: '#/components/parameters/site_id'
    post:
      description: The auto geofence service is a map parsing service that uses map image data to identify the exterior of buildings in the map image also known as "geofences". This API processes a single given MapId. This map must have an image to parse for the auto geofence service. Repeated POST requests to this endpoint while the auto geofence service is processing the map will be rejected.
      operationId: startSiteMapAutoGeofence
      responses:
        '200':
          $ref: '#/components/responses/OK'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: startSiteMapAutoGeofence
      tags:
      - Sites Maps
  /api/v1/sites/{site_id}/maps/{map_id}/image:
    parameters:
    - $ref: '#/components/parameters/site_id'
    - $ref: '#/components/parameters/map_id'
    delete:
      description: Delete Site Map Image
      operationId: deleteSiteMapImage
      responses:
        '200':
          $ref: '#/components/responses/OK'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: deleteSiteMapImage
      tags:
      - Sites Maps
    post:
      description: Add image map is a multipart POST which has an file (Image) and an optional json parameter
      operationId: addSiteMapImage
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/image_import'
        description: Request Body
      responses:
        '200':
          $ref: '#/components/responses/OK'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: addSiteMapImage
      tags:
      - Sites Maps
  /api/v1/sites/{site_id}/maps/{map_id}/replace:
    parameters:
    - $ref: '#/components/parameters/site_id'
    - $ref: '#/components/parameters/map_id'
    post:
      description: 'Replace Map Image



        This works like an PUT where the image will be replaced. If transform is provided, all the locations of the objects on the map (AP, Zone, Vbeacon, Beacon) will be transformed as well (relative to the new Map)'
      operationId: replaceSiteMapImage
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/map_site_replace_file'
      responses:
        '200':
          $ref: '#/components/responses/OK'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: replaceSiteMapImage
      tags:
      - Sites Maps
  /api/v1/sites/{site_id}/maps/{map_id}/set_map:
    parameters:
    - $ref: '#/components/parameters/site_id'
    - $ref: '#/components/parameters/map_id'
    post:
      description: "This API can be used to assign a list of AP Macs associated with site_id to the specified map_id. Note that map_id must be associated with corresponding site_id. This API obeys the following rules \n1. if AP is unassigned to any Map, it gets associated with map_id \n2. Any moved APs are returned in the response \n3. If the AP is considered a locked AP, no action will be taken"
      operationId: bulkAssignSiteApsToMap
      requestBody:
        content:
          application/json:
            examples:
              Example:
                value:
                  macs:
                  - 5c5b35000001
                  - 5c5b35584a6f
            schema:
              $ref: '#/components/schemas/mac_addresses'
      responses:
        '200':
          $ref: '#/components/responses/SetDevicesMap'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: bulkAssignSiteApsToMap
      tags:
      - Sites Maps
  /api/v1/sites/{site_id}/maps/{map_id}/wayfinding/import:
    parameters:
    - $ref: '#/components/parameters/site_id'
    - $ref: '#/components/parameters/map_id'
    post:
      description: This imports the vendor map meta data into the Map JSON. This is required by the SDK and App in order to access/render the vendor Map properly.
      operationId: importSiteWayfindings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/wayfinding_import_json'
        description: Request Body
      responses:
        '200':
          $ref: '#/components/responses/OK'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: importSiteWayfindings
      tags:
      - Sites Maps
components:
  parameters:
    site_id:
      in: path
      name: site_id
      required: true
      schema:
        examples:
        - 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    page:
      in: query
      name: page
      schema:
        default: 1
        minimum: 1
        type: integer
    map_id:
      in: path
      name: map_id
      required: true
      schema:
        examples:
        - 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    limit:
      in: query
      name: limit
      schema:
        default: 100
        minimum: 0
        type: integer
  schemas:
    map_type:
      default: image
      description: 'enum: `google`, `image`'
      enum:
      - google
      - image
      examples:
      - image
      type: string
    org_id:
      examples:
      - a97c1b22-a4e9-411e-9bfd-d8695a0f9e61
      format: uuid
      readOnly: true
      type: string
    maps:
      items:
        $ref: '#/components/schemas/map'
      type: array
    response_map_import_summary:
      additionalProperties: false
      properties:
        num_ap_assigned:
          type: integer
        num_inv_assigned:
          type: integer
        num_map_assigned:
          type: integer
      required:
      - num_ap_assigned
      - num_map_assigned
      - num_inv_assigned
      type: object
    map:
      description: Map
      properties:
        created_time:
          $ref: '#/components/schemas/created_time'
        flags:
          additionalProperties:
            type: integer
          description: Name/val pair objects for location engine to use
          examples:
          - assetHoldTime: 5
            storeTime: 10
          readOnly: true
          type: object
        for_site:
          readOnly: true
          type: boolean
        geofences:
          $ref: '#/components/schemas/map_geofences'
        group_idx:
          description: maps grouping, typically used for floor, optional
          examples:
          - 1
          type: integer
        group_name:
          description: maps grouping, optional
          examples:
          - East Wing
          type: string
        height:
          description: When type=image, height of the image map
          examples:
          - 1500
          type: integer
        height_m:
          format: double
          type: number
        id:
          $ref: '#/components/schemas/id'
        latlng_br:
          $ref: '#/components/schemas/latlng_br'
        latlng_tl:
          $ref: '#/components/schemas/latlng_tl'
        locked:
          default: false
          description: Whether this map is considered locked down
          type: boolean
        modified_time:
          $ref: '#/components/schemas/modified_time'
        name:
          description: The name of the map
          examples:
          - Mist Office
          type: string
        occupancy_limit:
          type: integer
        org_id:
          $ref: '#/components/schemas/org_id'
        orientation:
          default: 0
          description: Orientation of the map, 0 means up is north, 90 means up is west
          examples:
          - 30
          maximum: 359
          minimum: 0
          type: integer
        origin_x:
          description: User-annotated X origin, pixels
          examples:
          - 35
          type: integer
        origin_y:
          description: User-annotated Y origin, pixels
          examples:
          - 60
          type: integer
        ppm:
          description: When type=image, pixels per meter
          examples:
          - 40.94
          type: number
        site_id:
          $ref: '#/components/schemas/site_id'
        sitesurvey_path:
          $ref: '#/components/schemas/map_sitesurvey_path'
        thumbnail_url:
          description: When type=image, the url for the thumbnail image / preview
          examples:
          - https://url/to/image.png
          readOnly: true
          type: string
        type:
          $ref: '#/components/schemas/map_type'
        url:
          description: When type=image, the url
          examples:
          - https://url/to/image.png
          readOnly: true
          type: string
        view:
          $ref: '#/components/schemas/map_view'
        wall_path:
          $ref: '#/components/schemas/map_wall_path'
        wayfinding:
          $ref: '#/components/schemas/map_wayfinding'
        wayfinding_path:
          $ref: '#/components/schemas/map_wayfinding_path'
        width:
          description: When type=image, width of the image map
          examples:
          - 1250
          type: integer
        width_m:
          format: double
          type: number
      type: object
    map_wayfinding_path:
      additionalProperties: false
      description: JSON blob for wayfinding (using Dijkstra’s algorithm)
      properties:
        coordinate:
          examples:
          - actual
          type: string
        nodes:
          $ref: '#/components/schemas/map_wayfinding_path_nodes'
      type: object
    map_micello:
      additionalProperties: false
      properties:
        account_key:
          description: Account key that has access to the map
          examples:
          - null
          type: string
        default_level_id:
          description: Micello floor/level id
          examples:
          - 5
          type: integer
        map_id:
          description: Micello map id
          examples:
          - 6f4bf402-45f9-2a56-6c8b-7f83d3bc98e9
          format: uuid
          type: string
        vendor_name:
          $ref: '#/components/schemas/map_micello_vendor_name'
      required:
      - vendor_name
      - account_key
      - map_id
      - default_level_id
      type: object
    response_http403:
      additionalProperties: false
      properties:
        detail:
          examples:
          - You do not have permission to perform this action.
          type: string
      type: object
    mac_addresses_macs:
      examples:
      - - 683b679ac024
      items:
        type: string
      minItems: 1
      type: array
      uniqueItems: true
    response_set_devices_map_moved:
      items:
        examples:
        - 5c5b35000001
        type: string
      type: array
    response_map_import_ap_action:
      description: 'enum: `assigned-named-placed`, `assigned-placed`, `ignored`, `named-placed`, `placed`'
      enum:
      - assigned-named-placed
      - assigned-placed
      - ignored
      - named-placed
      - placed
      type: string
    response_set_devices_map:
      additionalProperties: false
      properties:
        locked:
          $ref: '#/components/schemas/response_set_devices_map_locked'
        moved:
          $ref: '#/components/schemas/response_set_devices_map_moved'
      type: object
    map_sitesurvey_path_items:
      additionalProperties: false
      properties:
        coordinate:
          examples:
          - actual
          type: string
        id:
          $ref: '#/components/schemas/id'
        name:
          examples:
          - Default
          type: string
        nodes:
          $ref: '#/components/schemas/map_sitesurvey_path_items_nodes'
      type: object
    map_micello_vendor_name:
      default: micello
      description: 'The vendor ‘micello’. enum: `micello`'
      enum:
      - micello
      type: string
    map_jibestream:
      additionalProperties: false
      properties:
        client_id:
          description: Client id
          examples:
          - 199d6770-0f6f-407a-9bd5-fc33c7840194
          format: uuid
          type: string
        client_secret:
          description: Client secret
          examples:
          - /9Nog3yDzcYj0bY91XJZQLCt+m9DXaIVhx+Ghk3ddd
          format: password
          type: string
        customer_id:
          description: Jibestream customer record id
          examples:
          - 123
          type: integer
        endpoint_url:
          description: Map contents endpoint host
          examples:
          - https://api.jibestream.com
          type: string
        map_id:
          description: Jibestream map id
          examples:
          - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
          format: uuid
          type: string
        mmpp:
          description: Millimeter per pixel
          examples:
          - 223
          type: integer
        ppm:
          description: Pixel per meter, same as the map JSON value.
          examples:
          - 4
          type: number
        vendor_name:
          $ref: '#/components/schemas/map_jibestream_vendor_name'
        venue_id:
          description: Venue or organization id
          examples:
          - 123
          type: integer
      required:
      - vendor_name
      - venue_id
      - map_id
      - ppm
      - client_id
      - client_secret
      - customer_id
      - endpoint_url
      - mmpp
      type: object
    created_time:
      description: When the object has been created, in epoch
      format: double
      readOnly: true
      type: number
    map_geofence_vertices:
      description: List of vertices defining the geofence
      items:
        $ref: '#/components/schemas/map_geofence_vertice'
      type: array
    response_map_import_ap:
      additionalProperties: false
      properties:
        action:
          $ref: '#/components/schemas/response_map_import_ap_action'
        floorplan_id:
          format: uuid
          type: string
        height:
          format: double
          type: number
        mac:
          type: string
        map_id:
          format: uuid
          type: string
        orientation:
          type: integer
        reason:
          type: string
      required:
      - mac
      - action
      - map_id
      - floorplan_id
      - orientation
      type: object
    response_map_import_aps:
      items:
        $ref: '#/components/schemas/response_map_import_ap'
      type: array
      uniqueItems: true
    map_wayfinding_micello:
      additionalProperties: false
      properties:
        account_key:
          examples:
          - adasdf
          type: string
        default_level_id:
          examples:
          - 5
          type: integer
        map_id:
          examples:
          - c660f81dd250c
          type: string
      type: object
    map_wayfinding_path_nodes:
      items:
        $ref: '#/components/schemas/map_node'
      minItems: 0
      type: array
    map_wall_path:
      additionalProperties: false
      description: JSON blob for wall definition (same format as wayfinding_path)
      properties:
        coordinate:
          examples:
          - actual
          type: string
        nodes:
          $ref: '#/components/schemas/map_wall_path_nodes'
      type: object
    map_geofence:
      additionalProperties: false
      properties:
        name:
          description: Name of the geofence
          examples:
          - example
          type: string
        vertices:
          $ref: '#/components/schemas/map_geofence_vertices'
      type: object
    map_node:
      additionalProperties: false
      description: Nodes on maps
      properties:
        edges:
          additionalProperties:
            type: string
          examples:
          - N1: '1'
          type: object
        name:
          examples:
          - N1
          type: string
        position:
          $ref: '#/components/schemas/map_node_position'
      required:
      - name
      type: object
    map_sitesurvey_path:
      description: Sitesurvey_path
      items:
        $ref: '#/components/schemas/map_sitesurvey_path_items'
      minItems: 0
      type: array
    map_geofence_vertice:
      additionalProperties: false
      properties:
        X:
          description: X coordinate
          examples:
          - 700
          type: number
        Y:
          description: Y coordinate
          examples:
          - 100
          type: number
      type: object
    response_set_devices_map_locked:
      items:
        examples:
        - 5c5b35584a6f
        type: string
      type: array
    map_site_replace_file:
      additionalProperties: false
      properties:
        file:
          contentMediaType: application/octet-stream
          type: string
        json:
          $ref: '#/components/schemas/map_site_replace_file_json'
      required:
      - file
      type: object
    response_http401:
      additionalProperties: false
      properties:
        detail:
          examples:
          - Authentication credentials were not provided.
          type: string
      type: object
    response_http429:
      additionalProperties: false
      properties:
        detail:
          examples:
          - Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
          type: string
      type: object
    id:
      description: Unique ID of the object instance in the Mist Organization
      examples:
      - 53f10664-3ce8-4c27-b382-0ef66432349f
      format: uuid
      readOnly: true
      type: string
    map_geofences:
      description: List of geofences for the map
      items:
        $ref: '#/components/schemas/map_geofence'
      type: array
    map_site_replace_file_json_transform:
      additionalProperties: false
      description: If `transform` is provided, all the locations of the objects on the map (AP, Zone, Vbeacon, Beacon) will be transformed as well (relative to the new Map)
      properties:
        rotation:
          default: 0
          description: Whether to rotate the replacing image, in degrees
          type: number
        scale:
          default: 1
          description: Whether to scale the replacing image
          examples:
          - 0.98
          type: number
        x:
          default: 0
          description: Where the (0, 0) of the new image is relative to the original map
          examples:
          - 3.16
          format: double
          type: number
        y:
          default: 0
          description: Where the (0, 0) of the new image is relative to the original map
          examples:
 

# --- truncated at 32 KB (47 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mist-ai/refs/heads/main/openapi/mist-ai-sites-maps-api-openapi.yml