API keys
Practice-scoped keys for server-to-server access on Team and Enterprise.
REST API, webhooks and integrations that speak clients, consultations, bookings and payments — not a thin forms wrapper.
Coverage
Developers immediately understand the surface area.
REST API
Authenticated endpoints for the objects your integration actually needs.
Authentication
Practice-scoped keys for server-to-server access on Team and Enterprise.
Third-party app authorisation — on the roadmap for partner integrations.
Fair-use limits per key so practices stay fast and predictable.
Separate test and live credentials when you are ready to go to production.
Webhooks
Push into Zapier, Make or your own systems as Booking and POS grow the event surface.
submission.completedappointment.createdappointment.completedbooking.cancelledclient.updatedpayment.completedpayment.failedinventory.lowgiftcard.redeemedmembership.renewedSDKs
Official clients for PHP, Laravel, JavaScript, Node, Python and C# — each ships with install instructions, working examples and a downloadable package.
Official PHP client covering the full REST surface and webhook verification.
composer require cliniform/php-sdk
# or download the zip below and require via a path repository
<?php
require 'vendor/autoload.php';
use Cliniform\Client;
$client = new Client(
apiKey: getenv('CLINIFORM_API_KEY'),
baseUrl: 'https://cliniform.co.uk/api/v1',
);
$me = $client->me();
$clients = $client->clients(search: 'smith');
foreach ($clients['data'] as $row) {
echo $row['full_name'] . PHP_EOL;
}
Laravel package with config publishing, container binding and a Cliniform facade.
composer require cliniform/laravel
php artisan vendor:publish --tag=cliniform-config
# .env
CLINIFORM_API_KEY=your_key
CLINIFORM_BASE_URL=https://cliniform.co.uk/api/v1
use Cliniform\Laravel\Facades\Cliniform;
$practice = Cliniform::me();
$clients = Cliniform::clients(search: 'smith');
return view('clients.index', [
'practice' => $practice['data'],
'clients' => $clients['data'],
]);
ESM client for trusted browser or runtime environments that support fetch.
npm install @cliniform/js
# or: npm install ./cliniform-js-sdk
import { CliniformClient } from '@cliniform/js';
const client = new CliniformClient(
import.meta.env.CLINIFORM_API_KEY,
'https://cliniform.co.uk/api/v1',
);
const me = await client.me();
const clients = await client.clients({ search: 'smith' });
console.log(me.data.name, clients.data.length);
Node 18+ SDK with ESM, CommonJS and TypeScript types, plus webhook helpers.
npm install @cliniform/node
# or: npm install ./cliniform-node-sdk
import { CliniformClient } from '@cliniform/node';
const client = new CliniformClient(process.env.CLINIFORM_API_KEY, 'https://cliniform.co.uk/api/v1');
const me = await client.me();
const clients = await client.clients({ search: 'smith' });
console.log(me.data.plan_name, clients.meta.total);
Stdlib-only Python client — no third-party HTTP dependencies required.
pip install cliniform
# or: pip install ./cliniform-python-sdk
import os
from cliniform import CliniformClient
client = CliniformClient(
os.environ["CLINIFORM_API_KEY"],
base_url="https://cliniform.co.uk/api/v1",
)
me = client.me()
clients = client.clients(search="smith")
print(me["data"]["name"], clients["meta"]["total"])
.NET 8 client with async methods and constant-time webhook verification.
dotnet add package Cliniform
# or: dotnet add reference ./cliniform-csharp-sdk/Cliniform.csproj
using Cliniform;
using var client = new CliniformClient(
Environment.GetEnvironmentVariable("CLINIFORM_API_KEY")!,
"https://cliniform.co.uk/api/v1"
);
var me = await client.MeAsync();
var clients = await client.ClientsAsync(search: "smith");
Console.WriteLine(me.GetProperty("data").GetProperty("name"));
API Explorer
Interactive docs live inside your Team or Enterprise account — with real examples against your practice data.
Browse endpoints, copy curl examples and inspect webhook payloads without leaving CliniForm.
Log in to open the explorerExample integrations
Payments, Terminal and payouts
No-code automations
Advanced workflow scenarios
Embed forms and booking
Diary sync for practitioners
Microsoft 365 calendar sync
Team alerts for bookings and flags
Accounting export
Accounting export
Need a custom integration? Talk to us.