Everything published on MSP Software is also available to machines: a read-only JSON API, two Atom feeds, an llms.txt file, and an MCP server for AI agents and answer engines. All of them read from the same data as the pages, all of them are free, and none of them need an API key.
The API is versioned at /api/v1. Every response is JSON with a {data, meta} envelope, snake_case fields and ISO 8601 dates. Every
response carries Cache-Control: public, max-age=300, Access-Control-Allow-Origin: * and X-Robots-Tag: noindex. There
is no authentication and no write endpoint. A missing resource returns HTTP 404 with {error: {code, message}}.
Everything is addressed by slug: the product, category or vendor name in lower case with
hyphens, the same slug the page URL uses, so https://mspsoftware.net/software/ninjaone and https://mspsoftware.net/api/v1/software/ninjaone are the same listing. Search by name with /api/v1/software?q= when you do not know one. Prices are integer minor units
(pence, cents) with a currency, a unit and a period.
| Method and path | Returns |
|---|---|
| GET /api/v1/categories | Every category, with its published product count |
| GET /api/v1/categories/{slug} | One category, its buying guide and FAQ, and its published products |
| GET /api/v1/software?q=&category=&page= | Search results, 20 per page, with a total count |
| GET /api/v1/software/{slug} | Summary, vendor description, our take, facts, feature list, integrations both ways, FAQ, alternatives, reported pricing, review summary and sub-ratings |
| GET /api/v1/vendors/{slug} | One vendor, the companies it owns and every published product across them |
| GET /api/v1/compare/{a}-vs-{b} | Two listings in full, the merged feature checklist and the comparison page URL |
| GET /api/v1/recent?limit= | The most recently updated listings and the most recently published reviews |
| GET /api/v1 | Redirects to the OpenAPI document |
| GET /api/v1/openapi.json | The OpenAPI 3.1 document below, machine-readable |
Reported pricing is never shown below 3 independent reporters, and it is always an
aggregate: no individual price report and no reporter's identity ever appears in a
response. Reviews work the same way: a listing's review_summary is an average,
a count and a star distribution, never an individual review.
curl "https://mspsoftware.net/api/v1/software?q=ninja"
curl https://mspsoftware.net/api/v1/software/ninjaone
curl https://mspsoftware.net/api/v1/categories/rmm The full, hand-written schema is at /api/v1/openapi.json.
/feed.xml lists published listings in order of most recently updated, and /reviews/feed.xml lists newly published reviews (rating and product only, never a reviewer's name). Both are Atom 1.0, 50 entries, cached for one hour.
/llms.txt says what the site holds, lists the categories and gives the URL patterns that reach any product, comparison or vendor. /llms-full.txt adds every listing in full, so an agent can often answer a question from this one file. Both are generated on request and cached for one hour.
One listing as Markdown is at https://mspsoftware.net/software/{slug}.md, for example /software/ninjaone.md. It carries the same facts,
features, integrations, alternatives, FAQ and review summary as the page, with a canonical Link header back to the HTML listing.
https://mspsoftware.net/mcp is a read-only MCP server (Streamable HTTP, no session, no
authentication). It offers ten tools, each returning the same JSON as the API above.
ChatGPT connectors use the search and fetch tools; every other
client can call the named tools directly.
| Tool and arguments | Returns |
|---|---|
| search (query) | Matching listings as id, title and url |
| fetch (id) | One listing as Markdown, with its vendor and category |
| list_categories | Every category, with its published listing count |
| get_category (slug) | One category, its products, buying guide and questions |
| search_software (q, category, page) | Search results, 20 per page |
| get_software (slug) | One listing in full |
| get_reported_pricing (slug) | The reported pricing aggregates for one listing |
| get_alternatives (slug, limit) | Other listings in the same category, ranked |
| compare_software (a, b) | Two listings side by side, with the feature checklist |
| recent_updates (limit) | Recently updated listings and newly published reviews |
Most MCP clients take a URL directly:
{
"mcpServers": {
"mspsoftware": {
"type": "http",
"url": "https://mspsoftware.net/mcp"
}
}
}