npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@avantguardllc/n8n-nodes-msptools

v0.1.5

Published

AvantGuard MSPTools — device inventory, company management, billing, cost analysis, and cross-system integration intelligence for MSPs.

Readme

MSPTools n8n Node

n8n community node npm

AvantGuard MSPTools — device inventory, company management, billing, cost analysis, and cross-system integration intelligence for MSPs.

Table of Contents

Installation

Follow the n8n community node installation guide.

Or install directly via npm:

npm install @avantguardllc/n8n-nodes-msptools

Authentication

This node authenticates using an API Key.

| Setting | Value | |---------|-------| | Type | API Key | | Base URL | https://api.cloudhosted.us (editable in credentials) |

Tip: The Base URL can be changed in the credential settings if your instance uses a different host.

Resources & Operations

Base URL: https://api.cloudhosted.us

Companies

| | Endpoint | Description | |---|----------|-------------| | 🔵 GET | /api/v1/companies | List all companies | | 🟢 POST | /api/v1/companies | Create a new company | | 🔵 GET | /api/v1/companies/{id} | Get a single company | | 🟡 PUT | /api/v1/companies/{id} | Update a company | | 🟣 PATCH | /api/v1/companies/{id} | Partial update a company | | 🔵 GET | /api/v1/companies/by-link/{integrationSlug}/{externalId} | Get company by integration link external ID | | 🔵 GET | /api/v1/companies/by-link/{integrationSlug} | Search companies by integration link | | 🟢 POST | /api/v1/companies/{id}/favorite | Pin company to favorites | | 🔵 GET | /api/v1/companies/favorites | List all favorite companies | | 🔵 GET | /api/v1/companies/{id}/tags | Get all tags for a company | | 🟢 POST | /api/v1/companies/{id}/tags | Add tags to a company | | 🟡 PUT | /api/v1/companies/{id}/links/{linkId}/status | Update integration link status | | 🟢 POST | /api/v1/companies/bulk/update | Bulk update companies | | 🟢 POST | /api/v1/companies/bulk/favorite | Bulk set favorite status | | 🟢 POST | /api/v1/companies/bulk/service-tier | Bulk set service tier | | 🟢 POST | /api/v1/companies/bulk/merge | Bulk merge companies | | 🟢 POST | /api/v1/companies/bulk/merge-candidates | Get merge candidates |

Sites

| | Endpoint | Description | |---|----------|-------------| | 🔵 GET | /api/v1/companies/{companyId}/sites | List all sites for a company | | 🟢 POST | /api/v1/companies/{companyId}/sites | Create a new site | | 🔵 GET | /api/v1/companies/{companyId}/sites/{siteId} | Get a single site | | 🟡 PUT | /api/v1/companies/{companyId}/sites/{siteId} | Update a site |

Subscriptions

| | Endpoint | Description | |---|----------|-------------| | 🔵 GET | /api/v1/subscriptions | List subscriptions by company or product | | 🟢 POST | /api/v1/subscriptions | Create a new subscription | | 🔵 GET | /api/v1/subscriptions/{id} | Get a single subscription | | 🟡 PUT | /api/v1/subscriptions/{id} | Update a subscription | | 🔵 GET | /api/v1/subscriptions/{id}/history | Get quantity change history for a subscription |

Integrations

| | Endpoint | Description | |---|----------|-------------| | 🔵 GET | /api/v1/integrations | List all integrations | | 🟢 POST | /api/v1/integrations | Create a new integration | | 🔵 GET | /api/v1/integrations/{slug} | Get a single integration | | 🟡 PUT | /api/v1/integrations/{slug} | Update an integration | | 🟢 POST | /api/v1/integrations/{slug}/set-primary | Set integration as primary | | 🔵 GET | /api/v1/integrations/{slug}/export | Export integration configuration | | 🟢 POST | /api/v1/integrations/import | Import integration from exported config | | 🟢 POST | /api/v1/integrations/{slug}/clone | Clone an integration | | 🟢 POST | /api/v1/integrations/test-webhook | Test a webhook URL | | 🟢 POST | /api/v1/integrations/{slug}/test-webhook | Test webhook for a specific integration | | 🟡 PUT | /api/v1/integrations/{slug}/icon | Update integration SVG icon | | 🔴 DELETE | /api/v1/integrations/{slug}/icon | Remove integration SVG icon |

Links

| | Endpoint | Description | |---|----------|-------------| | 🔵 GET | /api/v1/companies/{companyId}/links | Get all links for a company | | 🟢 POST | /api/v1/companies/{companyId}/links | Create a link to an integration | | 🟡 PUT | /api/v1/links/{linkId} | Update a link | | 🔵 GET | /api/v1/links/{linkId}/history | Get ID change history | | 🔵 GET | /api/v1/links | Get all links across all companies |

Assets

| | Endpoint | Description | |---|----------|-------------| | 🔵 GET | /api/v1/companies/{companyId}/assets | List all assets for a company | | 🔵 GET | /api/v1/companies/{companyId}/assets/{integrationSlug} | List assets for a company within a specific integration | | 🔵 GET | /api/v1/companies/{companyId}/assets/correlated | Get correlated assets across integrations | | 🔵 GET | /api/v1/assets | List all assets across all companies | | 🔵 GET | /api/v1/assets/lookup/{integrationSlug} | Lookup an asset within an integration and show cross-integration matches | | 🟢 POST | /api/v1/assets/lookup/{integrationSlug} | Lookup an asset with an attached JSON payload | | 🔵 GET | /api/v1/assets/{assetId} | Get a single asset | | 🟣 PATCH | /api/v1/assets/{assetId} | Partial update an asset | | 🔵 GET | /api/v1/assets/{assetId}/history | Get asset presence history | | 🔵 GET | /api/v1/assets/consolidated | Get consolidated cross-integration asset view | | 🔵 GET | /api/v1/assets/unmatched | Get unmatched secondary integration assets | | 🔵 GET | /api/v1/assets/outbound-sync | Get unmatched assets enriched for outbound sync | | 🔵 GET | /api/v1/assets/{assetId}/consolidated | Get a consolidated asset with cross-integration matches | | 🔵 GET | /api/v1/assets/consolidated/lookup | Look up a consolidated asset by integration and identifier | | 🟢 POST | /api/v1/assets/bulk/set-billable | Bulk toggle billable status | | 🟢 POST | /api/v1/assets/bulk/update | Bulk update assets | | 🟢 POST | /api/v1/assets/bulk/tag | Bulk apply metadata tags to assets | | 🟢 POST | /api/v1/assets/bulk/force-consolidate | Force-consolidate two or more assets into a single group | | 🔵 GET | /api/v1/integrations/{slug}/assets/summary | Get asset summary for an integration |

Products

| | Endpoint | Description | |---|----------|-------------| | 🔵 GET | /api/v1/products | List all products | | 🟢 POST | /api/v1/products | Create a new product | | 🔵 GET | /api/v1/products/{productId} | Get a single product | | 🟡 PUT | /api/v1/products/{productId} | Update a product | | 🔵 GET | /api/v1/products/{productId}/deployed-counts | Get per-company deployed asset counts for a product | | 🔵 GET | /api/v1/integrations/{slug}/products | List products for an integration | | 🔵 GET | /api/v1/products/{productId}/bill-variance | Get bill variance history for a product |

Lookup

| | Endpoint | Description | |---|----------|-------------| | 🔵 GET | /api/v1/lookup/{integrationSlug}/{externalId} | Find company by external ID | | 🟢 POST | /api/v1/lookup/bulk | Bulk lookup companies by external IDs |

Ingest

| | Endpoint | Description | |---|----------|-------------| | 🟢 POST | /api/v1/ingest/{integrationSlug} | Receive a batch of raw company records from n8n | | 🟢 POST | /api/v1/ingest/{integrationSlug}/sample | Test field mappings on sample data without persisting | | 🟢 POST | /api/v1/ingest/{integrationSlug}/bills | Ingest a vendor bill from n8n | | 🟢 POST | /api/v1/ingest/{integrationSlug}/sell-prices | Bulk-ingest sell prices from a billing system via n8n |

Sync

| | Endpoint | Description | |---|----------|-------------| | 🟢 POST | /api/v1/sync/{integrationSlug}/trigger | Trigger a sync for an integration | | 🔵 GET | /api/v1/sync/{integrationSlug}/status | Get sync status for an integration | | 🔵 GET | /api/v1/sync/health | Get sync health overview for all integrations |

SyncSchedules

| | Endpoint | Description | |---|----------|-------------| | 🔵 GET | /api/v1/sync-schedules | List all sync schedules | | 🟢 POST | /api/v1/sync-schedules | Create a recurring sync schedule | | 🔵 GET | /api/v1/sync-schedules/{id} | Get a sync schedule by ID | | 🟡 PUT | /api/v1/sync-schedules/{id} | Update a sync schedule | | 🔴 DELETE | /api/v1/sync-schedules/{id} | Delete a sync schedule | | 🟢 POST | /api/v1/sync-schedules/{id}/toggle | Enable or disable a sync schedule | | 🟢 POST | /api/v1/sync-schedules/{id}/trigger | Manually trigger a sync schedule | | 🔵 GET | /api/v1/sync-schedules/{id}/logs | Get execution logs for a sync schedule | | 🔵 GET | /api/v1/sync-schedules/{id}/summary | Get execution summary for a sync schedule |

Matching

| | Endpoint | Description | |---|----------|-------------| | 🔵 GET | /api/v1/matching/queue | Get pending items in the matching queue | | 🔵 GET | /api/v1/matching/queue/summary | Get matching queue summary statistics | | 🟢 POST | /api/v1/matching/find | Find potential matches for an external company | | 🟢 POST | /api/v1/matching/batch | Process a batch of companies through the matching engine | | 🟢 POST | /api/v1/matching/queue/{queueItemId}/resolve | Resolve a matching queue item | | 🔵 GET | /api/v1/matching/score/{companyId} | Get detailed score breakdown for a potential match |

Duplicates

| | Endpoint | Description | |---|----------|-------------| | 🔵 GET | /api/v1/duplicates | List pending duplicate candidates | | 🔵 GET | /api/v1/duplicates/summary | Get duplicate detection summary statistics | | 🟢 POST | /api/v1/duplicates/scan | Trigger an on-demand duplicate detection scan | | 🟢 POST | /api/v1/duplicates/{duplicateId}/dismiss | Dismiss a duplicate candidate | | 🟢 POST | /api/v1/duplicates/{duplicateId}/merge | Merge duplicate companies | | 🟢 POST | /api/v1/duplicates/check | Check if two specific companies might be duplicates |

Billing

| | Endpoint | Description | |---|----------|-------------| | 🔵 GET | /api/v1/billing | List monthly bills | | 🟢 POST | /api/v1/billing | Record a monthly bill | | 🟢 POST | /api/v1/billing/bulk | Record multiple monthly bills | | 🔵 GET | /api/v1/billing/{billId} | Get a single bill | | 🟡 PUT | /api/v1/billing/{billId} | Update a monthly bill | | 🟢 POST | /api/v1/billing/{billId}/assets | Link assets to a bill | | 🟢 POST | /api/v1/billing/{billId}/assets/auto | Auto-link assets to a bill |

CostAnalysis

| | Endpoint | Description | |---|----------|-------------| | 🔵 GET | /api/v1/cost/company/{uuid} | Get cost summary for a company | | 🔵 GET | /api/v1/cost/product/{productId} | Get cost breakdown for a product | | 🔵 GET | /api/v1/cost/integration/{slug} | Get cost summary for an integration | | 🔵 GET | /api/v1/cost/overview | Get global cost overview | | 🔵 GET | /api/v1/cost/compare | Compare costs between two periods |

SellPrices

| | Endpoint | Description | |---|----------|-------------| | 🔵 GET | /api/v1/sell-prices/product/{productId} | Get sell prices for a product | | 🔵 GET | /api/v1/sell-prices/company/{uuid} | Get sell prices for a company | | 🟢 POST | /api/v1/sell-prices | Set a sell price | | 🟡 PUT | /api/v1/sell-prices/{sellPriceId} | Update a sell price |

LicenseCompliance

| | Endpoint | Description | |---|----------|-------------| | 🔵 GET | /api/v1/license-compliance/overview | Get global license compliance overview | | 🔵 GET | /api/v1/license-compliance/product/{productId} | Get compliance for a product | | 🔵 GET | /api/v1/license-compliance/company/{uuid} | Get compliance for a company | | 🟢 POST | /api/v1/license-compliance/refresh | Recalculate all compliance statuses | | 🔵 GET | /api/v1/license-compliance/entitlements | List license entitlements | | 🟢 POST | /api/v1/license-compliance/entitlements | Set a license entitlement | | 🔵 GET | /api/v1/license-compliance/entitlements/{entitlementId} | Get a single license entitlement | | 🟡 PUT | /api/v1/license-compliance/entitlements/{entitlementId} | Update a license entitlement |

OutboundBillingSync

| | Endpoint | Description | |---|----------|-------------| | 🔵 GET | /api/v1/billing-sync/line-items | Get billing sync line items | | 🔵 GET | /api/v1/billing-sync/line-items/product/{productId} | Get billing sync line items for a product | | 🔵 GET | /api/v1/billing-sync/line-items/company/{uuid} | Get billing sync line items for a company | | 🔵 GET | /api/v1/billing-sync/line-items/integration/{slug} | Get billing sync line items for an integration | | 🔵 GET | /api/v1/billing-sync/summary | Get billing sync summary |

VendorBills

| | Endpoint | Description | |---|----------|-------------| | 🔵 GET | /api/v1/vendor-bills | List vendor bills with optional filters | | 🟢 POST | /api/v1/vendor-bills | Create a vendor bill manually | | 🔵 GET | /api/v1/vendor-bills/{id} | Get a vendor bill with all line items | | 🟡 PUT | /api/v1/vendor-bills/{id} | Update a vendor bill's status, notes, or bill number | | 🟢 POST | /api/v1/vendor-bills/{id}/line-items | Add a line item to a vendor bill | | 🔴 DELETE | /api/v1/vendor-bills/{id}/line-items/{lineId} | Remove a line item from a vendor bill | | 🟣 PATCH | /api/v1/vendor-bills/{id}/line-items/{lineId}/match | Match an unmatched line item to a product | | 🟢 POST | /api/v1/vendor-bills/bulk-status | Bulk update the status of multiple vendor bills | | 🟢 POST | /api/v1/vendor-bills/merge | Merge multiple vendor bills into one (first ID is primary) | | 🔵 GET | /api/v1/vendor-bills/{id}/variance | Get billed vs consumed variance report for a bill |

Contracts

| | Endpoint | Description | |---|----------|-------------| | 🔵 GET | /api/v1/contracts | List all contracts | | 🟢 POST | /api/v1/contracts | Create a contract | | 🔵 GET | /api/v1/contracts/upcoming-renewals | List upcoming contract renewals | | 🔵 GET | /api/v1/contracts/{contractId} | Get a single contract | | 🟡 PUT | /api/v1/contracts/{contractId} | Update a contract | | 🟢 POST | /api/v1/contracts/{contractId}/renew | Renew a contract |

MarginAnalysis

| | Endpoint | Description | |---|----------|-------------| | 🔵 GET | /api/v1/margin/overview | Get global margin overview | | 🔵 GET | /api/v1/margin/company/{uuid} | Get margin report for a company | | 🔵 GET | /api/v1/margin/product/{productId} | Get margin breakdown for a product |

BillingForecast

| | Endpoint | Description | |---|----------|-------------| | 🔵 GET | /api/v1/forecast/overview | Get global forecast summary | | 🔵 GET | /api/v1/forecast/company/{uuid} | Get forecast for a company | | 🔵 GET | /api/v1/forecast/product/{productId} | Get forecast for a product | | 🔵 GET | /api/v1/forecast/integration/{slug} | Get forecast for an integration | | 🟢 POST | /api/v1/forecast/refresh | Refresh all forecasts |

CostAllocation

| | Endpoint | Description | |---|----------|-------------| | 🔵 GET | /api/v1/cost-allocation/rules | List all cost allocation rules | | 🟢 POST | /api/v1/cost-allocation/rules | Create a cost allocation rule | | 🔵 GET | /api/v1/cost-allocation/rules/{ruleId} | Get a cost allocation rule | | 🟡 PUT | /api/v1/cost-allocation/rules/{ruleId} | Update a cost allocation rule | | 🟢 POST | /api/v1/cost-allocation/rules/{ruleId}/calculate | Calculate allocation for a rule | | 🔵 GET | /api/v1/cost-allocation/results | Get allocation results | | 🔵 GET | /api/v1/cost-allocation/chargeback/{period} | Get chargeback report for a period |

Reconciliation

| | Endpoint | Description | |---|----------|-------------| | 🔵 GET | /api/v1/reconciliation/company/{uuid} | Get reconciliation report for a company | | 🔵 GET | /api/v1/reconciliation/integration/{slug} | Get reconciliation report for an integration | | 🔵 GET | /api/v1/reconciliation/overview | Get global reconciliation overview |

Webhooks

| | Endpoint | Description | |---|----------|-------------| | 🔵 GET | /api/v1/webhooks | List all webhook subscriptions | | 🟢 POST | /api/v1/webhooks | Create a webhook subscription | | 🔵 GET | /api/v1/webhooks/{webhookId} | Get a webhook subscription | | 🟡 PUT | /api/v1/webhooks/{webhookId} | Update a webhook subscription | | 🟢 POST | /api/v1/webhooks/{webhookId}/test | Test a webhook | | 🔵 GET | /api/v1/webhooks/{webhookId}/deliveries | Get delivery logs for a webhook | | 🔵 GET | /api/v1/webhooks/event-types | List supported webhook event types |

WebhookEvaluation

| | Endpoint | Description | |---|----------|-------------| | 🟢 POST | /api/v1/webhooks/evaluate/all | Run all webhook evaluations | | 🟢 POST | /api/v1/webhooks/evaluate/contracts | Evaluate contract renewals | | 🟢 POST | /api/v1/webhooks/evaluate/utilisation | Evaluate utilisation thresholds | | 🟢 POST | /api/v1/webhooks/evaluate/sync-stale | Evaluate stale syncs | | 🟢 POST | /api/v1/webhooks/evaluate/compliance | Evaluate license compliance | | 🟢 POST | /api/v1/webhooks/evaluate/reconciliation | Evaluate reconciliation gaps |

SyncLogs

| | Endpoint | Description | |---|----------|-------------| | 🔵 GET | /api/v1/sync-logs/integrations/{integrationId}/runs | Get sync runs for an integration | | 🔵 GET | /api/v1/sync-logs/runs/{syncRunId} | Get sync run details | | 🔵 GET | /api/v1/sync-logs/runs/{syncRunId}/logs | Get logs for a sync run | | 🔵 GET | /api/v1/sync-logs/integrations/{integrationId}/history/{externalId} | Get sync log history for an external ID |

Export

| | Endpoint | Description | |---|----------|-------------| | 🔵 GET | /api/v1/export | List recent export jobs | | 🟢 POST | /api/v1/export | Create full tenant data export | | 🔵 GET | /api/v1/export/{exportId} | Get export job details | | 🔵 GET | /api/v1/export/{exportId}/status | Get export job status | | 🔵 GET | /api/v1/export/{exportId}/download | Download completed export | | 🟢 POST | /api/v1/export/companies | Export companies list | | 🟢 POST | /api/v1/export/assets | Export assets list | | 🟢 POST | /api/v1/export/products | Export products list | | 🟢 POST | /api/v1/export/billing | Export billing records | | 🟢 POST | /api/v1/export/cost-analysis | Export cost analysis report | | 🟢 POST | /api/v1/export/margin | Export margin report | | 🟢 POST | /api/v1/export/company-mappings | Export company-to-integration mappings | | 🟢 POST | /api/v1/export/forecast | Export billing forecast | | 🟢 POST | /api/v1/export/audit-log | Export audit log | | 🟢 POST | /api/v1/export/reconciliation | Export reconciliation report | | 🟢 POST | /api/v1/export/chargeback | Export chargeback report | | 🟢 POST | /api/v1/export/license-compliance | Export license compliance report |

APIKeys

| | Endpoint | Description | |---|----------|-------------| | 🔵 GET | /api/v1/api-keys | List all API keys | | 🟢 POST | /api/v1/api-keys | Create a new API key (full key returned once) |

ApiKeys

| | Endpoint | Description | |---|----------|-------------| | 🟣 PATCH | /api/v1/api-keys/{id} | Update an API key's name and scopes |

ActivityLogs

| | Endpoint | Description | |---|----------|-------------| | 🔵 GET | /api/v1/activity-logs | Query the activity log |

ScheduledReports

| | Endpoint | Description | |---|----------|-------------| | 🔵 GET | /api/v1/reports | List all scheduled report subscriptions | | 🟢 POST | /api/v1/reports | Create a scheduled report subscription (type, cron, delivery URL, config) | | 🔵 GET | /api/v1/reports/{reportId} | Get a single scheduled report subscription with last delivery info | | 🟡 PUT | /api/v1/reports/{reportId} | Update report config / schedule / delivery URL | | 🔴 DELETE | /api/v1/reports/{reportId} | Remove a report subscription | | 🟢 POST | /api/v1/reports/{reportId}/send-now | Trigger an immediate delivery of the report | | 🔵 GET | /api/v1/reports/{reportId}/preview | Preview the rendered report payload without sending |

DataRetention

| | Endpoint | Description | |---|----------|-------------| | 🔵 GET | /api/v1/settings/retention | Get current data retention policies | | 🟢 POST | /api/v1/settings/retention | Create a new retention policy for a table | | 🟡 PUT | /api/v1/settings/retention | Update retention policies (per-table retention days, enabled/disabled) | | 🔵 GET | /api/v1/settings/retention/{targetTable} | Get a single retention policy by target table name | | 🟡 PUT | /api/v1/settings/retention/{policyId} | Update a single retention policy |

Tags

| | Endpoint | Description | |---|----------|-------------| | 🔵 GET | /api/v1/tags | Get all unique tags with usage statistics | | 🟢 POST | /api/v1/tags | Create a new tag definition | | 🔵 GET | /api/v1/tags/labels | Get all unique tag labels | | 🟡 PUT | /api/v1/tags/{label} | Rename a tag across all companies | | 🔵 GET | /api/v1/tags/{label}/companies | Get all company IDs that have a specific tag | | 🟢 POST | /api/v1/tags/bulk/apply | Apply tags to multiple companies |

Compatibility

  • n8n version: 1.0+ (tested on 2.x)
  • Node.js version: 18+

License

MIT