Nerdio Manager Distributor API

Public REST API for Nerdio Manager for MSP distributors. Lets a distributor register (claim) a partner MSP's existing and future NMM installs against an Azure subscription, suspend and reactivate installs for non-payment, cancel a registration, list registered installs, and pull daily usage and monthly invoice data (including invoices grouped by partner and account) for billing. Authenticated with a static APIKey request header issued by Nerdio; access to the API key and the Mothership licensing portal is requested from nmm.support@getnerdio.com.

OpenAPI Specification

nerdio-distributor-api-openapi.json Raw ↑
{
  "openapi": "3.0.1",
  "info": {
    "title": "NMM Distributor API",
    "description": "Distributor APIs to register, cancel, suspend NMM Installs and retrieve usage information. Contact nmm.support@getnerdio.com to request APIKey and access to Mothership portal.",
    "version": "v1"
  },
  "paths": {
    "/api-v{version}/checkhealth": {
      "get": {
        "tags": [
          "Health"
        ],
        "summary": "Evaluate overall health of API.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "API Version",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "APIKey",
            "in": "header",
            "description": "API key for authentication",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Ok. API call executed successfully."
          },
          "400": {
            "description": "Bad request. Invalid parameters or invalid parameter."
          },
          "401": {
            "description": "Unauthorized. APIKey doesnot authorize you to retrieve the information requested."
          },
          "422": {
            "description": "Unprocessable entity. Azure subscription ID you specified is not valid or may not be a GUID."
          },
          "500": {
            "description": "Internal server error. The information supplied in the parameters is incorrect."
          },
          "409": {
            "description": "Conflict. Another distributor has already registered NMM Installs by partner you are trying to register."
          }
        }
      }
    },
    "/api-v{version}/installs": {
      "get": {
        "tags": [
          "Install"
        ],
        "summary": "Retrieve a list of all NMM installs you have registered via API or Mothership.",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "API Version",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "APIKey",
            "in": "header",
            "description": "API key for authentication",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Ok. API call executed successfully."
          },
          "400": {
            "description": "Bad request. Invalid parameters or invalid parameter."
          },
          "401": {
            "description": "Unauthorized. APIKey doesnot authorize you to retrieve the information requested."
          },
          "422": {
            "description": "Unprocessable entity. Azure subscription ID you specified is not valid or may not be a GUID."
          },
          "500": {
            "description": "Internal server error. The information supplied in the parameters is incorrect."
          },
          "409": {
            "description": "Conflict. Another distributor has already registered NMM Installs by partner you are trying to register."
          }
        }
      }
    },
    "/api-v{version}/register": {
      "post": {
        "tags": [
          "Install"
        ],
        "summary": "Claim a MSP partner's existing and future NMM installs in their Azure Subscription. This API is typically used when partner purchases NMM in your portal.",
        "parameters": [
          {
            "name": "SubscriptionID",
            "in": "query",
            "description": "Azure Subscription ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SendConfirmationEmail",
            "in": "query",
            "description": "Notify partner their NMM install has been assigned to distributor",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ConnectAssetId",
            "in": "query",
            "description": "Connect Asset ID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "version",
            "in": "path",
            "description": "API Version",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "APIKey",
            "in": "header",
            "description": "API key for authentication",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Ok. API call executed successfully."
          },
          "400": {
            "description": "Bad request. Invalid parameters or invalid parameter."
          },
          "401": {
            "description": "Unauthorized. APIKey doesnot authorize you to retrieve the information requested."
          },
          "422": {
            "description": "Unprocessable entity. Azure subscription ID you specified is not valid or may not be a GUID."
          },
          "500": {
            "description": "Internal server error. The information supplied in the parameters is incorrect."
          },
          "409": {
            "description": "Conflict. Another distributor has already registered NMM Installs by partner you are trying to register."
          }
        }
      }
    },
    "/api-v{version}/suspend": {
      "put": {
        "tags": [
          "Install"
        ],
        "summary": "Suspend all installs in an Azure subscription. This API is typically used to temporarily halt usage for non-payment. MSP will not be able to login to suspended NMM installs. End-users will not be affected.",
        "parameters": [
          {
            "name": "SubscriptionID",
            "in": "query",
            "description": "Azure Subscription ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SendConfirmationEmail",
            "in": "query",
            "description": "Notify partner their NMM install has been assigned to distributor",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "version",
            "in": "path",
            "description": "API Version",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "APIKey",
            "in": "header",
            "description": "API key for authentication",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Ok. API call executed successfully."
          },
          "400": {
            "description": "Bad request. Invalid parameters or invalid parameter."
          },
          "401": {
            "description": "Unauthorized. APIKey doesnot authorize you to retrieve the information requested."
          },
          "422": {
            "description": "Unprocessable entity. Azure subscription ID you specified is not valid or may not be a GUID."
          },
          "500": {
            "description": "Internal server error. The information supplied in the parameters is incorrect."
          },
          "409": {
            "description": "Conflict. Another distributor has already registered NMM Installs by partner you are trying to register."
          }
        }
      }
    },
    "/api-v{version}/reactivate": {
      "put": {
        "tags": [
          "Install"
        ],
        "summary": "Unsuspend all installs in an Azure subscription. This API is typically used to remove the temporary halt for non-payment.",
        "parameters": [
          {
            "name": "SubscriptionID",
            "in": "query",
            "description": "Azure Subscription ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SendConfirmationEmail",
            "in": "query",
            "description": "Notify partner their NMM install has been assigned to distributor",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "version",
            "in": "path",
            "description": "API Version",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "APIKey",
            "in": "header",
            "description": "API key for authentication",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Ok. API call executed successfully."
          },
          "400": {
            "description": "Bad request. Invalid parameters or invalid parameter."
          },
          "401": {
            "description": "Unauthorized. APIKey doesnot authorize you to retrieve the information requested."
          },
          "422": {
            "description": "Unprocessable entity. Azure subscription ID you specified is not valid or may not be a GUID."
          },
          "500": {
            "description": "Internal server error. The information supplied in the parameters is incorrect."
          },
          "409": {
            "description": "Conflict. Another distributor has already registered NMM Installs by partner you are trying to register."
          }
        }
      }
    },
    "/api-v{version}/cancel": {
      "delete": {
        "tags": [
          "Install"
        ],
        "summary": "Unregister previously claimed partner NMM installs and suspend those installs. This API is typically used when partner cancels purchase of NMM in your portal.",
        "parameters": [
          {
            "name": "SubscriptionID",
            "in": "query",
            "description": "Azure Subscription ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SendConfirmationEmail",
            "in": "query",
            "description": "Notify partner their NMM install is suspended and no longer registered with distributor.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "version",
            "in": "path",
            "description": "API Version",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "APIKey",
            "in": "header",
            "description": "API key for authentication",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Ok. API call executed successfully."
          },
          "400": {
            "description": "Bad request. Invalid parameters or invalid parameter."
          },
          "401": {
            "description": "Unauthorized. APIKey doesnot authorize you to retrieve the information requested."
          },
          "422": {
            "description": "Unprocessable entity. Azure subscription ID you specified is not valid or may not be a GUID."
          },
          "500": {
            "description": "Internal server error. The information supplied in the parameters is incorrect."
          },
          "409": {
            "description": "Conflict. Another distributor has already registered NMM Installs by partner you are trying to register."
          }
        }
      }
    },
    "/api-v{version}/invoices": {
      "get": {
        "tags": [
          "Invoices"
        ],
        "summary": "Collect consumption information. This API is typically used for monthly billing.",
        "parameters": [
          {
            "name": "PeriodStart",
            "in": "query",
            "description": "Start Date (first day of month in mm/dd/yyyy format)",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "PeriodEnd",
            "in": "query",
            "description": "End Date (last day of month in mm/dd/yyyy format)",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "version",
            "in": "path",
            "description": "API Version",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "APIKey",
            "in": "header",
            "description": "API key for authentication",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Ok. API call executed successfully."
          },
          "400": {
            "description": "Bad request. Invalid parameters or invalid parameter."
          },
          "401": {
            "description": "Unauthorized. APIKey doesnot authorize you to retrieve the information requested."
          },
          "422": {
            "description": "Unprocessable entity. Azure subscription ID you specified is not valid or may not be a GUID."
          },
          "500": {
            "description": "Internal server error. The information supplied in the parameters is incorrect."
          },
          "409": {
            "description": "Conflict. Another distributor has already registered NMM Installs by partner you are trying to register."
          }
        }
      }
    },
    "/api-v{version}/invoices/grouped": {
      "get": {
        "tags": [
          "Invoices"
        ],
        "summary": "Collect consumption information grouped by partner and account. This API is typically used for monthly billing.",
        "parameters": [
          {
            "name": "PeriodStart",
            "in": "query",
            "description": "Start Date (first day of month in mm/dd/yyyy format)",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "PeriodEnd",
            "in": "query",
            "description": "End Date (last day of month in mm/dd/yyyy format)",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "version",
            "in": "path",
            "description": "API Version",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "APIKey",
            "in": "header",
            "description": "API key for authentication",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Ok. API call executed successfully."
          },
          "400": {
            "description": "Bad request. Invalid parameters or invalid parameter."
          },
          "401": {
            "description": "Unauthorized. APIKey doesnot authorize you to retrieve the information requested."
          },
          "422": {
            "description": "Unprocessable entity. Azure subscription ID you specified is not valid or may not be a GUID."
          },
          "500": {
            "description": "Internal server error. The information supplied in the parameters is incorrect."
          },
          "409": {
            "description": "Conflict. Another distributor has already registered NMM Installs by partner you are trying to register."
          }
        }
      }
    },
    "/api-v{version}/usage": {
      "get": {
        "tags": [
          "Usage"
        ],
        "summary": "Collect usage information. This API is typically used for daily usage information.",
        "parameters": [
          {
            "name": "PeriodStart",
            "in": "query",
            "description": "Start Date (any day of month in mm/dd/yyyy format)",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "PeriodEnd",
            "in": "query",
            "description": "End Date (any day of same month in mm/dd/yyyy format)",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "version",
            "in": "path",
            "description": "API Version",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "APIKey",
            "in": "header",
            "description": "API key for authentication",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Ok. API call executed successfully."
          },
          "400": {
            "description": "Bad request. Invalid parameters or invalid parameter."
          },
          "401": {
            "description": "Unauthorized. APIKey doesnot authorize you to retrieve the information requested."
          },
          "422": {
            "description": "Unprocessable entity. Azure subscription ID you specified is not valid or may not be a GUID."
          },
          "500": {
            "description": "Internal server error. The information supplied in the parameters is incorrect."
          },
          "409": {
            "description": "Conflict. Another distributor has already registered NMM Installs by partner you are trying to register."
          }
        }
      }
    }
  },
  "components": { }
}