openapi: 3.2.0 info: title: Mist Orgs Clients - Marvis API description: '> Version: **2607.1.1** > > Date: **August 17, 2026** NOTE: Some important API changes will be introduced.' contact: name: Thomas Munzer email: tmunzer@juniper.net version: 2607.1.1 servers: - url: https://api.mist.com variables: {} - url: https://api.gc1.mist.com variables: {} - url: https://api.ac2.mist.com variables: {} - url: https://api.gc2.mist.com variables: {} - url: https://api.gc4.mist.com variables: {} - url: https://api.eu.mist.com variables: {} - url: https://api.gc3.mist.com variables: {} - url: https://api.ac6.mist.com variables: {} - url: https://api.gc6.mist.com variables: {} - url: https://api.ac5.mist.com variables: {} - url: https://api.gc5.mist.com variables: {} - url: https://api.gc7.mist.com variables: {} security: - apiToken: [] - csrfToken: [] tags: - name: Orgs Clients - Marvis description: 'Marvis Invites can be generated for (and belongs to) an Org. They can be generated by an Admin of an Org and can be revoked at anytime. Marvis Clients are devices that have the Marvis Android Client installed on them and are connected to a Juniper Mist AP. They provide detailed data and telemetry about the client''s wireless connection, including information about roaming behavior, connection type, and wireless properties.' paths: /api/v1/orgs/{org_id}/insights/marvisclient/{marvisclient_id}/marvisclient-metrics: parameters: [] get: tags: - Orgs Clients - Marvis summary: getOrgMarvisClientInsights description: Return time-series metrics for a specific Marvis Client device. For the full list of supported metric field names and example values, refer to List Insight Metrics under `/api/v1/const/insight_metrics`. operationId: getOrgMarvisClientInsights parameters: - name: org_id in: path description: '' required: true schema: type: string contentEncoding: uuid examples: - 000000ab-00ab-00ab-00ab-0000000000ab - name: marvisclient_id in: path description: Marvis Client device UUID required: true schema: type: string contentEncoding: uuid - name: duration in: query description: Time range duration for the query, using relative units such as `10m`, `7d`, or `2w` style: form explode: true schema: type: string default: 1d examples: - 10m - name: interval in: query description: Aggregation works by giving a time range plus interval (e.g. 1d, 1h, 10m) where aggregation function would be applied to. style: form explode: true schema: type: string examples: - 10m - name: start in: query description: Lower bound of the time range, as an epoch timestamp in seconds or a relative value such as `-1d` or `-1w` style: form explode: true schema: type: string - name: end in: query description: Upper bound of the time range, as an epoch timestamp in seconds or a relative value such as `-1d`, `-2h`, or `now` style: form explode: true schema: type: string - name: limit in: query description: Maximum number of results to return per page style: form explode: true schema: minimum: 0 type: integer contentEncoding: int32 default: 100 - name: page in: query description: Select the page number to return when using page-based pagination; starts at `1` style: form explode: true schema: minimum: 1 type: integer contentEncoding: int32 default: 1 responses: '200': description: Marvis Client time-series metrics headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/marvis_client_insights' - description: Time-series performance metrics for a Marvis Client device examples: - avg_battery: - 82 - 79 avg_cellular_rssi: - -95 - -92 avg_cpu: - 12.5 - 15.2 avg_memory: - 43.1 - 44.8 avg_wifi_rssi: - -62 - -60 end: 1717113600 interval: 3600 limit: 100 page: 1 rt: - 2026-05-30 16:00:00+00:00 - 2026-05-30 17:00:00+00:00 start: 1717027200 contentMediaType: application/json examples: Example: value: avg_battery: - 82 - 79 avg_cellular_rssi: - -95 - -92 avg_cpu: - 12.5 - 15.2 avg_memory: - 43.1 - 44.8 avg_wifi_rssi: - -62 - -60 end: 1717113600 interval: 3600 limit: 100 page: 1 rt: - 2026-05-30 16:00:00+00:00 - 2026-05-30 17:00:00+00:00 start: 1717027200 application/vnd.api+json: schema: allOf: - $ref: '#/components/schemas/marvis_client_insights' - description: Time-series performance metrics for a Marvis Client device examples: - avg_battery: - 82 - 79 avg_cellular_rssi: - -95 - -92 avg_cpu: - 12.5 - 15.2 avg_memory: - 43.1 - 44.8 avg_wifi_rssi: - -62 - -60 end: 1717113600 interval: 3600 limit: 100 page: 1 rt: - 2026-05-30 16:00:00+00:00 - 2026-05-30 17:00:00+00:00 start: 1717027200 contentMediaType: application/vnd.api+json examples: Example: value: avg_battery: - 82 - 79 avg_cellular_rssi: - -95 - -92 avg_cpu: - 12.5 - 15.2 avg_memory: - 43.1 - 44.8 avg_wifi_rssi: - -62 - -60 end: 1717113600 interval: 3600 limit: 100 page: 1 rt: - 2026-05-30 16:00:00+00:00 - 2026-05-30 17:00:00+00:00 start: 1717027200 '400': description: Bad Syntax headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/response_http400' - description: Standard HTTP 400 bad request error response examples: - detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)' contentMediaType: application/json examples: Example: value: detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)' application/vnd.api+json: schema: allOf: - $ref: '#/components/schemas/response_http400' - description: Standard HTTP 400 bad request error response examples: - detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)' contentMediaType: application/vnd.api+json examples: Example: value: detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)' '401': description: Unauthorized headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/response_http401' - description: Standard HTTP 401 authentication error response examples: - detail: Authentication credentials were not provided. contentMediaType: application/json examples: Example: value: detail: Authentication credentials were not provided. application/vnd.api+json: schema: allOf: - $ref: '#/components/schemas/response_http401' - description: Standard HTTP 401 authentication error response examples: - detail: Authentication credentials were not provided. contentMediaType: application/vnd.api+json examples: Example: value: detail: Authentication credentials were not provided. '403': description: Permission Denied headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/response_http403' - description: Standard HTTP 403 permission error response examples: - detail: You do not have permission to perform this action. contentMediaType: application/json examples: Example: value: detail: You do not have permission to perform this action. application/vnd.api+json: schema: allOf: - $ref: '#/components/schemas/response_http403' - description: Standard HTTP 403 permission error response examples: - detail: You do not have permission to perform this action. contentMediaType: application/vnd.api+json examples: Example: value: detail: You do not have permission to perform this action. '404': description: Not found. The API endpoint doesn’t exist or resource doesn’ t exist headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/response_http404' - description: Standard HTTP 404 not found error response contentMediaType: application/json application/vnd.api+json: schema: allOf: - $ref: '#/components/schemas/response_http404' - description: Standard HTTP 404 not found error response contentMediaType: application/vnd.api+json '429': description: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/response_http429' - description: Standard HTTP 429 rate limit error response examples: - detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold contentMediaType: application/json examples: Example: value: detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold application/vnd.api+json: schema: allOf: - $ref: '#/components/schemas/response_http429' - description: Standard HTTP 429 rate limit error response examples: - detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold contentMediaType: application/vnd.api+json examples: Example: value: detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold deprecated: false /api/v1/orgs/{org_id}/marvisclients/events/count: parameters: [] get: tags: - Orgs Clients - Marvis summary: countOrgMarvisClientEvents description: Count Marvis Client events by a distinct field. operationId: countOrgMarvisClientEvents parameters: - name: org_id in: path description: '' required: true schema: type: string contentEncoding: uuid examples: - 000000ab-00ab-00ab-00ab-0000000000ab - name: distinct in: query description: 'Field to count by. enum: `type`, `device_id`, `wifi_mac`, `wifi_ip`, `hostname`, `ssid`, `bssid`, `channel`, `pre_bssid`, `pre_channel`' style: form explode: true schema: type: string default: type - name: type in: query description: Filter by event type style: form explode: true schema: type: string - name: device_id in: query description: Filter by Marvis Client installation device UUID style: form explode: true schema: type: string - name: wifi_mac in: query description: Filter by device Wi-Fi MAC address style: form explode: true schema: type: string - name: wifi_ip in: query description: Filter by device Wi-Fi IP address style: form explode: true schema: type: string - name: hostname in: query description: Filter by device hostname style: form explode: true schema: type: string - name: ssid in: query description: Filter by SSID involved in roam events style: form explode: true schema: type: string - name: bssid in: query description: Filter by BSSID the client roamed to style: form explode: true schema: type: string - name: channel in: query description: Filter by channel the client roamed to style: form explode: true schema: type: string - name: pre_bssid in: query description: Filter by BSSID the client roamed from style: form explode: true schema: type: string - name: pre_channel in: query description: Filter by channel the client roamed from style: form explode: true schema: type: string - name: limit in: query description: Maximum number of results to return per page style: form explode: true schema: minimum: 0 type: integer contentEncoding: int32 default: 100 - name: start in: query description: Lower bound of the time range, as an epoch timestamp in seconds or a relative value such as `-1d` or `-1w` style: form explode: true schema: type: string - name: end in: query description: Upper bound of the time range, as an epoch timestamp in seconds or a relative value such as `-1d`, `-2h`, or `now` style: form explode: true schema: type: string - name: duration in: query description: Time range duration for the query, using relative units such as `10m`, `7d`, or `2w` style: form explode: true schema: type: string default: 1d examples: - 10m responses: '200': description: Count result headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/response_count' - description: Distinct count response for time-bounded search results examples: - distinct: string end: 0 limit: 0 results: - count: 0 property: string start: 0 total: 0 contentMediaType: application/json examples: Example: value: distinct: string end: 0 limit: 0 results: - count: 0 property: string start: 0 total: 0 application/vnd.api+json: schema: allOf: - $ref: '#/components/schemas/response_count' - description: Distinct count response for time-bounded search results examples: - distinct: string end: 0 limit: 0 results: - count: 0 property: string start: 0 total: 0 contentMediaType: application/vnd.api+json examples: Example: value: distinct: string end: 0 limit: 0 results: - count: 0 property: string start: 0 total: 0 '400': description: Bad Syntax headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/response_http400' - description: Standard HTTP 400 bad request error response examples: - detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)' contentMediaType: application/json examples: Example: value: detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)' application/vnd.api+json: schema: allOf: - $ref: '#/components/schemas/response_http400' - description: Standard HTTP 400 bad request error response examples: - detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)' contentMediaType: application/vnd.api+json examples: Example: value: detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)' '401': description: Unauthorized headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/response_http401' - description: Standard HTTP 401 authentication error response examples: - detail: Authentication credentials were not provided. contentMediaType: application/json examples: Example: value: detail: Authentication credentials were not provided. application/vnd.api+json: schema: allOf: - $ref: '#/components/schemas/response_http401' - description: Standard HTTP 401 authentication error response examples: - detail: Authentication credentials were not provided. contentMediaType: application/vnd.api+json examples: Example: value: detail: Authentication credentials were not provided. '403': description: Permission Denied headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/response_http403' - description: Standard HTTP 403 permission error response examples: - detail: You do not have permission to perform this action. contentMediaType: application/json examples: Example: value: detail: You do not have permission to perform this action. application/vnd.api+json: schema: allOf: - $ref: '#/components/schemas/response_http403' - description: Standard HTTP 403 permission error response examples: - detail: You do not have permission to perform this action. contentMediaType: application/vnd.api+json examples: Example: value: detail: You do not have permission to perform this action. '404': description: Not found. The API endpoint doesn’t exist or resource doesn’ t exist headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/response_http404' - description: Standard HTTP 404 not found error response contentMediaType: application/json application/vnd.api+json: schema: allOf: - $ref: '#/components/schemas/response_http404' - description: Standard HTTP 404 not found error response contentMediaType: application/vnd.api+json '429': description: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/response_http429' - description: Standard HTTP 429 rate limit error response examples: - detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold contentMediaType: application/json examples: Example: value: detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold application/vnd.api+json: schema: allOf: - $ref: '#/components/schemas/response_http429' - description: Standard HTTP 429 rate limit error response examples: - detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold contentMediaType: application/vnd.api+json examples: Example: value: detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold deprecated: false /api/v1/orgs/{org_id}/marvisclients/events/search: parameters: [] get: tags: - Orgs Clients - Marvis summary: searchOrgMarvisClientEvents description: Search Marvis Client events across the organization. operationId: searchOrgMarvisClientEvents parameters: - name: org_id in: path description: '' required: true schema: type: string contentEncoding: uuid examples: - 000000ab-00ab-00ab-00ab-0000000000ab - name: type in: query description: Filter by event type style: form explode: true schema: type: string - name: device_id in: query description: Filter by Marvis Client installation device UUID style: form explode: true schema: type: string - name: wifi_mac in: query description: Filter by device Wi-Fi MAC address style: form explode: true schema: type: string - name: wifi_ip in: query description: Filter by device Wi-Fi IP address style: form explode: true schema: type: string - name: hostname in: query description: Filter by device hostname style: form explode: true schema: type: string - name: ssid in: query description: Filter by SSID involved in roam events style: form explode: true schema: type: string - name: bssid in: query description: Filter by BSSID the client roamed to style: form explode: true schema: type: string - name: channel in: query description: Filter by channel the client roamed to style: form explode: true schema: type: string - name: pre_bssid in: query description: Filter by BSSID the client roamed from style: form explode: true schema: type: string - name: pre_channel in: query description: Filter by channel the client roamed from style: form explode: true schema: type: string - name: limit in: query description: Maximum number of results to return per page style: form explode: true schema: minimum: 0 type: integer contentEncoding: int32 default: 100 - name: start in: query description: Lower bound of the time range, as an epoch timestamp in seconds or a relative value such as `-1d` or `-1w` style: form explode: true schema: type: string - name: end in: query description: Upper bound of the time range, as an epoch timestamp in seconds or a relative value such as `-1d`, `-2h`, or `now` style: form explode: true schema: type: string - name: duration in: query description: Time range duration for the query, using relative units such as `10m`, `7d`, or `2w` style: form explode: true schema: type: string default: 1d examples: - 10m responses: '200': description: Paginated Marvis Client events search results headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/marvis_client_events_search' - description: Paginated list of Marvis Client events examples: - limit: 1000 results: - bssid: 5c5b35000002 channel: 11 device_id: da088609-8e8d-6d8b-0e40-fe1dc94b9218 hostname: jdoe123-dell location: map_id: 7735ef91-83b4-6116-1c1a-57819af48867 site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b timestamp: 1678377926 x: 12.5 y: 45 neighbor_ap_report: - band: '5' bssid: 5c5b35000003 channel: 44 rssi: -55 - band: '5' bssid: 5c5b35000004 channel: 36 rssi: -70 org_id: 2818e386-8dec-2562-9ede-5b8a0fbbdc71 pre_bssid: 5c5b35000001 pre_channel: 7 pre_rssi: -76 rssi: -53 ssid: Corp timestamp: 1678377926 type: MARVISCLIENT_ROAMED wifi_ip: 10.10.20.1 wifi_mac: f01c2df166e0 - device_id: da088609-8e8d-6d8b-0e40-fe1dc94b9218 hostname: jdoe123-dell org_id: 2818e386-8dec-2562-9ede-5b8a0fbbdc71 percent: 9 timestamp: 1678378040 type: MARVISCLIENT_LOW_BATTERY wifi_ip: 10.10.20.1 wifi_mac: f01c2df166e0 total: 1 contentMediaType: application/json examples: Example: value: limit: 1000 results: - bssid: 5c5b35000002 channel: 11 device_id: da088609-8e8d-6d8b-0e40-fe1dc94b9218 hostname: jdoe123-dell location: map_id: 7735ef91-83b4-6116-1c1a-57819af48867 site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b timestamp: 1678377926 x: 12.5 y: 45 neighbor_ap_report: - band: '5' bssid: 5c5b35000003 channel: 44 rssi: -55 - band: '5' bssid: 5c5b35000004 channel: 36 rssi: -70 org_id: 2818e386-8dec-2562-9ede-5b8a0fbbdc71 pre_bssid: 5c5b35000001 pre_channel: 7 pre_rssi: -76 rssi: -53 ssid: Corp timestamp: 1678377926 type: MARVISCLIENT_ROAMED wifi_ip: 10.10.20.1 wifi_mac: f01c2df166e0 - device_id: da088609-8e8d-6d8b-0e40-fe1dc94b9218 hostname: jdoe123-dell org_id: 2818e386-8dec-2562-9ede-5b8a0fbbdc71 percent: 9 timestamp: 1678378040 type: MARVISCLIENT_LOW_BATTERY wifi_ip: 10.10.20.1 wifi_mac: f01c2df166e0 total: 1 application/vnd.api+json: schema: allOf: - $ref: '#/components/schemas/marvis_client_events_search' - description: Paginated list of Marvis Client events examples: - limit: 1000 results: - bssid: 5c5b35000002 channel: 11 device_id: da088609-8e8d-6d8b-0e40-fe1dc94b9218 hostname: jdoe123-dell location: map_id: 7735ef91-83b4-6116-1c1a-57819af48867 site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b timestamp: 1678377926 x: 12.5 y: 45 neighbor_ap_report: - band: '5' bssid: 5c5b35000003 channel: 44 rssi: -55 - band: '5' bssid: 5c5b35000004 channel: 36 rssi: -70 org_id: 2818e386-8dec-2562-9ede-5b8a0fbbdc71 pre_bssid: 5c5b35000001 pre_channel: 7 pre_rssi: -76 rssi: -53 ssid: Corp timestamp: 1678377926 type: MARVISCLIENT_ROAMED wifi_ip: 10.10.20.1 wifi_mac: f01c2df166e0 - device_id: da088609-8e8d-6d8b-0e40-fe1dc94b9218 hostname: jdoe123-dell org_id: 2818e386-8dec-2562-9ede-5b8a0fbbdc71 percent: 9 timestamp: 1678378040 type: MARVISCLIENT_LOW_BATTERY wifi_ip: 10.10.20.1 wifi_mac: f01c2df166e0 total: 1 contentMediaType: application/vnd.api+json examples: Example: value: limit: 1000 results: - bssid: 5c5b35000002 channel: 11 device_id: da088609-8e8d-6d8b-0e40-fe1dc94b9218 hostname: jdoe123-dell location: map_id: 7735ef91-83b4-6116-1c1a-57819af48867 site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b timestamp: 1678377926 x: 12.5 y: 45 neighbor_ap_report: - band: '5' bssid: 5c5b35000003 channel: 44 rssi: -55 - band: '5' bssid: 5c5b35000004 channel: 36 rssi: -70 org_id: 2818e386-8dec-2562-9ede-5b8a0fbbdc71 pre_bssid: 5c5b35000001 pre_channel: 7 pre_rssi: -76 rssi: -53 ssid: Corp timestamp: 1678377926 type: MARVISCLIENT_ROAMED wifi_ip: 10.10.20.1 wifi_mac: f01c2df166e0 - device_id: da088609-8e8d-6d8b-0e40-fe1dc94b9218 hostname: jdoe123-dell org_id: 2818e386-8dec-2562-9ede-5b8a0fbbdc71 percent: 9 timestamp: 1678378040 type: MARVISCLIENT_LOW_BATTERY wifi_ip: 10.10.20.1 wifi_mac: f01c2df166e0 total: 1 '400': description: Bad Syntax headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/response_http400' - description: Standard HTTP 400 bad request error response examples: - detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)' contentMediaType: application/json examples: Example: value: detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)' application/vnd.api+json: schema: allOf: - $ref: '#/components/schemas/response_http400' - description: Standard HTTP 400 bad request error response examples: - detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)' contentMediaType: application/vnd.api+json examples: Example: value: detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)' '401': description: Unauthorized headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/response_http401' - description: Standard HTTP 401 authentication error response examples: - detail: Authentication credentials were not provided. contentMediaType: application/json examples: Example: value: detail: Authentication credentials were not provided. application/vnd.api+json: schema: allOf: - $ref: '#/components/schemas/response_http401' - description: Standard HTTP 401 authentication error response examples: - detail: Authentication credentials were not provided. contentMediaType: application/vnd.api+json examples: Example: value: detail: Authentication credentials were not provided. '403': description: Permission Denied headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/response_http403' - description: Standard HTTP 403 permission error response examples: - detail: You do not have permission to perform this action. contentMediaType: application/json examples: Example: value: detail: You do not have permission to perform this action. application/vnd.api+json: schema: allOf: - $ref: '#/components/schemas/response_http403' - description: Standard HTTP 403 permission error response examples: - detail: You do not have permission to perform this action. contentMediaType: application/vnd.api+json examples: Example: value: detail: You do not have permission to perform this action. '404': description: Not found. The API endpoint doesn’t exist or resource doesn’ t exist headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/response_http404' - description: Standard HTTP 404 not found error response contentMediaType: application/json application/vnd.api+json: schema: allOf: - $ref: '#/components/schemas/response_http404' - description: Standard HTTP 404 not found error response contentMediaType: application/vnd.api+json '429': description: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/response_http429' - description: Standard HTTP 429 rate limit error response examples: - detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold contentMediaType: application/json examples: Example: value: detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold application/vnd.api+json: schema: allOf: - $ref: '#/components/schemas/response_http429' - description: Standard HTTP 429 rate limit error response examples: - detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold contentMediaType: application/vnd.api+json examples: Example: value: detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold deprecated: false /api/v1/orgs/{org_id}/stats/marvisclients: parameters: [] delete: tags: - Orgs Clients - Marvis summary: deleteOrgMarvisClient description: Delete Marvis Client operationId: deleteOrgMarvisClient parameters: - name: org_id in: path description: '' required: true schema: type: string contentEncoding: uuid examples: - 000000ab-00ab-00ab-00ab-0000000000ab responses: '200': description: OK headers: {} content: {} '400': description: Bad Syntax headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/response_http400' - description: Standard HTTP 400 bad request error response examples: - detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)' contentMediaType: application/json examples: Example: value: detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)' application/vnd.api+json: schema: allOf: - $ref: '#/components/schemas/response_http400' - description: Standard HTTP 400 bad request error response examples: - detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)' contentMediaType: application/vnd.api+json examples: Example: value: detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)' '401': description: Unauthorized headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/response_http401' - description: Standard HTTP 401 authentication error response examples: - detail: Authentication credentials were not provided. contentMediaType: application/json examples: Example: value: detail: Authentication credentials were not provided. application/vnd.api+json: schema: allOf: - $ref: '#/components/schemas/response_http401' - description: Standard HTTP 401 authentication error response examples: - detail: Authentication credentials were not provided. contentMediaType: application/vnd.api+json examples: Example: value: detail: Authentication credentials were not provided. '403': description: Permission Denied headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/response_http403' - description: Standard HTTP 403 permission error response examples: - detail: You do not have permission to perform this action. contentMediaType: application/json examples: Example: value: detail: You do not have permission to perform this action. application/vnd.api+json: schema: allOf: - $ref: '#/components/schemas/response_http403' - description: Standard HTTP 403 permission error response examples: - detail: You do not have permission to perform this action. contentMediaType: application/vnd.api+json examples: Example: value: detail: You do not have permission to perform this action. '404': description: Not found. The API endpoint doesn’t exist or resource doesn’ t exist headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/response_http404' - description: Standard HTTP 404 not found error response contentMediaType: application/json application/vnd.api+json: schema: allOf: - $ref: '#/components/schemas/response_http404' - description: Standard HTTP 404 not found error response contentMediaType: application/vnd.api+json '429': description: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/response_http429' - description: Standard HTTP 429 rate limit error response examples: - detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold contentMediaType: application/json examples: Example: value: detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold application/vnd.api+json: schema: allOf: - $ref: '#/components/schemas/response_http429' - description: Standard HTTP 429 rate limit error response examples: - detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold contentMediaType: application/vnd.api+json examples: Example: value: detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold deprecated: false components: schemas: marvis_client_event_neighbor_ap: title: marvis_client_event_neighbor_ap type: object properties: band: type: string description: Wi-Fi band the AP is operating on bssid: type: string description: BSSID of the neighboring AP channel: type: integer description: Channel the neighboring AP is on contentEncoding: int32 rssi: type: integer description: RSSI of the neighboring AP signal, in dBm contentEncoding: int32 description: A neighboring AP observed in a Marvis Client event response_http403: title: response_http403 type: object properties: detail: type: string description: Human-readable explanation of the permission error examples: - You do not have permission to perform this action. description: Standard HTTP 403 permission error response count_result: title: count_result required: - count type: object properties: count: type: integer description: Number of matching items for the distinct value or values in this result contentEncoding: int32 additionalProperties: type: string description: Count result row with the matching distinct field values marvis_client_event: title: marvis_client_event type: object properties: band: type: string description: Wi-Fi band at the time of the event bssid: type: string description: BSSID the client roamed to (for roam events) channel: type: integer description: Channel the client roamed to (for roam events) contentEncoding: int32 device_id: type: string description: UUID of the device the Marvis Client is installed on contentEncoding: uuid hostname: type: string description: Device hostname location: allOf: - $ref: '#/components/schemas/stats_marvis_client_location1' - description: Last known device location neighbor_ap_report: type: array items: $ref: '#/components/schemas/marvis_client_event_neighbor_ap' description: List of neighboring APs observed at the time of the event org_id: type: string description: Organization UUID contentEncoding: uuid percent: type: integer description: Battery level percentage at the time of the event (for battery events) contentEncoding: int32 pre_bssid: type: string description: BSSID the client roamed from (for roam events) pre_channel: type: integer description: Channel the client roamed from (for roam events) contentEncoding: int32 pre_rssi: type: integer description: RSSI before the roam event, in dBm contentEncoding: int32 rssi: type: integer description: Wi-Fi RSSI at the time of the event, in dBm contentEncoding: int32 ssid: type: string description: SSID the client was connected to timestamp: type: integer description: Event timestamp, in epoch seconds contentEncoding: int32 type: type: string description: Event type wifi_ip: type: string description: Device Wi-Fi IP address at the time of the event wifi_mac: type: string description: Device Wi-Fi MAC address description: A Marvis Client event record response_http400: title: response_http400 type: object properties: detail: type: string description: Human-readable explanation of the bad request error examples: - 'JSON parse error - Expecting value: line 5 column 8 (char 56)' description: Standard HTTP 400 bad request error response stats_marvis_client_location1: title: stats_marvis_client_location1 type: object properties: map_id: type: string description: UUID of the floor-plan map contentEncoding: uuid site_id: type: string description: UUID of the site the device was located in contentEncoding: uuid timestamp: type: integer description: Timestamp of the location fix, in epoch seconds contentEncoding: int32 x: type: number description: X coordinate on the floor-plan map, in pixels y: type: number description: Y coordinate on the floor-plan map, in pixels description: Last known device location response_http404: title: response_http404 type: object properties: id: type: string description: Missing resource identifier, when the API includes one description: Standard HTTP 404 not found error response marvis_client_insights: title: marvis_client_insights type: object properties: avg_battery: type: array items: type: number description: Average battery level per interval bucket avg_cellular_rssi: type: array items: type: number description: Average cellular RSSI per interval bucket, in dBm avg_cpu: type: array items: type: number description: Average CPU utilization per interval bucket (0–100) avg_memory: type: array items: type: number description: Average memory utilization per interval bucket (0–100) avg_wifi_rssi: type: array items: type: number description: Average Wi-Fi RSSI per interval bucket, in dBm end: type: integer description: End of the reporting window, in epoch seconds contentEncoding: int32 interval: type: integer description: Duration of each interval bucket, in seconds contentEncoding: int32 limit: type: integer description: Maximum number of results requested contentEncoding: int32 page: type: integer description: Current page number contentEncoding: int32 rt: type: array items: type: string description: List of ISO 8601 timestamp strings for each interval bucket start: type: integer description: Start of the reporting window, in epoch seconds contentEncoding: int32 description: Time-series performance metrics for a Marvis Client device response_count: title: response_count required: - distinct - end - limit - results - start - total type: object properties: distinct: type: string description: Field used to group the count results end: type: integer description: Search window end timestamp for the count request, in epoch seconds contentEncoding: int32 limit: type: integer description: Maximum number of distinct count results requested contentEncoding: int32 results: uniqueItems: true type: array items: $ref: '#/components/schemas/count_result' description: Count results grouped by the distinct field start: type: integer description: Search window start timestamp for the count request, in epoch seconds contentEncoding: int32 total: type: integer description: Number of distinct result buckets returned contentEncoding: int32 description: Distinct count response for time-bounded search results response_http429: title: response_http429 type: object properties: detail: type: string description: Human-readable explanation of the rate limit error examples: - Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold description: Standard HTTP 429 rate limit error response response_http401: title: response_http401 type: object properties: detail: type: string description: Human-readable explanation of the authentication error examples: - Authentication credentials were not provided. description: Standard HTTP 401 authentication error response marvis_client_events_search: title: marvis_client_events_search type: object properties: limit: type: integer description: Maximum number of results requested contentEncoding: int32 results: type: array items: $ref: '#/components/schemas/marvis_client_event' description: List of Marvis Client events total: type: integer description: Total number of matching results contentEncoding: int32 description: Paginated list of Marvis Client events securitySchemes: apiToken: type: apiKey description: "Preferred authentication method for automation and integrations. Send the API token in the HTTP `Authorization` header.\n\n**Format**:\n `Authorization: Token {apitoken}`\n\n**Notes**:\n* An API token generated for a specific admin has the same privileges as that admin\n* An API token is automatically removed if it is not used for more than 90 days\n* SSO admins cannot generate admin API tokens. Use organization API tokens when scoped Org/Site privileges are needed." name: Authorization in: header csrfToken: type: apiKey description: 'Session-based authentication for browser or login/password flows. After a successful [Login]($e/Admins%20Login/login) request, Mist returns a `csrftoken` cookie. Send that value in the `X-CSRFToken` header on later API requests that use the login session. **Format**: ``` X-CSRFToken: vwvBuq9qkqaKh7lu8tNc0gkvBfEaLAmx ``` For automation, API Token authentication is preferred.' name: X-CSRFToken in: header