Juniper Networks MSPs Marvis API

Marvis is an AI-driven, interactive virtual network assistant that streamlines network operations, simplifies troubleshooting, and provides an enhanced user experience. It offers real-time network visibility, comprehensive insights, and automation customized for your network. Marvis can proactively identify issues, interpret their impact, determine root causes, and recommend fixes. It consists of components such as Marvis Actions, Marvis Minis, Conversational Assistant, Marvis Client, and Marvis Query Language. Marvis API Calls at the MSP level can be used to quickly detect network issues on all the Organizations attached to the MSP account.

Operations 1

GET /api/v1/msps/{msp_id}/suggestion/count countMspsMarvisActions #

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/juniper:juniper-msps-marvis-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

juniper-msps-marvis-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Mist MSPs 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: MSPs Marvis
  description: Marvis is an AI-driven, interactive virtual network assistant that streamlines network operations, simplifies troubleshooting, and provides an enhanced user experience.
paths:
  /api/v1/msps/{msp_id}/suggestion/count:
    parameters: []
    get:
      tags:
      - MSPs Marvis
      summary: countMspsMarvisActions
      description: Return distinct counts of Marvis actions for this MSP grouped by the requested field, such as organization or status.
      operationId: countMspsMarvisActions
      parameters:
      - name: msp_id
        in: path
        description: ''
        required: true
        schema:
          type: string
          contentEncoding: uuid
          examples:
          - 000000ab-00ab-00ab-00ab-0000000000ab
      - name: distinct
        in: query
        description: 'Field used to group this count response. enum: `org_id`, `status`'
        style: form
        explode: true
        schema:
          allOf:
          - $ref: '#/components/schemas/msp_marvis_suggestions_count_distinct'
          - description: 'Field used to group this count response. enum: `org_id`, `status`'
      - 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
      responses:
        '200':
          description: Marvis Actions Count
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/response_count_marvis_actions'
                - description: Distinct count response for Marvis action suggestions
                  examples:
                  - distinct: status
                    limit: 1000
                    results:
                    - count: 24
                      status: 002e176a-0000-000-1111-002e208b20e1
                    - count: 12
                      status: 2d3f176a-0000-000-2222-002e208f176a
                    - count: 15
                      status: 08b2176a-0000-000-3333-002e208b2d3f
                    total: 3
                contentMediaType: application/json
              examples:
                Example:
                  value:
                    distinct: status
                    limit: 1000
                    results:
                    - count: 24
                      status: 002e176a-0000-000-1111-002e208b20e1
                    - count: 12
                      status: 2d3f176a-0000-000-2222-002e208f176a
                    - count: 15
                      status: 08b2176a-0000-000-3333-002e208b2d3f
                    total: 3
            application/vnd.api+json:
              schema:
                allOf:
                - $ref: '#/components/schemas/response_count_marvis_actions'
                - description: Distinct count response for Marvis action suggestions
                  examples:
                  - distinct: status
                    limit: 1000
                    results:
                    - count: 24
                      status: 002e176a-0000-000-1111-002e208b20e1
                    - count: 12
                      status: 2d3f176a-0000-000-2222-002e208f176a
                    - count: 15
                      status: 08b2176a-0000-000-3333-002e208b2d3f
                    total: 3
                contentMediaType: application/vnd.api+json
              examples:
                Example:
                  value:
                    distinct: status
                    limit: 1000
                    results:
                    - count: 24
                      status: 002e176a-0000-000-1111-002e208b20e1
                    - count: 12
                      status: 2d3f176a-0000-000-2222-002e208f176a
                    - count: 15
                      status: 08b2176a-0000-000-3333-002e208b2d3f
                    total: 3
        '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:
    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
    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
    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
    response_count_marvis_actions_result:
      title: response_count_marvis_actions_result
      type: object
      properties:
        count:
          type: integer
          description: Number of Marvis actions matching this distinct value
          contentEncoding: int32
          examples:
          - 24
      additionalProperties:
        type: string
      description: Marvis action count result for one distinct value
    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
    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
    msp_marvis_suggestions_count_distinct:
      title: msp_marvis_suggestions_count_distinct
      enum:
      - org_id
      - status
      type: string
      description: 'Distinct field used when counting MSP Marvis suggestions. enum: `org_id`, `status`'
    response_count_marvis_actions:
      title: response_count_marvis_actions
      type: object
      properties:
        distinct:
          type: string
          description: Field used to group Marvis action count results
          examples:
          - status
        limit:
          type: integer
          description: Maximum number of Marvis action count results requested
          contentEncoding: int32
          examples:
          - 1000
        results:
          type: array
          items:
            $ref: '#/components/schemas/response_count_marvis_actions_result'
          description: Marvis action count results grouped by the distinct field
          examples:
          - - count: 24
              status: 002e176a-0000-000-1111-002e208b20e1
            - count: 12
              status: 2d3f176a-0000-000-2222-002e208f176a
            - count: 15
              status: 08b2176a-0000-000-3333-002e208b2d3f
        total:
          type: integer
          description: Number of Marvis action count result buckets returned
          contentEncoding: int32
          examples:
          - 3
      description: Distinct count response for Marvis action suggestions
  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