Local services & SaaS
Faire
Orders, inventory, reorders and messages for wholesale brands.
12 endpoints
Read Jane appointments, wait lists and administrative reports through MCP or REST. Connect your staff account to an agent or a private reporting script.
14 tools Read and write
Jane has no public API and no MCP server (checked 27 Oct 2026). Its Jane Developer Platform is for approved Technology Partners, and Jane says clinics cannot build their own integrations. Cotlet runs 14 Jane tools hosted, over MCP for agents and REST for scripts.
| What you need | Partner API | By hand in Jane | Cotlet |
|---|---|---|---|
| Read the Schedule and patients | Approved partners only | Yes | Yes |
| Book from the Wait List | No | Yes, slot by slot | Yes, after your OK |
| Resend intake forms | No | Yes, patient by patient | Yes, after your OK |
| Balances and Pay Balance emails | No | Yes | Yes, after your OK |
| Runs while the front desk is busy | Your own code, if approved | No | Yes, also on a schedule |
Checked 27 Oct 2026. Sources: Jane blog: Jane Integrations, our program and how to work with us · Jane Developer Platform API Quick Start Guide · Jane Developer Platform API reference index · Jane Guide: Using Wait List Notifications
Use your own account in its Cotlet Cloud Browser.
Connect your agent or create a Cotlet API key.
Ask your agent or send an HTTP request.
We never keep your Jane password or ask you to turn off two-factor, and nothing reaches a patient until you approve it. Who can see your session
Use MCP with your AI agent, or HTTP requests in n8n, Make, Zapier and scripts. Follow the MCP setup below or jump to the REST guide.
Enable Jane for agents. Sign up, sign in to your clinic at yourclinic.janeapp.com/admin in its Cloud Browser, then press Enable for agents.
Paste the Cotlet address. Add https://cotlet.dev/mcp/v1 as an MCP server or connector in your agent.
Approve the connection. Chat apps ask you to sign in to Cotlet. Editors, n8n and scripts use an API key from the console.
One address serves every app you enable, Jane included. Enable Jane after connecting and the connector needs a refresh before its tools appear.
Settings > Connectors > Add custom connector
URL: https://cotlet.dev/mcp/v1/connect
Claude Code:
claude mcp add --transport http cotlet \
https://cotlet.dev/mcp/v1 \
--header "Authorization: Bearer $COTLET_API_KEY" Settings > Apps & Connectors > Create
MCP server URL: https://cotlet.dev/mcp/v1/connect
Authentication: OAuth // ~/.cursor/mcp.json
{
"mcpServers": {
"cotlet": {
"url": "https://cotlet.dev/mcp/v1",
"headers": { "Authorization": "Bearer ${env:COTLET_API_KEY}" }
}
}
} # ~/.codex/config.toml
[mcp_servers.cotlet]
url = "https://cotlet.dev/mcp/v1"
bearer_token_env_var = "COTLET_API_KEY" MCP Client Tool (inside an AI Agent)
Transport: HTTP Streamable
URL: https://cotlet.dev/mcp/v1
Auth: Bearer, <your key>
Tool: jane_app_read Make: MCP Client > Call a tool
Zapier: MCP Client by Zapier > Run Tool
Server URL: https://cotlet.dev/mcp/v1
Token: <your key>
Tool: jane_app_write Sign in to Jane App in its Cotlet Cloud Browser and enable the app for agents. Use your clinic staff login; clinic-wide reports require Full Access or the relevant Administrative / All Billing permissions.
Create a Cotlet API key with access to Jane App and its read operations. Store it as COTLET_API_KEY in your environment or automation platform's credential store.
curl "https://cotlet.dev/api/v1/jane-app/appointments?from=2026-11-02&to=2026-11-02" \
-H "Authorization: Bearer $COTLET_API_KEY" A successful REST call puts the tool output in result. This illustrative response excerpt omits call IDs, messages and credit details.
{
"status": "success",
"app": "jane-app",
"tool": "list_appointments",
"result": {
"appointments": [
{
"appointment_id": "apt_48230",
"patient_id": "pt_10988",
"patient": "Sam Rivera",
"staff_member": "Dana Lee",
"treatment": "Physiotherapy Initial 60 min",
"start": "2026-11-02T13:00:00-07:00",
"state": "Booked Online"
}
],
"next_cursor": null
}
} Replace the dates with your reporting day and read result.appointments. Pass result.next_cursor unchanged as cursor until null, preserving dates, state, staff and location filters.
There is no page-size input. The report includes cancellations and reschedules in its default state selection; compare time, practitioner and state as well as IDs.
Patient profiles omit chart notes, and intake-form reads return status rather than answers. Accounts Receivable does not subtract account credit; preserve that distinction in administrative reports.
| Tool | Connect through | Example workflow |
|---|---|---|
| n8n | HTTP Request | Combine appointments and intake-form statuses into a private administrative preparation list without reading answers. |
| Make | HTTP > Make a request | Read wait lists and appointments to prepare a staff-reviewed slot shortlist without booking or contacting patients. |
| Python or Node.js | REST API | Read Accounts Receivable into an administrative aging report that retains the account-credit distinction. |
Send Authorization: Bearer <your Cotlet API key> in request headers. You configure the schedule, destination and record comparisons.
Cotlet reads Jane App; your workflow steps write to your chosen destination. These HTTP workflows do not require a native Cotlet connector or a prebuilt template.
Python and Node.js can use the same HTTP requests without an AI agent. Keep access keys in credentials, outside shared workflow exports.
The API and MCP reference lists operations and inputs. The REST API guide explains authentication, errors and approvals.
The Wait List comes longest-waiting first. Front Desk and Limited access see only their own Wait List; Wait List Notifications need the Thrive or Legacy plan.
Reads the Appointments report: past and future appointments with the patient, location, treatment, appointment date and booking date. Filter by state (Booked Online, Arrived, No Show, Cancelled, Rescheduled, Archived) and by chart status. Clinic owners and staff with the matching report access see every practitioner; others see their own. Nothing is changed.
MCP calljane_app_read → list_appointments
REST endpointGET https://cotlet.dev/api/v1/jane-app/appointments
| Name | Type | Description |
|---|---|---|
| from date | date | First day. Default: today. |
| to date | date | Last day. Default: from. |
| state string | string | booked_online, arrived, no_show, cancelled, rescheduled or archived. Default: all. |
| staff_member string | string | Practitioner name as Jane shows it. Default: every practitioner your access lets you see. |
| location string | string | Clinic location name, for clinics with more than one. |
| cursor string | string | Next page cursor from the previous call. |
{
"appointments": [
{
"appointment_id": "apt_48213",
"patient_id": "pt_10422",
"patient": "Alex Morgan",
"staff_member": "Dana Lee",
"treatment": "Physiotherapy Follow-up 30 min",
"start": "2026-10-28T10:00:00-07:00",
"state": "Cancelled"
},
{
"appointment_id": "apt_48230",
"patient_id": "pt_10988",
"patient": "Sam Rivera",
"staff_member": "Dana Lee",
"treatment": "Physiotherapy Initial 60 min",
"start": "2026-10-28T13:00:00-07:00",
"state": "Booked Online"
}
],
"next_cursor": null
} Reads the Wait List the way Jane shows it on the Schedule: clients who have waited longest come first. Each entry has the requested treatment, the days and times the client is available, the date range and the staff note. Staff with Practitioner Front Desk or Limited access see only their own Wait List; Administrative / All Billing access or higher sees the whole clinic. Nothing is changed.
MCP calljane_app_read → list_wait_list
REST endpointGET https://cotlet.dev/api/v1/jane-app/wait-lists
| Name | Type | Description |
|---|---|---|
| staff_member string | string | Practitioner name as Jane shows it. Default: every practitioner your access lets you see. |
| location string | string | Clinic location name, for clinics with more than one. |
| date date | date | Only clients available on this day. Default: every day. |
{
"wait_list": [
{
"entry_id": "wl_2207",
"patient_id": "pt_11873",
"patient": "Jordan Patel",
"staff_member": "Dana Lee",
"treatment": "Physiotherapy Follow-up 30 min",
"available": "Mon to Fri, 09:00 to 12:00",
"date_range": "2026-10-27 to 2026-11-10",
"added": "2026-10-14",
"note": "Prefers mornings"
},
{
"entry_id": "wl_2231",
"patient_id": "pt_12004",
"patient": "Casey Nguyen",
"staff_member": "Dana Lee",
"treatment": "Physiotherapy Follow-up 30 min",
"available": "Anytime for a Week",
"date_range": "2026-10-27 to 2026-11-03",
"added": "2026-10-21",
"note": ""
}
]
} Adds a Wait List entry as staff do from the Schedule, with the requested treatment, the available days and times and a note. Jane sends nothing to the patient when the entry is added, and staff remove it with one click in Jane, so this runs without asking. Returns the new entry.
MCP calljane_app_write → add_to_wait_list
REST endpointPOST https://cotlet.dev/api/v1/jane-app/patients/{patient_id}/wait-lists
| Name | Type | Description |
|---|---|---|
| patient_id string required | string | Patient ID from search_patients or list_appointments. |
| staff_member string required | string | Practitioner whose Wait List to use. |
| treatment string required | string | Treatment name as Jane lists it. |
| available string | string | Days and times the patient can come, e.g. "Mon, Wed, 14:00 to 17:00". Default: all of today. |
| until date | date | Last day of the request. |
| note string | string | Note for other staff. |
{
"patient_id": "patient_8c41d2",
"staff_member": "staff member",
"treatment": "treatment"
} {
"entry_id": "wl_2240",
"patient_id": "pt_10422",
"staff_member": "Dana Lee",
"treatment": "Physiotherapy Follow-up 30 min",
"available": "Mon, Wed, 14:00 to 17:00",
"date_range": "2026-10-27 to 2026-11-24"
} Books the treatment with the practitioner at the start time, the way staff do from the Schedule or with the Book button on a Wait List entry. Jane then sends the patient its usual appointment notifications, with any intake form set for that treatment. With wait_list_entry_id, the entry is removed after booking unless keep_on_wait_list is true. A slot that overlaps another appointment fails. By default you confirm each call; you can switch that off for this tool.
MCP calljane_app_write → book_appointment
REST endpointPOST https://cotlet.dev/api/v1/jane-app/patients/{patient_id}/appointments
| Name | Type | Description |
|---|---|---|
| patient_id string required | string | Patient ID from search_patients or list_appointments. |
| staff_member string required | string | Practitioner to book with. |
| treatment string required | string | Treatment name as Jane lists it. |
| start datetime required | datetime | Start time in the clinic's time zone. |
| wait_list_entry_id string | string | Wait List entry this booking fills, from list_wait_list. |
| keep_on_wait_list boolean | boolean | Keep the entry after booking. Default: false. |
| location string | string | Clinic location name, for clinics with more than one. |
{
"patient_id": "pt_11873",
"staff_member": "Dana Lee",
"treatment": "Physiotherapy Follow-up 30 min",
"start": "2026-10-28T10:00:00-07:00",
"wait_list_entry_id": "wl_2207"
} {
"appointment_id": "apt_48251",
"patient_id": "pt_11873",
"staff_member": "Dana Lee",
"treatment": "Physiotherapy Follow-up 30 min",
"start": "2026-10-28T10:00:00-07:00",
"state": "Booked",
"removed_from_wait_list": true
} Clicks Send Notification(s) Now on a Wait List cue, the held spot Jane creates after a cancellation, deletion, no-show or move. Every eligible client listed on the cue gets the notification at the same time, and the hold switches to your Exclusive Access period. Jane offers Wait List Notifications on the Thrive and Legacy plans only. By default you confirm each call; you can switch that off for this tool.
MCP calljane_app_write → send_wait_list_notification
REST endpointPOST https://cotlet.dev/api/v1/jane-app/wait-list-notifications
| Name | Type | Description |
|---|---|---|
| staff_member string required | string | Practitioner of the opening. |
| start datetime required | datetime | Start time of the Wait List cue. |
{
"staff_member": "staff member",
"start": "2026-10-01T09:00:00Z"
} {
"opening": {
"staff_member": "Dana Lee",
"start": "2026-10-28T10:00:00-07:00"
},
"notified": 2,
"exclusive_access_until": "2026-10-27T17:00:00-07:00"
} Profiles, form status and contact details. Chart notes and form answers are never returned.
Searches the Patients tab and returns matching patients with their patient_id, email and phone. Pass the patient_id to get_patient or to a write tool. Nothing is changed.
MCP calljane_app_read → search_patients
REST endpointGET https://cotlet.dev/api/v1/jane-app/patients/search
| Name | Type | Description |
|---|---|---|
| query string required | string | Name, email or phone number. |
{
"query": "query"
} {
"patients": [
{
"patient_id": "pt_10422",
"name": "Alex Morgan",
"email": "alex@example.com",
"phone": "+1 604 555 0142"
}
]
} Returns the Patient Profile as staff see it: contact details, upcoming and recent appointments, return visit reminders and the amount owing on the Billing tab. Chart notes are not returned. Nothing is changed.
MCP calljane_app_read → get_patient
REST endpointGET https://cotlet.dev/api/v1/jane-app/patients/{patient_id}
| Name | Type | Description |
|---|---|---|
| patient_id string required | string | Patient ID from search_patients or list_appointments. |
{
"patient_id": "patient_8c41d2"
} {
"patient_id": "pt_10422",
"name": "Alex Morgan",
"email": "alex@example.com",
"upcoming": [],
"last_visit": {
"date": "2026-09-08",
"staff_member": "Dana Lee",
"state": "Arrived"
},
"return_visit_reminders": [],
"balance_owing": 145
} Reads the Online Intake Forms section of the Patient Profile. Each form has its name and status, so the agent can tell who still has to fill one in before a visit. Answers are not returned. Nothing is changed.
MCP calljane_app_read → list_intake_forms
REST endpointGET https://cotlet.dev/api/v1/jane-app/patients/{patient_id}/intake-forms
| Name | Type | Description |
|---|---|---|
| patient_id string required | string | Patient ID from search_patients or list_appointments. |
{
"patient_id": "patient_8c41d2"
} {
"patient_id": "pt_10988",
"forms": [
{
"form_id": "if_771",
"name": "New Patient Physiotherapy Intake",
"status": "not_started"
},
{
"form_id": "if_402",
"name": "Treatment Consent",
"status": "completed"
}
]
} Uses the Email option in the Online Intake Forms section of the Patient Profile, so the patient gets a link to fill in the form online. Jane already reminds patients about unfinished forms in appointment emails and 24 hours before the visit; this sends one more on demand. By default you confirm each call; you can switch that off for this tool.
MCP calljane_app_write → email_intake_form
REST endpointPOST https://cotlet.dev/api/v1/jane-app/patients/{patient_id}/intake-form/email
| Name | Type | Description |
|---|---|---|
| patient_id string required | string | Patient ID from search_patients or list_appointments. |
| form_id string required | string | Form ID from list_intake_forms. |
{
"patient_id": "patient_8c41d2",
"form_id": "form_8c41d2"
} {
"patient_id": "pt_10988",
"form_id": "if_771",
"name": "New Patient Physiotherapy Intake",
"status": "sent",
"sent_to": "sam@example.com"
} Clinic-wide reports need Full Access or Administrative / All Billing access. Pay Balance emails need Jane Payments, automatic reminder emails the Thrive plan.
Reads Reports > Accounts Receivable: each patient or insurer with the total owing and a breakdown of how long it has been owing. Filter by location, staff member, account type and date; a past date gives balances as of that day. Jane does not subtract account credit from these totals. Nothing is changed.
MCP calljane_app_read → get_accounts_receivable
REST endpointGET https://cotlet.dev/api/v1/jane-app/accounts-receivable
| Name | Type | Description |
|---|---|---|
| account_type string | string | patient or insurer. Default: both. |
| as_of date | date | Balances as of this day. Default: today. |
| staff_member string | string | Practitioner name as Jane shows it. Default: every practitioner your access lets you see. |
| location string | string | Clinic location name, for clinics with more than one. |
{
"as_of": "2026-10-27",
"accounts": [
{
"patient_id": "pt_10422",
"name": "Alex Morgan",
"type": "patient",
"owing": 145,
"current": 0,
"days_31_60": 145,
"days_61_90": 0,
"over_90": 0
},
{
"patient_id": "pt_09810",
"name": "Riley Chen",
"type": "patient",
"owing": 90,
"current": 90,
"days_31_60": 0,
"days_61_90": 0,
"over_90": 0
}
]
} Clicks Pay Balance on the Patient Profile, which emails the patient a link to pay what they owe online. It needs Jane Payments on the clinic's account. Returns the balance the email asked for. By default you confirm each call; you can switch that off for this tool.
MCP calljane_app_write → send_pay_balance_email
REST endpointPOST https://cotlet.dev/api/v1/jane-app/patients/{patient_id}/pay-balance-emails
| Name | Type | Description |
|---|---|---|
| patient_id string required | string | Patient ID from search_patients or list_appointments. |
{
"patient_id": "patient_8c41d2"
} {
"patient_id": "pt_10422",
"balance": 145,
"status": "sent",
"sent_to": "alex@example.com"
} Reads the Unscheduled Patient Report (Last Visit). Filter by days since last visit, reminder status (due, sent or not set up) and the state of the last visit. Discharged and deceased patients are left out by Jane. Staff see their own patients unless they have Full Access or Administrator / All Billing access. Nothing is changed.
MCP calljane_app_read → list_unscheduled_patients
REST endpointGET https://cotlet.dev/api/v1/jane-app/unscheduled-patients
| Name | Type | Description |
|---|---|---|
| days_since_last_visit integer | integer | Only patients not seen for at least this many days. |
| reminder string | string | due, sent or not_set. Default: any. |
| last_visit_to_clinic_only boolean | boolean | Count only the last visit to the clinic, not per practitioner. Default: false. |
| staff_member string | string | Practitioner name as Jane shows it. Default: every practitioner your access lets you see. |
{
"patients": [
{
"patient_id": "pt_10422",
"name": "Alex Morgan",
"last_visit": "2026-09-08",
"staff_member": "Dana Lee",
"last_state": "Arrived",
"reminder": "not_set"
},
{
"patient_id": "pt_08877",
"name": "Morgan Blake",
"last_visit": "2026-08-30",
"staff_member": "Chris Wong",
"last_state": "Cancelled",
"reminder": "sent"
}
]
} Adds a Return Visit Reminder with a suggested date, a reminder date, staff member and treatment. With remind_by email_auto, Jane emails the patient at 7am on the reminder date, only if they have not booked by then; automatic email needs the Thrive plan. email_manual and phone_manual put the patient on the clinic's Reminders list instead. By default you confirm each call; you can switch that off for this tool.
MCP calljane_app_write → add_return_visit_reminder
REST endpointPOST https://cotlet.dev/api/v1/jane-app/patients/{patient_id}/return-visit-reminders
| Name | Type | Description |
|---|---|---|
| patient_id string required | string | Patient ID from search_patients or list_appointments. |
| suggested_date date required | date | When the next visit should be. |
| reminder_date date required | date | When Jane sends or lists the reminder. |
| remind_by string required | string | email_auto, email_manual or phone_manual. |
| staff_member string | string | Practitioner to book with. Default: the last one. |
| treatment string | string | Treatment to book. Default: the last one. |
{
"patient_id": "patient_8c41d2",
"suggested_date": "2026-10-01",
"reminder_date": "2026-10-01",
"remind_by": "remind by"
} {
"reminder_id": "rvr_3310",
"patient_id": "pt_10422",
"suggested_date": "2026-11-10",
"reminder_date": "2026-11-03",
"remind_by": "email_auto",
"staff_member": "Dana Lee",
"treatment": "Physiotherapy Follow-up 30 min"
} Reads Reports > Patient Retention for a date range, for the practice and per staff member. Jane counts only appointments marked Arrived; no-shows are left out. Nothing is changed.
MCP calljane_app_read → get_retention_report
REST endpointGET https://cotlet.dev/api/v1/jane-app/retention-report
| Name | Type | Description |
|---|---|---|
| from date required | date | First day of the range. |
| to date required | date | Last day of the range. |
| staff_member string | string | Practitioner name as Jane shows it. Default: every practitioner your access lets you see. |
{
"from": "2026-10-01",
"to": "2026-10-01"
} {
"from": "2026-09-01",
"to": "2026-09-30",
"staff": [
{
"staff_member": "Dana Lee",
"new_patients": 14,
"returning_patients": 61,
"total_patients": 75,
"total_visits": 182,
"percent_returning": 92.3
},
{
"staff_member": "Chris Wong",
"new_patients": 9,
"returning_patients": 40,
"total_patients": 49,
"total_visits": 104,
"percent_returning": 91.3
}
]
} Your signed-in Jane staff profile, encrypted with AES-256-GCM, in Finland. Not the password.
The 14 Jane tools. Never the cookie or your password.
What your staff access sees in Jane: Schedule, patients, billing, reports.
Chart notes, form answers, settings, payouts, password and two-factor.
A two-factor code goes to you. You type it in; we never ask you to turn it off.
Disable for agents, reset the browser, or sign out of Jane.
Jane holds patient health information. Jane signs a HIPAA Business Associate Agreement with clinics on request (Jane terms, checked 27 Oct 2026); that agreement is between your clinic and Jane, and Cotlet is not part of it. Check an agent on patient records with whoever handles privacy at your clinic first. Our site scores A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory (live results). There is no SOC 2 report or third-party pentest yet.
"harvest, scrape or otherwise collect (including through use of any robot, spider, crawler, program, or other technology or device) information about others from our Services, including names and email addresses, without Jane's prior written consent"
An agent reading patient lists in your account can fall under that clause. Jane's integrations post of 1 Apr 2026 adds that using an unofficial connector "is a decision each clinic makes, but we do not recommend this approach", and warns about tools that share credentials or need two-factor off. We found no public case of a Jane account closed for using a third-party tool (checked 27 Oct 2026). Read the terms and decide for your clinic.
Give the agent the staff access the job needs. Front Desk access keeps it to one practitioner's Wait List and reports.
Jane ships product updates every month and posts them on its blog. When a screen moves or a report gains a column, the fix happens on our side and your prompts keep working. status.cotlet.dev watches the site, console and API every 3 minutes.
| Action | Undo |
|---|---|
| Add to the Wait List | Remove the entry in Jane; nobody is told |
| Book an appointment | Cancel it in Jane, but the patient already has the confirmation email |
| Wait List notification | Cannot be unsent; release the spot in Jane |
| Intake form or Pay Balance email | Cannot be unsent |
| Return visit reminder | Delete it before the reminder date |
5 of 14 tools ask first: book_appointment, send_wait_list_notification, email_intake_form, send_pay_balance_email, add_return_visit_reminder. Each reaches a patient or money. Reads and new Wait List entries reach nobody, so they run at once. Switch the wait off per tool for a scheduled run.
A booking pulls in the intake forms set for that treatment, so a new patient gets them with the confirmation.
{
"name": "book_appointment",
"arguments": {
"patient_id": "pt_11873",
"staff_member": "Dana Lee",
"treatment": "Physiotherapy Follow-up 30 min",
"start": "2026-10-28T10:00:00-07:00",
"wait_list_entry_id": "wl_2207"
}
} curl -X POST https://cotlet.dev/api/v1/jane-app/patients/pt_11873/appointments \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"staff_member":"Dana Lee","treatment":"Physiotherapy Follow-up 30 min","start":"2026-10-28T10:00:00-07:00","wait_list_entry_id":"wl_2207"}' {
"appointment_id": "apt_48251",
"patient_id": "pt_11873",
"staff_member": "Dana Lee",
"treatment": "Physiotherapy Follow-up 30 min",
"start": "2026-10-28T10:00:00-07:00",
"state": "Booked",
"removed_from_wait_list": true
} Scripts and cron jobs reach the same tools over REST at /api/v1/jane-app, with the same key and price. A slot that overlaps another appointment fails, and a failed call costs nothing. The tools table lists the REST path of each tool.
About $32 a monthfor daily Wait List and intake form passes plus weekly billing and recall in a three-practitioner clinic, 5,560 credits. Your Jane plan stays as it is.
| Job | Calls | Credits |
|---|---|---|
| Fill cancellations from the Wait List | 3 × 22 | 660 |
| Resend unfinished intake forms | 11 × 22 | 2,420 |
| Pay Balance emails, weekly | 11 × 4 | 440 |
| Recall unscheduled patients, weekly | 13 × 4 | 520 |
| Retention report, monthly | 2 × 1 | 20 |
| Cloud Browser, 30 days | 1,500 | |
| Total | 5,560 |
The month is our example: 22 working days, eight intake form checks a day, five overdue balances and six recalls a week. Jane publishes no clinic size. Jane's own plans are CAD $59, $79 and $99 a month on jane.app/pricing (checked 27 Oct 2026), billed by Jane. Dollars at the $29 pack rate.
| Credits | Price, one time | Calls at 10 credits | Per 1,000 credits |
|---|---|---|---|
| 5,000 | $29 | 500 | $5.80 |
| 15,000 | $79 | 1,500 | $5.27 |
| 32,000 | $149 | 3,200 | $4.66 |
| 60,000 | $249 | 6,000 | $4.15 |
Only successful calls use credits; failed calls and timeouts cost nothing. At a balance of 0 calls pause, never a surprise charge. Authenticate with the Authorization: Bearer header.
| Option | What it does | Where it stops |
|---|---|---|
| pp-janeapp in printing-press-library | CLI, skill and MCP server for Jane's patient online booking: your own appointments and open times across clinics. Apache-2.0. | Patient side only, signed in with a patient password. No Schedule, Wait List or billing. Jane folder last changed 17 Aug 2026. |
| JaneApp Reports Scraper | A script that starts every report download for a signed-in Jane user. | 1 star, last push 29 Aug 2026. Downloads only, no MCP server. |
| Integuru | Builds an unofficial HTTP API for Jane App from the web app's own requests, for software companies. | You buy and run an integration project; no ready MCP server for a clinic. |
| Jane partner program | The official API for approved Technology Partners, through an intake form. | Not for single clinics or single-use tools, and no calendar writes. |
For a clinic owner who wants an agent on the front desk work, the realistic choice today is Cotlet or doing it by hand. The GitHub tools above serve patients or download reports. Cotlet works in your own staff session, hosts the server and repairs it when Jane changes.
Take Group sp. z o.o. runs Cotlet. It is a software company registered in Poland, EU (VAT PL6342984273), working since 2019, founded by Bart Krawczyk (Co-founder, CTO) and Jake Slugocki (Co-founder, SEO, sales and marketing). Questions about the Jane tools go to contact@cotlet.dev.
Yes. Call Cotlet's REST API from a script or an HTTP step in n8n, Make or Zapier with your Cotlet key. MCP is the alternative for AI agents; you do not need to connect an agent to use REST.
Create a free account at https://cotlet.dev, open Jane App under Integrations in the console and sign in to your clinic in its Cloud Browser. The trial starts with your first app, no card asked.
No. Jane lists its approved partners on its Integrations page and says it does not recommend unofficial connectors, because it cannot verify them (checked 27 Oct 2026). Cotlet does not ask you to share your password or turn off two-factor authentication: you sign in to Jane yourself in your own Cloud Browser. Whether to connect an unofficial tool is the clinic's decision.
No. Jane's terms say Jane signs its standard BAA with a subscriber subject to HIPAA on request, and that agreement is between you and Jane. Before an agent reads patient records through any outside tool, check it with whoever handles privacy compliance at your clinic.
The tools work on the plan you have, with two plan limits from Jane: Wait List Notifications and automatic return visit reminder emails are Thrive and Legacy features. Your staff access counts too: clinic-wide reports and every practitioner's Wait List need Full Access or Administrative / All Billing access, and Pay Balance emails need Jane Payments.
Only for approved partners: the Jane Developer Platform registers webhook subscriptions per partner (checked 27 Oct 2026). Run your agent on a schedule instead, for example a morning list_appointments and list_wait_list pass.
Yes, within Jane's own limits: Balance has one practitioner profile and 20 appointments a month. Wait List Notifications and automatic return visit reminder emails need Thrive.
No. No tool returns chart notes or intake form answers. get_patient returns contact details, appointments, reminders and the balance owing.
Only the way in. Both have the same 14 tools, inputs and answers, one API key and one price. Agents use MCP; scripts, cron jobs and HTTP steps use REST.
Free 7-day trial with 2,000 credits, no card needed.
May we use Google Analytics to see which pages help people? It sets cookies only if you accept. No ads, and we never sell data. Cookie policy