Developer Integration Guide

Run Welldesk under your own brand and domain, or connect your own website/systems to your Welldesk account's REST API -- no coding required for the first part.

1. White-label your portal: your own domain, logo & colors

You don't need a developer for this part. Two settings screens in your Welldesk account -- both reachable from your main left-hand menu once you're signed in -- let you run Welldesk under your own web address, with your own logo and colors, for both your public site and the portal your staff and members sign into.

Step 1 -- Your free address (already live, nothing to set up)

Every Welldesk account already has its own address, live from day one: yourgym.welldesk.net. Share this with members today -- you don't need a custom domain to get started, and this address keeps working forever, even after you add your own domain below.

Step 2 -- Connect a domain you already own (optional)

If you'd rather your members visit www.yourgym.com (a domain or subdomain you already own), connecting it takes a few minutes:

  1. Buying a new domain name isn't something you do in Welldesk -- if you don't already own one, buy it first from any domain registrar (e.g. GoDaddy, Namecheap, Google Domains). The steps below only CONNECT a domain you already own; they don't register a new one.
  2. In Welldesk, open Developer → Domains from your main menu, type your domain (e.g. www.yourgym.com) and click "Add".
  3. Welldesk shows you one TXT record to add at your domain registrar (wherever you bought the domain, in its DNS settings) -- copy the exact name and value shown and paste them in there. This step only proves you own the domain; your registrar's own help pages walk through "adding a DNS TXT record" if you're not sure where that screen is.
  4. Back in Welldesk, click "Verify now". DNS changes can take anywhere from a few minutes to a few hours to take effect -- if it doesn't verify immediately, wait a little and try again.
  5. Once it shows "Verified", click "Set as primary" so it becomes your main address. Your free yourgym.welldesk.net address from Step 1 keeps working the whole time and afterwards, so members never lose access if a domain ever lapses.

Adding an on-brand domain that isn't already pointed at a website is generally the smoothest path. If your domain currently sends traffic somewhere else, ask us to help finish connecting it once you reach the verification step above.

Step 3 -- Add your logo and brand colors

From your main menu, open Settings → Identity & Branding → the Branding tab. Upload your logo, pick your primary and accent colors, choose fonts, then click Publish.

Once published, your logo and colors automatically apply everywhere a visitor reaches you through your Welldesk address (your yourgym.welldesk.net subdomain, or your connected domain once verified) -- your public booking pages, the sign-in screen, and the portal your staff and members see after they log in. There's nothing else to configure: it's based on which address someone visits, not a separate step per screen.

What to expect

  • A member visiting your domain sees your logo/colors on your public site, on the sign-in screen, and inside the portal once they're logged in.
  • Logging in itself still works the same everywhere -- a member's email and password sign them in to their own account regardless of which of your addresses they used to get there.
  • Settings → Identity & Branding also has separate "Colors"/"Typography"/"Identity" tabs -- those only preview a look on your own browser and are not what your members see; use the Branding tab (with Publish) for anything you want members to actually see.

2. Getting started with the API

Every Welldesk tenant can integrate its own website or backend systems with the same REST API this app itself uses. You'll need: an active Welldesk account, a scoped API token, and (for browser-based calls) your website's origin added to your allowed-origins list.

Everything below is configured from your own account at Developer → API Access (sign in first).

3. Authentication & tokens

Create a scoped token from Developer → API Access -- the full token value is shown exactly once at creation; only its first 12 characters are ever retrievable again. Send it on every request as a bearer token:

Authorization: Bearer gflw_...

Scopes

  • branches:read — List the tenant's active branches
  • classes:read — Read the tenant's class catalog
  • bookings:read — Read booking records
  • bookings:write — Create/cancel bookings
  • members:read — Read member records

A token can be revoked at any time from the same console -- a revoked or expired token is rejected immediately on its next use.

4. Domain & IP whitelisting for API calls -- step by step

Calling from a browser (your website's own JavaScript)

  • Go to Developer → API Access → Allowed origins.
  • Add your site's exact origin, including scheme -- e.g. https://www.yourgym.com (no trailing slash or path).
  • Your browser calls now succeed automatically -- no deploy or waiting required.

Calling from your own server (no browser involved)

  • IP restriction is opt-in -- leave "Allowed IP ranges" empty and any IP with a valid token works.
  • To restrict further, add your server's IP (or a CIDR range) under Developer → API Access → Allowed IP ranges.

Troubleshooting

  • "My server calls are being rejected" -- check whether IP restriction is enabled (any rows under Allowed IP ranges) and whether your server's real outbound IP is listed.
  • "My browser calls are being rejected" -- your origin must match EXACTLY, including scheme and port; check for a stray www. mismatch.

5. Full API reference

Auto-generated directly from the running API's own schema -- always in sync, never hand-maintained prose.

6. Webhooks

Not yet available

Outbound webhooks (Welldesk notifying your systems of an event) aren't available yet -- for now, poll the relevant read endpoint on your own schedule.

7. Rate limits & error handling

Every error response uses the same shape: { "error": { "code": "...", "message": "..." } }.

401Missing/invalid/expired/revoked API token.
402The tenant's account is suspended or cancelled -- see your billing status.
403Token is missing the required scope, or your origin/IP is not on the allowed list.
409A conflicting resource already exists (e.g. a domain/origin already claimed).
422Request validation failed -- see the error message for the specific field.
429Rate limit exceeded -- see the Retry-After response header.

8. Code samples

curl https://api.welldesk.net/api/v1/tenant-api/branches \
  -H "Authorization: Bearer gflw_your_token_here"