Norvya Developers
Get a sandbox
Solution

Independent practices

Built, gated: callable in your sandbox; production once your agreement is signed. 97 endpoints across 14 families

Import the panel, get a ranked list of who needs attention and why, close care gaps.

Credential model
OAuth 2.0 client credentials for your organisation. Authentication
Before production
A BAA, and a practice-of-record basis for imported patients.
Sandbox
A practice sandbox.

Families you'll use

FamilyFitStatus
Clinical intelligenceCoreBuilt — gated
Data inCoreBuilt — gated
Enrolment & messagingCoreBuilt — gated
Events (webhooks)CoreBuilt — gated
Practice operations & reportsCoreBuilt — gated
Billing & schedulingUsefulBuilt — gated
Claims inUsefulBuilt — gated
EHR embedding: SMART launch and CDS HooksUsefulBuilt — gated
Member data in: observations and workoutsUsefulBuilt — gated
PopulationUsefulBuilt — gated
Social needs & programmesUsefulBuilt — gated
Public-health reportingUsefulBuilt — gated
Enrolment rosterUsefulBuilt — gated
Specialty careUsefulBuilt — gated
Care transitionsUsefulBuilt — gated

Scopes to request

Ask only for what your product uses.

ScopeAllows
members.readList the organisation's linked members as opaque member references.
panel.import.writeStage, review, commit and discard practice panel imports (FHIR Bulk Data, or a spreadsheet with a saved mapping profile; medical practices with a BAA on file only).
clinical.brief.readRead the clinician pre-visit brief for a patient (medical practices only; per-section consent).
clinical.panel.readRead the practice's ranked panel worklist and start worklist runs (medical practices only).
clinical.patient.readRead a patient's care gaps and between-visit home-data signals (medical practices only; consent and data basis respected).
clinical.panel.writeTriage your practice's worklist findings from your system (addressed, snoozed until a date, dismissed with a reason, or reopened) with the same rules as Norvya's own worklist screen (medical practices only).
clinical.loops.writeClose the loop on results and referrals from your system: record that a named clinician acknowledged a result, that the patient was told, the action taken, and move a tracked referral through scheduled, seen, report received and closed (medical practices only).
instruments.requestAsk a patient to complete a validated questionnaire from Norvya's instrument library; Norvya sends its own generic notification (treating practices only).
instruments.readRead questionnaire scores (total, severity band, subscales) with the instrument version and completion time, never item-level answers; mental-health instruments only when the patient shares mental health with you (treating practices only).
members.inviteInvite people to join your organisation on Norvya (Norvya emails its own invitation in the person's language; never a pre-granted consent: the person chooses what to share in the app) and create printable join codes; follow each invitation to joined. Daily cap, de-duplicated per address, and the answer never says whether an address has an account.
messages.writeSend a member a secure in-app message from your organisation (the conversation your staff use in Norvya); Norvya notifies them with its own generic wording, never your text. Members who turned messages off are refused.
messages.readRead your organisation's in-app conversation with a member, including their replies (audited as a disclosure).
observations.writeWrite measurements to a member's own record: vitals, lab results and body composition (practices with a BAA on file), or body composition and the vitals a gym measures (gyms; never labs). Idempotent per item by your external_id; units converted, implausible values refused; DELETE retracts only your own item.
social_needs.readRead a patient's health-related social needs screen (AHC-HRSN core) with the positive domains coded to ICD-10-CM Z-codes and SNOMED CT as Norvya asserts them, and the closed-loop community referrals your practice made, with Gravity-aligned Task status (treating practices only; the patient must share their medical history with you; a positive interpersonal-safety screen never leaves Norvya).
social_needs.writeAsk a patient to complete a social needs screen (Norvya's generic push), and create and update closed-loop referrals to community organisations (treating practices only).
webhooks.manageRegister HTTPS webhook endpoints (payloads carry no PHI). Each event also needs its own scope: worklist / attention events clinical.panel.read, import events panel.import.write, population.export_completed population.export (medical practices only), member.at_risk fitness.roster.read, public_health.iis_ack_received public_health.immunizations.read, public_health.case_report_response public_health.case_reports.read. claims.import_completed needs claims.import.write (medical practices only). member.account_claimed needs members.claim_invite (medical practices only). hospital_at_home.escalation needs hospital_at_home.read (hospitals only). hospice.idg_review_due needs hospice.read (hospice agencies only). pharmacy.refill_due and pharmacy.discharge_episode_opened need pharmacy.patients.read; care_site.change_of_condition, care_site.incident_recorded and care_site.mar_exception need care_sites.read (pharmacies and care-facility operators, their own sites). travel.journey_updated and travel.leg_status_changed need travel.journeys.read, travel.nursing_visit_recorded travel.nursing.read, travel.invoice_issued travel.billing.read (medical-travel desks only). travel.inquiry_updated needs travel.inquiries.read, travel.journey_message_posted travel.messages.read (medical-travel desks only). instrument.batch_dispatched needs instruments.request (medical practices only). roster.enrolment_summary needs members.roster.read (medical practices only). older_adults.falls_tier_raised needs older_adults.read (medical practices only). employer.challenge_completed needs employer.challenges.read and occupational.exam_due occupational.read (employers only); medspa.adverse_event_reported needs medspa.aftercare.read (treating practices only). rehab.goal_met needs rehab.read; nutrition.caseload_flagged needs nutrition.read (medical practices only). cocm.review_due needs behavioral.read (medical practices only). derm.lesion_recheck_due and derm.patch_test_read_recorded need derm.read (medical practices only).
transitions.notices.readRead the hospital admissions, discharges and ED visits Norvya received for a patient of your practice, with the Transitional Care Management windows (treating practices and hospitals; each patient's sharing choices apply).
transitions.adt.writeSend HL7 v2 ADT messages (A01 / A02 / A03 / A04) from your feed; matched only to your own linked patients on MRN + date of birth, counts returned, nothing echoed (treating practices and hospitals with a BAA on file).
public_health.immunizations.readRead your registry connection's readiness, the patient's immunization record, your submissions and their acknowledgements, and query the registry for a patient's history (treating practices and hospitals; the patient must share their medical history with you).
public_health.immunizations.writeReport a patient's immunization to your state immunization registry (HL7 v2 VXU) and preview what would be sent; an explicit act, audited, refused unless your registry connection is active under a signed state agreement (treating practices and hospitals).
clinical.specialty.readRead a patient's specialty hub results (cardio, nephro, endo, neuro, pulmo, rheum, GI and questionnaires) under their sharing switches, and run the stateless spirometry, lung-cancer screening and GI alarm checks (treating practices only).
clinical.ratings.writeRecord a clinician-rated or clinician-timed measure (for example FOIS, Nine-Hole Peg Test, AIMS) that a named clinician of your practice assigned; scored by Norvya (treating practices only).
documents.readList and download the documents Norvya already produces about a patient (care plans, survivorship plans, reviews, summaries, estimates) as PDF, in the patient's language where the document supports it; each document kind keeps its own consent gate (treating practices, including medical-travel desks, and pharmacies).
clinical.record.readRead one patient's record as a FHIR R4 Bundle (the same builders and the same consent scope as the population export: the patient's sharing choices, your practice's own records, 42 CFR Part 2 records only under a covering consent); size-capped, with the population export for large records (treating practices with a BAA on file, or a sandbox).
clinical.annual_review.readRead a patient's member annual review content (their year in numbers, what is going well, screenings and vaccines, the open findings a physician may select); urgent and practice-internal findings are never selectable (treating practices only).
clinical.reports.readRead your practice's quarterly value report and programme outcomes report as JSON: aggregates only, counts below the small-cell minimum withheld, with the reports' honest framing (observational, this practice only); no dollar figure (treating practices only).
clinical.morning_brief.readRead one clinician's morning brief for a day: the members on their schedule, what changed since each member's last visit, open referrals and suggested labs, on what the practice may use for each member (treating practices only).
clinical.outreach.readRead rule-based message drafts for your patients' open worklist findings, in the patient's language; never sent by this call (send with messages.write) and never for urgent or practice-internal findings (treating practices only).
clinical.video.writeOpen a telehealth video room for an existing appointment of your practice (Daily, under Norvya's BAA; recording and transcription off); participants join in the Norvya app (treating practices only).
clinical.credentials.readRead your practice's clinicians with the licence and NPI fields Norvya holds for them and whether Norvya verified them (treating practices only).
programs.benefits.readRead your practice's benefits-coordination worklist (transport and home-modification requests on open community referrals); Norvya never determines eligibility or books a ride (treating practices only).
members.claim_inviteInvite a patient your practice imported (no Norvya login yet) to claim their own account: Norvya emails its own invitation in the patient's language with a one-time code that also needs their date of birth; follow the invitation to claimed (treating practices with a BAA on file).
claims.risk_adjustment.readRead risk-adjustment audit evidence for a member: the diagnosis codes in the claims you imported with the dated claims documenting each, grouped into CMS-HCC categories only when an official model is loaded; never a risk score (treating practices and programme organisations with a BAA on file).
members.roster.writeUpload a roster of your eligible members (CSV / NDJSON, or a CMS eligibility / attribution file), review its dry run, then have Norvya invite them in bulk (its own email in each person's language; daily cap, queued not dropped), send reminders and collect phone-only join links. MBIs never stored raw (medical practices / programmes with a BAA only).
members.roster.readRead your rosters and their enrolment report: invited, opened, joined, expired, revoked and declined as small-cell-suppressed counts by cohort, plus the status of each of your roster rows (medical practices / programmes only).
older_adults.readRead an older patient's falls risk tier (CDC STEADI) and falls-prevention programmes, physical function (Katz ADL / Lawton IADL only where this deployment holds the licence and the patient completed them), medication burden for medication review (count, anticholinergic burden, sedatives; never advice), your care dyads (caregiver link and consent status, never the caregiver's contact details), the sleep-apnoea pathway and CPAP adherence (an unlogged night is unknown, not missed), the status of the five fillable dementia risk factors (never a risk score) and the hospice review status (never an eligibility answer); each under the patient's sharing choices (treating practices only).
life_stages.readRead what a parent or guardian shared with your practice about their child (the well-child and vaccine schedule, growth measurements with WHO / CDC percentiles, EPSDT screening status, never adolescent screening answers) and a patient's own pregnancy or postpartum summary; the newborn record and milestone checklists are never shared with an organisation (treating practices only).
behavioral.readRead your measurement-based-care caseload (PHQ-9 / GAD-7 / PCL-5 totals and trend, what is due, the not-improving prompt, homework progress as counts), one patient's scores and homework, and your Collaborative Care / BHI registry with each episode's status and flags; with billing.read also an episode's month as a candidate for your biller. Only patients who share mental health with you; never psychotherapy notes, safety plans, homework entry text or 42 CFR Part 2 records (treating practices with a BAA on file; not a designated Part 2 program).
oncology.readRead your survivorship caseload with the status flags Norvya computes (plan status, next dated follow-up, open red flags by lane) and a patient's cancer treatment summary; never the side-effect check-in answers (treating practices with a BAA on file; the patient must share their medical history with you).
derm.readRead a patient's tracked skin lesions (location, monitoring cadence, next recheck, and per photograph the date, the symptoms recorded and any biopsy result; size changes between photographs as image-based estimates; never the photograph and never the classifier's label or probabilities), your panel's lesion rechecks that are due, hidradenitis and acne severity history, patch tests with the allergen avoidance list, and the wound log (each wound's location and assessment dates, never its measurements) (treating practices with a BAA on file; lesions and wounds need the patient to share skin scans with you, severity and patch tests their medical history).

Protocol endpoints outside /v1

Called by the EHR itself rather than with a partner token.

EHR embedding: SMART launch and CDS Hooks Built — gated

Gate: Registration with each EHR vendor's developer programme, then their review.

  • GET/ehr/launchSMART on FHIR EHR launch (the EHR opens Norvya with iss and launch)
  • GET/ehr/callbackSMART authorization callback
  • GET/ehr/.well-known/jwks.jsonNorvya's public keys for SMART backend authentication
  • GET/cds-servicesCDS Hooks discovery
  • POST/cds-services/norvya-patient-viewCDS Hooks patient-view: the card for the open chart
  • POST/cds-services/norvya-patient-view/feedbackCDS Hooks card feedback

Not callable yet

  • Population Built — gated
  • Billing & scheduling Built — gated Gate: A BAA with each practice. The care-management view also needs the practice to switch on care-management documentation in Norvya (after its own compliance review).

Before production

Gate: A BAA, and a practice-of-record basis for imported patients.

Sandbox

Build and test against synthetic members before you touch real data. A practice sandbox. What a sandbox holds, its credentials, limits, resets and expiry are in the Sandbox guide. To request one, write to [email protected] with your organisation and market.

Every endpoint for this market

The families this solution uses, filtered to the scopes it requests. Each link opens the endpoint on its family page.

Platform Built — gated3

Enrolment & messaging Built — gated12

Enrolment roster Built — gated9

Events (webhooks) Built — gated5

Records & documents Built — gated4

Clinical intelligence Built — gated23

Specialty care Built — gated5

Practice operations & reports Built — gated13

Data in Built — gated4

Member data in: observations and workouts Built — gated2

Claims in Built — gated1

Social needs & programmes Built — gated7

Public-health reporting Built — gated7

Care transitions Built — gated2

↑ ↓ to moveEnter to open