Designed for beauty, built for growth.
Build on the PatientNow APIs
REST APIs for med-spa and aesthetics practices. Read and write customers, appointments, services, treatments and more — the same data that powers PatientNow. Pick the API for your product and make your first call in minutes.
Choose your API
Two APIs on the same platform. They share authentication and conventions — pick the one that matches your product.
PatientNow Essentials (PNE)
The full customer-facing API: customers, scheduling, clinical & treatments, commerce & inventory, staff, and event webhooks.
VISH
A slimmed-down API customized for VISH customers — a focused subset covering appointments, companies, employees, services, orders and formulas.
What you can build
Customer experiences
Sync patient records, look up profiles, manage contact and marketing opt-ins, and power your own booking front-ends.
Scheduling
Read appointments, find available time slots by provider and service, check customers in, and start or complete services.
Clinical & treatments
Capture SOAP notes, injections, laser treatments, vitals, allergies, medications and chronic conditions.
Commerce & inventory
Manage products, services, packages, memberships, gift certificates, orders, coupons and purchase orders.
Staff & operations
Work with employees, departments, time cards, goals, security profiles and work schedules.
Event webhooks
Register webhooks to be notified when data changes, so your integration stays in sync without polling.
From zero to first call
Three steps, under ten minutes.
Get credentials
Use a PatientNow Essentials username and password authorized for API access. How auth works →
Send both credentials
Add your gateway apikey to the query string, and send
Base64 username:password as an HTTP Basic
Authorization header.
Call an endpoint
Hit GET /api/v1/status to confirm connectivity, then read
your customers and appointments. Quickstart →
Your first request
# Confirm connectivity and authentication (apikey + Basic credentials)
curl "https://api.envisiongo.com/api/v1/status?apikey=YOUR_API_KEY" \
-H "Authorization: Basic $(printf 'USERNAME:PASSWORD' | base64)"const token = btoa("USERNAME:PASSWORD");
const res = await fetch(
"https://api.envisiongo.com/api/v1/status?apikey=YOUR_API_KEY",
{ headers: { Authorization: `Basic ${token}` } }
);
console.log(await res.json());import requests
from requests.auth import HTTPBasicAuth
res = requests.get(
"https://api.envisiongo.com/api/v1/status",
params={"apikey": "YOUR_API_KEY"},
auth=HTTPBasicAuth("USERNAME", "PASSWORD"),
)
print(res.json())Both APIs share the base URL https://api.envisiongo.com/api/v1;
your gateway apikey determines which one you reach. The example
above uses PNE's status endpoint — VISH has none, so its first call
is GET /api/v1/companies (see the
VISH quickstart). See
Base URL.
Keep exploring
Quickstart
The fastest path to a working, authenticated call.
Start building →Authentication
Credentials, the Basic scheme, and common 401 pitfalls.
Get authenticated →Guides & concepts
Pagination, filtering, IDs, dates, and error handling.
Learn the patterns →Recipes
End-to-end workflows: a customer 360, booking a visit, ringing up a sale.
Follow a workflow →API reference
Every resource, grouped by area, with examples — for PNE and VISH.
Browse endpoints →