NEST VMS API documentation

Reference for the public content API. Read-only, unauthenticated, JSON everywhere.

Getting started

Base URL: https://nestvms.com/api/v1

Authentication: none. Every endpoint in this API is public and read-only. Do not send credentials to it.

Content type: all responses are application/json; charset=utf-8, including errors. Responses are served with Vary: Accept, Accept-Encoding and are safe to cache for five minutes.

Rate limits: no hard quota is enforced on the public content API. Please stay under roughly 60 requests per minute per client; sustained traffic above that may be throttled at the edge.

Machine-readable spec: /openapi.json (OpenAPI 3.1).

Endpoints

GET/api/v1/healthoperationId: getHealth

Liveness and version check for the public content API.

Returns: An object with status, version and the ISO-8601 server timestamp.

{
  "status": "ok",
  "version": "1.0.0",
  "timestamp": "2026-01-01T00:00:00.000Z"
}
GET/api/v1/companyoperationId: getCompany

Company identity, description, offices and contact points.

Returns: An object with name, description, url, slogan, offices[] and contactPoints[].

{
  "name": "NEST VMS",
  "url": "https://nestvms.com",
  "offices": [ { "label": "Canadian Headquarters", "addressLocality": "Edmonton" } ],
  "contactPoints": [ { "contactType": "customer support", "email": "support@nestvms.com" } ]
}
GET/api/v1/pagesoperationId: listPages

Every public page with its canonical URL, title, description and markdown URL.

Returns: An object with a pages[] array.

{
  "pages": [
    {
      "path": "/platform",
      "url": "https://nestvms.com/platform",
      "title": "Platform - NEST VMS contingent workforce management",
      "markdownUrl": "https://nestvms.com/platform.md"
    }
  ]
}
GET/api/v1/platformoperationId: getPlatform

Platform modules and the three available program models.

Returns: An object with modules[] and programModels[].

{
  "modules": [ { "id": "vms", "name": "VMS", "description": "..." } ],
  "programModels": [ { "id": "vms-only", "name": "VMS-Only" } ]
}
GET/api/v1/solutionsoperationId: getSolutions

Solutions grouped by audience, plus core capabilities and business outcomes.

Returns: An object with audiences[], capabilities[] and outcomes[].

{
  "audiences": [ { "id": "enterprises", "name": "For Enterprises" } ],
  "capabilities": [ { "id": "compliance", "name": "Compliance" } ]
}
GET/api/v1/contactoperationId: getContactRoutes

Machine-readable contact routing for support, sales, vendors, billing and contracts.

Returns: An object with contactPoints[], telephone and offices[].

{
  "email": "support@nestvms.com",
  "telephone": "+1-780-266-5636",
  "contactPoints": [ { "contactType": "sales", "email": "info@nestvms.com" } ]
}

Error format

Every error is returned as JSON with the same envelope, so a client never has to parse an HTML error page. The resolution field states what to do next and documentation links back here.

{
  "error": {
    "code": "not_found",
    "message": "No such resource: /api/v1/widgets",
    "status": 404,
    "resolution": "Call GET /api/v1/pages or load https://nestvms.com/openapi.json to see the available resources.",
    "documentation": "https://nestvms.com/docs"
  }
}
404not_foundThe requested resource path does not exist on this API.
405method_not_allowedThe HTTP method is not supported for this resource. The public content API is read-only.
406not_acceptableNo representation matching the Accept header is available.
500internal_errorAn unexpected error occurred while handling the request.

Markdown content negotiation

Every page on nestvms.com is also published as markdown. Request it either by appending .md to the path or by sending an Accept: text/markdown header. Negotiated responses carry Vary: Accept, Accept-Encoding.

curl -H "Accept: text/markdown" https://nestvms.com/solutions
curl https://nestvms.com/solutions.md

Looking for the authenticated tenant API? See the developer portal.