Every API here is available over the APIs.io API and to AI agents over MCP.
{
"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": { }
}