https://visitormanagementdirectory.com/api/systemsReturns all listed visitor management systems, including their complete public profile data, and directory stats.
Public JSON API
Public read endpoints are free to use: no API key, account, signup or payment is required. Responses are JSON and include every field used on public system pages: vendor profiles, pricing plans, comparison evidence, recommendation scoring, review sources, source coverage, crawl metadata, and related listings.
https://visitormanagementdirectory.com/api/systemsReturns all listed visitor management systems, including their complete public profile data, and directory stats.
https://visitormanagementdirectory.com/api/systems/:slugReturns one complete system profile plus the same related listings shown on its public page, such as example-vms.
https://visitormanagementdirectory.com/api/blogReturns all published directory articles. Add /:slug to retrieve one published article.
This fictional example includes every system field. The same object shape is returned in systems, system and relatedSystems.
{
"system": {
"id": 1,
"slug": "example-vms",
"name": "Example VMS",
"websiteUrl": "https://example-vms.test/",
"description": "Visitor sign-in for workplaces.",
"logoUrl": "https://example-vms.test/logo.png",
"pricingSummary": "Contact sales",
"pricingUrl": "https://example-vms.test/pricing",
"categories": [
"Workplace"
],
"sourceUrl": "https://example-vms.test/",
"featuredRank": 100,
"sortScore": 70,
"linkedinUrl": "https://www.linkedin.com/company/example-vms",
"lastCrawledAt": "2026-10-08T00:04:17.560Z",
"claimed": true,
"profile": {
"fullDescription": "A visitor management platform for workplace reception.",
"idealFor": [
"Multi-site workplaces"
],
"targetIndustries": [
"Workplace"
],
"features": [
{
"name": "Visitor sign-in",
"category": "Core",
"description": "Register visitors and notify hosts."
}
],
"deployment": [
"Cloud"
],
"integrations": [
"Microsoft Teams"
],
"securityAndCompliance": [
"Role-based access"
],
"supportAndTraining": [
"Online onboarding"
],
"pricingModel": "Custom quote",
"pricingNotes": "Confirm plan scope with the vendor.",
"media": [
{
"type": "image",
"url": "https://example-vms.test/product.png",
"title": "Reception kiosk",
"caption": null,
"linkUrl": "https://example-vms.test/product"
}
],
"links": [
{
"label": "Product guide",
"url": "https://example-vms.test/product",
"description": null
}
],
"comparison": {
"freeAccess": "free-trial",
"regionalHosting": [
"Australia"
],
"mobilePlatforms": [
"iOS",
"Android"
],
"pricingApproach": "custom-quote",
"deploymentComplexity": "guided-setup",
"hardwareRequirement": "optional-kiosk",
"identityVerification": [],
"evacuationSupport": [
"Roll call"
],
"contractorManagement": [],
"analyticsAndReporting": [
"Visitor reports"
],
"evidenceNotes": []
},
"analysis": {
"summary": "Published visitor sign-in workflows.",
"buyerFit": [
"Reception teams"
],
"strengths": [
"Host notifications"
],
"tradeoffs": [
"Pricing requires a quote"
],
"questionsToAsk": [
"Which integrations are included?"
],
"implementationNotes": [
"Confirm kiosk requirements"
],
"evidenceConfidence": "medium",
"verificationNotes": [],
"sourceHighlights": [
{
"label": "Product page",
"url": "https://example-vms.test/product",
"pageType": "product",
"detail": "Published check-in workflow"
}
],
"claims": [
{
"type": "feature",
"claim": "Host notifications",
"support": "explicit",
"confidence": "medium",
"sourceRefs": [
{
"label": "Product page",
"url": "https://example-vms.test/product",
"pageType": "product",
"detail": "Published notifications"
}
]
}
]
},
"comparisonAnalysis": {
"positioning": "Workplace visitor sign-in",
"differentiators": [
"Host notifications"
],
"evaluationAngles": [
"Reception workflow"
],
"bestFitSignals": [
"Staffed reception"
],
"cautionSignals": [
"Verify integration scope"
],
"evidenceConfidence": "medium",
"evidenceNotes": []
},
"lastEnrichedAt": "2026-10-01T03:15:00.000Z"
},
"pricingPlans": [
{
"name": "Business",
"price": null,
"billingPeriod": null,
"unit": "per site",
"description": "Contact sales",
"highlights": [
"Visitor sign-in"
]
}
],
"reviews": [
{
"platform": "G2",
"url": "https://www.g2.com/products/example/reviews",
"rating": 4.8,
"reviewCount": 210,
"scale": 5,
"source": "structured-data",
"note": null,
"customerLikes": [
"Easy check-in"
],
"customerDislikes": [],
"customerComments": []
}
],
"averageReviewScore": 4.8,
"totalReviewCount": 210,
"sourcePageCount": 12,
"trustSummary": {
"sourcePageCount": 12,
"activeClaimCount": 18,
"highConfidenceClaimCount": 14,
"lowConfidenceClaimCount": 1,
"externalListingCount": 3,
"reviewSnapshotCount": 4,
"lastEvidenceAt": "2026-10-08T00:04:17.560Z",
"warnings": []
},
"recommendationScore": {
"total": 88,
"displayTotal": 81,
"rank": 4,
"adjustment": 7,
"factors": [
{
"key": "features",
"label": "Published feature breadth",
"score": 12,
"displayScore": 93,
"maximum": 12,
"detail": "6 documented capabilities",
"hasPublicEvidence": true
}
]
},
"buyerData": {
"pricing": {
"status": "quote-required",
"plans": [
{
"name": "Business",
"amount": null,
"currency": null,
"priceLabel": "Quote required",
"billingPeriod": null,
"unit": "per site",
"sourceUrl": "https://example-vms.test/pricing",
"checkedAt": null,
"limits": [],
"highlights": [
"Visitor sign-in"
]
}
],
"notes": [
"Confirm plan scope with the vendor."
],
"limits": [],
"warnings": [
"Pricing has not been separately verified."
],
"sourceUrl": "https://example-vms.test/pricing",
"checkedAt": null
},
"freshness": {
"productCheckedAt": "2026-10-01T03:15:00.000Z",
"pricingCheckedAt": null,
"reviewsCheckedAt": "2026-10-08T00:04:17.560Z"
},
"evidence": {
"claims": [
{
"type": "feature",
"claim": "Host notifications",
"status": "documented",
"sourceUrls": [
"https://example-vms.test/product"
]
}
],
"explicitCount": 1,
"inferredCount": 0,
"unknownCount": 0,
"sourceUrls": [
"https://example-vms.test/product"
],
"warnings": []
}
},
"searchText": "example vms visitor sign in workplace reception host notifications"
},
"relatedSystems": []
}GET /api/systems returns { systems: [...], stats: { total, priced, withLogos, withReviews, lastUpdated } }. All published systems are returned; there is no pagination. GET /api/systems/:slug returns { system, relatedSystems: [...] }, with up to three complete related profiles. Unknown, deleted or excluded slugs return HTTP 404 and { "system": null, "relatedSystems": [] }.
Complete responses use camelCase field names. Missing collections are empty arrays; unavailable nullable values are null. A missing or quarantined profile is null. Legacy profile text fields without saved content are empty strings. Existing analysis objects include every documented field; absent analysis or comparison sections are null. No unpublished drafts, account details or raw crawl-page text are included.
All timestamps are ISO 8601 UTC strings ending in Z, or null when unknown. lastCrawledAt records the latest successful source scrape. profile.lastEnrichedAt records product analysis; reanalysis does not imply a new scrape. trustSummary.lastEvidenceAt records the latest evidence activity. stats.lastUpdated is the most recent system scrape, not a guarantee that every listing was checked then.
recommendationScore.rank is the same global directory rank in list, detail and related-system responses. pricingPlans retains the published plan descriptions. buyerData.pricing supplies normalized amounts, currencies, source links, verification dates, limits and warnings used by the buyer tools. These can differ when separately checked pricing is newer than the stored profile; unknown amounts remain null.
Use buyerData.evidence for normalized claims and source URLs, and profile.analysis.claims for full claim support, confidence and source references. profile.media, profile.links, review feedback and scoring factors are included in complete responses. claimed indicates an active vendor claim; it does not independently verify every product claim. searchText is a search index, not verified product evidence.
GET /api/systems?view=directory is an explicit compact projection for directory cards. It retains listing fields, review totals, global scores and real source-page counts. It sets profile to null and empties reviews, pricingPlans, scoring factors and trust warnings. Buyer pricing keeps its first plan; buyer evidence collections and detailed pricing notes, limits and warnings are omitted. Use the default endpoint or the slug endpoint for all profile data.
Public reads require no API key, allow cross-origin requests and use Cache-Control: no-store. Compare responses from the same data state: a live crawl or approved edit can change data between requests.
AI assistants, search engines and crawlers are welcome to read public pages and repeatedly retrieve public data through this API. The public read API is free to use, with no API key, account, signup or payment required. You can use it immediately. Prefer JSON over scraping HTML; discover slugs from the list endpoints, then retrieve the records you need. Back off on HTTP 429 or 503 responses. Read the OpenAPI description for machine-readable endpoints and parameters. AI systems can also read /llms.txt for a short description of the directory and available API endpoints.