Juniper Networks MSPs Logs API

Audit Logs are records of activities initiated by users, providing a history of actions such as accessing, creating, updating, or deleting resources or components at the MSP level. These logs allow superusers and network administrators to track and maintain a record of user actions, including who performed specific actions and when. Audit logs are useful for monitoring user activity, investigating security breaches, ensuring compliance with regulations, and tracing configuration changes in a network. They can be filtered and analyzed to view specific information and granular-level details of each event.

Operations 2

GET /api/v1/msps/{msp_id}/logs listMspAuditLogs #
GET /api/v1/msps/{msp_id}/logs/count countMspAuditLogs #

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-logs-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-logs-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Mist MSPs Logs 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 Logs
  description: Audit Logs are records of activities initiated by users, providing a history of actions such as accessing, creating, updating, or deleting resources or components at the MSP level.
paths:
  /api/v1/msps/{msp_id}/logs:
    parameters: []
    get:
      tags:
      - MSPs Logs
      summary: listMspAuditLogs
      description: List audit log entries for configuration and administrative changes within this MSP, with optional filters by site, administrator, message text, and time range.
      operationId: listMspAuditLogs
      parameters:
      - name: msp_id
        in: path
        description: ''
        required: true
        schema:
          type: string
          contentEncoding: uuid
          examples:
          - 000000ab-00ab-00ab-00ab-0000000000ab
      - name: site_id
        in: query
        description: Filter results by site identifier
        style: form
        explode: true
        schema:
          type: string
          examples:
          - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
      - name: admin_name
        in: query
        description: Admin name or email
        style: form
        explode: true
        schema:
          type: string
          examples:
          - jsnow
      - name: message
        in: query
        description: Filter results by message text
        style: form
        explode: true
        schema:
          type: string
          examples:
          - Added new site
      - name: sort
        in: query
        description: 'Field used to sort results; a leading `-` indicates descending order. enum: `-timestamp`, `admin_id`, `site_id`, `timestamp`'
        style: form
        explode: true
        schema:
          allOf:
          - $ref: '#/components/schemas/list_msp_logs_sort'
          - description: 'Field used to sort results; a leading `-` indicates descending order. enum: `-timestamp`, `admin_id`, `site_id`, `timestamp`'
      - 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
      - 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: OK
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/response_log_search'
                - description: Paginated response for audit log search results
                  examples:
                  - end: 1428954000
                    limit: 100
                    results:
                    - admin_id: 72bfa2bd-e58a-4670-9d20-a1468f7a6f58
                      admin_name: test@mistsys.com
                      id: c6f9347b-b0a4-4a23-b927-fa9249f2ffb2
                      message: TEST AUDIT
                      org_id: 2818e386-8dec-2562-9ede-5b8a0fbbdc71
                      site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
                      timestamp: 1431382121
                    start: 1428939600
                    total: 135
                contentMediaType: application/json
              examples:
                Example:
                  value:
                    end: 1428954000
                    limit: 100
                    results:
                    - admin_id: 72bfa2bd-e58a-4670-9d20-a1468f7a6f58
                      admin_name: test@mistsys.com
                      id: c6f9347b-b0a4-4a23-b927-fa9249f2ffb2
                      message: TEST AUDIT
                      org_id: 2818e386-8dec-2562-9ede-5b8a0fbbdc71
                      site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
                      timestamp: 1431382121
                    start: 1428939600
                    total: 135
            application/vnd.api+json:
              schema:
                allOf:
                - $ref: '#/components/schemas/response_log_search'
                - description: Paginated response for audit log search results
                  examples:
                  - end: 1428954000
                    limit: 100
                    results:
                    - admin_id: 72bfa2bd-e58a-4670-9d20-a1468f7a6f58
                      admin_name: test@mistsys.com
                      id: c6f9347b-b0a4-4a23-b927-fa9249f2ffb2
                      message: TEST AUDIT
                      org_id: 2818e386-8dec-2562-9ede-5b8a0fbbdc71
                      site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
                      timestamp: 1431382121
                    start: 1428939600
                    total: 135
                contentMediaType: application/vnd.api+json
              examples:
                Example:
                  value:
                    end: 1428954000
                    limit: 100
                    results:
                    - admin_id: 72bfa2bd-e58a-4670-9d20-a1468f7a6f58
                      admin_name: test@mistsys.com
                      id: c6f9347b-b0a4-4a23-b927-fa9249f2ffb2
                      message: TEST AUDIT
                      org_id: 2818e386-8dec-2562-9ede-5b8a0fbbdc71
                      site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
                      timestamp: 1431382121
                    start: 1428939600
                    total: 135
        '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/msps/{msp_id}/logs/count:
    parameters: []
    get:
      tags:
      - MSPs Logs
      summary: countMspAuditLogs
      description: Return distinct counts of MSP audit log entries grouped by the requested field, such as administrator, message, or organization.
      operationId: countMspAuditLogs
      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: `admin_id`, `admin_name`, `message`, `org_id`'
        style: form
        explode: true
        schema:
          allOf:
          - $ref: '#/components/schemas/msp_logs_count_distinct'
          - description: 'Field used to group this count response. enum: `admin_id`, `admin_name`, `message`, `org_id`'
      - 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: Result of Count
          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
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
    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
    msp_logs_count_distinct:
      title: msp_logs_count_distinct
      enum:
      - admin_id
      - admin_name
      - message
      - org_id
      type: string
      description: 'enum: `admin_id`, `admin_name`, `message`, `org_id`'
    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
    log_event:
      title: log_event
      required:
      - message
      - org_id
      - timestamp
      type: object
      properties:
        admin_id:
          type:
          - string
          - 'null'
          description: Admin user identifier associated with the log event
          contentEncoding: uuid
          readOnly: true
        admin_name:
          type:
          - string
          - 'null'
          description: Name of the admin that performs the action
          readOnly: true
        after:
          type: object
          description: field values after the change
          readOnly: true
        before:
          type: object
          description: field values prior to the change
          readOnly: true
        device_id:
          type:
          - string
          - 'null'
          description: Device identifier associated with the log event
          contentEncoding: uuid
          readOnly: true
        for_site:
          type: boolean
          description: Whether this log event is scoped to a site
          readOnly: true
        id:
          type: string
          description: Unique identifier of the log event
          contentEncoding: uuid
          readOnly: true
          examples:
          - 53f10664-3ce8-4c27-b382-0ef66432349f
        message:
          type: string
          description: Human-readable log message describing the event
          readOnly: true
        org_id:
          type: string
          description: Organization associated with the log event
          contentEncoding: uuid
          readOnly: true
          examples:
          - a97c1b22-a4e9-411e-9bfd-d8695a0f9e61
        site_id:
          type:
          - string
          - 'null'
          description: Site associated with the log event, if any
          contentEncoding: uuid
          readOnly: true
        src_ip:
          type: string
          description: sender source IP address
        timestamp:
          type: number
          description: Time when the log event occurred
          readOnly: true
      description: Audit log event recorded for an organization or site
    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_log_search:
      title: response_log_search
      required:
      - end
      - limit
      - results
      - start
      - total
      type: object
      properties:
        end:
          type: integer
          description: Epoch timestamp for the end of the audit log search window
          contentEncoding: int32
        limit:
          type: integer
          description: Maximum number of audit log events returned in this page
          contentEncoding: int32
        next:
          type: string
          description: Pagination cursor or URL for retrieving the next page of audit log events
        results:
          uniqueItems: true
          type: array
          items:
            $ref: '#/components/schemas/log_event'
          description: Audit log events matching the search filters
        start:
          type: integer
          description: Epoch timestamp for the start of the audit log search window
          contentEncoding: int32
        total:
          type: integer
          description: Number of audit log events matching the search filters across all pages
          contentEncoding: int32
      description: Paginated response for audit log search results
    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
    list_msp_logs_sort:
      title: list_msp_logs_sort
      enum:
      - -timestamp
      - admin_id
      - site_id
      - timestamp
      type: string
      description: 'enum: `-timestamp`, `admin_id`, `site_id`, `timestamp`'
  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