🇮🇪 EIIS 2026 Now Open – Tax Relief up to 50% Learn More →
Internal Spec Documentv1.0 · April 2026

KareKonnect Grow
API Developer Portal

Specification for a standalone public-facing web app simulating the developer onboarding experience for clinics wishing to access the KareKonnect Grow API. Built in Base44. Deployed at a dedicated subdomain.

vardhealth.com/KareKonnect/Grow API Portal — Spec

1. Overview

Context

Purpose: A public-facing, single-page web app that demonstrates the API sign-up and developer onboarding experience for KareKonnect Grow. No real API keys are generated. The app simulates the workflow a clinic developer would follow to gain API access — including Clinic ID validation (which always returns "not recognised" in the demo environment, intentionally).

App TypeSingle-page public web app
PlatformBase44
Target URLgrow-api.base44.app (or custom subdomain)
Auth RequiredNone — fully public
API Keys GeneratedNo — simulation only
Data StoredGrowApiRequest entity (admin-read only)
ThemeDark (consistent with DeveloperApiDemo)
Mobile ResponsiveYes

2. Page Structure

Single scrollable page

All sections appear on one scrollable page. Anchor links in the navbar jump to each section. No routing needed.

01

Navbar

Sticky top bar — Vård Health logo, product name, nav links, "Request Access" CTA

02

Hero Section

Dark gradient. Headline, subline, two CTAs: [Get API Access] → scrolls to form, [Explore Docs] → scrolls to API reference

03

Value Pillars

3 icon cards: Real-time Booking Data · Consented Patient Sync · Campaign ROI Reporting

04

API Reference (Embedded)

Full DeveloperApiDemo component (Quick Start, Auth, Patients, Bookings, Webhooks, JS SDK) — collapsed by default

05

Sign-Up Form

Request API Access — all fields, Clinic ID validation, amber warning, success banner on submit

06

Footer

Standard Vård Health footer — company info, links, legal, registered address

3. Hero Section Copy

Dark theme

PRODUCT BADGE: KareKonnect Grow · API v1 · api.grow.vardhealth.com

The Growth API for
Private Healthcare

Connect your clinic's booking data, patient consent lists, and campaign performance to any system. CRMs, data warehouses, custom dashboards, or your own app — live in under 5 minutes.

[Get API Access] → scrolls to #signup[Explore the API] → expands DeveloperApiDemo

4. Value Pillars

Real-time Booking Data

Live appointment, revenue, and attribution data via REST. Filter by location, clinician, speciality, or date range.

Consented Patient Sync

GDPR-compliant patient lists with consent timestamps. Sync directly to your CRM or data warehouse.

Campaign ROI Reporting

Connect ad spend to booked appointments automatically. Google Ads, Meta, and more — attributed to the appointment.

5. Embedded API Reference

Embed the existing DeveloperApiDemo component exactly as-is:

tsx
import DeveloperApiDemo from '@/components/karekonnect/DeveloperApiDemo';

// Renders full tabbed API reference:
// Quick Start · Authentication · Patient List · Bookings · Webhooks · JS SDK
<DeveloperApiDemo />

Implementation note

The component renders collapsed by default. The "NOT FOR PRODUCTION" footer badge should remain visible — this is correct for the demo context.

6. Sign-Up Form Fields

Section: #signup

Section heading:

"Request API Access"

Subheading: "Complete the form below. Your Clinic ID is required to validate your account. Contact your Vård Account Manager if you don't have one."

Full NameRequired
text

Placeholder: e.g. Sipho Dlamini

Email AddressRequired
email

Placeholder: work email preferred

Job Title
text

Placeholder: e.g. CTO, Practice Manager, Developer

Clinic / Organisation NameRequired
text

Placeholder: e.g. Cape EV Centre

Clinic IDRequired
text

Placeholder: e.g. prc_01ZA_CPT_EYE

⚠️ Validation: on blur → always shows amber warning: 'Clinic ID not recognised. Please contact your Vård Account Contact for assistance, or email api@vardhealth.com'. Non-blocking — user can still submit.

Intended UseRequired
textarea

Placeholder: Brief description of your integration purpose

Agree to API TermsRequired
checkbox

Links to /api-terms (placeholder page is fine)

7. Clinic ID Validation Logic

Key behaviour

Trigger

Fires onBlur when user leaves the Clinic ID field, AND again on form submit.

Displayed message (always)

⚠️ "Clinic ID not recognised. Please contact your Vård Account Contact for assistance, or email api@vardhealth.com"

Visual treatment

  • Field border → amber (border-amber-400)
  • Icon → warning triangle (amber)
  • NOT red — this is advisory, not a format error
  • Inline message below field in amber text

Submit behaviour

  • Clinic ID warning does NOT block submission
  • Only required field validation blocks submit
  • On submit → store to entity + show success banner
  • Form resets after success

8. Submit Behaviour

Success banner (full width, shown after submit)

✅ "Your request has been received. A member of the Vård team will be in touch within 1 business day to complete your API onboarding."

On submitWrite record to GrowApiRequest entity
After writeShow success banner, reset form
Email confirmationOut of scope for v1 (can add Resend later)
Error handlingShow inline error if entity write fails

9. Entity Schema: GrowApiRequest

Base44 Entity
json
{
  "name": "GrowApiRequest",
  "type": "object",
  "properties": {
    "fullName":    { "type": "string",   "description": "Applicant full name" },
    "email":       { "type": "string",   "format": "email" },
    "jobTitle":    { "type": "string",   "description": "e.g. CTO, Developer, Practice Manager" },
    "clinicName":  { "type": "string",   "description": "Clinic or organisation name" },
    "clinicId":    { "type": "string",   "description": "Attempted Clinic ID (always unrecognised in demo)" },
    "intendedUse": { "type": "string",   "description": "What the developer plans to build" },
    "submittedAt": { "type": "string",   "format": "date-time" }
  },
  "required": ["fullName", "email", "clinicName", "intendedUse"],
  "rls": {
    "create": true,
    "read":  { "user_condition": { "role": "admin" } },
    "write": { "user_condition": { "role": "admin" } }
  }
}

Admin can view all submissions in the Base44 backoffice via the GrowApiRequest entity — no custom admin UI needed.

10. Design Tokens & Branding

Colours

Page background#030712
Section alt#111827
API accent#4ade80
CTA / brand (Vård navy)#1d3a78
Clinic ID warning#f59e0b
Form card#ffffff

Typography & Components

FontInter / system-ui (same as vardhealth.com)
Hero headlinetext-4xl–5xl font-bold
Section headingtext-2xl font-bold
Bodytext-sm text-gray-600
Code blocksfont-mono text-xs, dark bg
Buttonsrounded-lg, solid blue primary / ghost secondary

13. Out of Scope — v1

Real API key generation
Email confirmation to applicant
Actual Clinic ID database lookup
Payment / commercial agreement flow
Admin dashboard UI (use Base44 backoffice)
Multi-page routing
User authentication / login
Rate limiting or CAPTCHA

14. Suggested Build Order

For the developer
1

Create new Base44 app

Name: "KareKonnect Grow API Portal". Public app (no login required).

2

Create GrowApiRequest entity

Use the JSON schema from Section 9. Set RLS: create=true, read/write=admin.

3

Copy DeveloperApiDemo component

From VardHealth codebase. No modifications needed.

4

Copy AppFooter component

From VardHealth codebase. Update links to use external href.

5

Build GrowApiPortal page

Single page with all 6 sections. Wire form to GrowApiRequest.create().

6

Implement Clinic ID validation

onBlur → set clinicIdWarning=true. Amber border + message. Non-blocking.

7

Test & screenshot

Test each form state. Take screenshots per the LinkedIn carousel order.