Embed the widget, or call the API
Genclarus serves a curated, versioned corpus of 67 gene and 106 variant explanations — grounded in public biomedical databases (MyGene, ClinVar, dbSNP, gnomAD), cited at the claim level, and precomputed. There is no request-time model call: every widget render and every API response reads the same committed artifact a static page renders, so integration cost is one <iframe> or one GET, not a biomedical data pipeline.
Try it live in the demo playground →Browse embeddable widgets →
Widget — embed via iframe
One iframe, no script
Every corpus gene and variant has a compact, iframe-friendly page at /embed/gene/[symbol] or /embed/variant/[rsid]. Drop it into your page as-is:
<iframe
src="https://genclarus.com/embed/gene/BRCA1"
width="100%"
height="480"
style="border:1px solid #e4e4e7;border-radius:12px"
loading="lazy"
title="Genclarus gene/variant explainer"
></iframe>Same shape for a variant:
<iframe
src="https://genclarus.com/embed/variant/rs6025"
width="100%"
height="480"
style="border:1px solid #e4e4e7;border-radius:12px"
loading="lazy"
title="Genclarus gene/variant explainer"
></iframe>- Branded today. Every embed carries a "Powered by Genclarus" link back to the full cited page. Co-branded / white-label embedding is part of the packaging under discussion for a pilot — it is not a build-time toggle yet, so don't promise it as shipped.
- Responsive width, fixed height. The card fills
width: 100%of its iframe. The iframe itself does not currently auto-resize to its content (no postMessage resize handshake) — pick a height that fits the record, or wrap it in a scroll container. 480px fits most single-condition records comfortably. - Claim-level citations. Each sentence in the explanation carries its own source chips (linking to the exact ClinVar/dbSNP/gnomAD/MyGene record it cites) — never a single blanket "sources" footer.
- Corpus version shown. The card footer displays
corpus v2.0.0, and hovering it reveals the record'sfactsHash— the same value the API returns underprovenance.factsHash. - No personalized interpretation. The widget explains the public record for a gene/variant. It never processes a user's genetic file, never asks for one, and never renders a personalized risk statement — see the disclaimer printed on every card.
- Only identifiers already in the corpus render — an id outside the corpus
404s rather than falling back to a live-generated explanation.
API — read-only, versioned
Three endpoints under /api/v1
Every response is the exact same PublicRecord the corresponding /gene / /variant page renders — same facts, same explanation, same provenance.factsHash. Nothing is generated when the request arrives; these routes are statically prerendered from the committed corpus (the batch endpoint is the one exception — see below — and it still only reads committed files, never calls a model). The /api/v1 prefix is a stable contract: it can gain fields without breaking an integration built against it today.
GET /api/v1/gene/{symbol}
Example — BRCA1:
curl https://genclarus.com/api/v1/gene/BRCA1{
"kind": "gene",
"id": "BRCA1",
"facts": {
"kind": "gene",
"symbol": "BRCA1",
"name": "BRCA1 DNA repair associated",
"type": "protein-coding",
"summary": "This gene encodes a 190 kD nuclear phosphoprotein that plays a role in maintaining genomic stability, and it also acts as a tumor suppressor. The BRCA1 gene contains 22 exons spanning about 110 kb of DNA. The encoded protein combines with other tumor suppressors, DNA damage sensors, and signal transducers to form a large multi-subunit protein complex known as the BRCA1-associated genome surveillance complex (BASC). This gene product associates with RNA polymerase II, and through the C-terminal domain, also interacts with histone deacetylase complexes. This protein thus plays a role in transcription, DNA repair of double-stranded breaks, and recombination. Mutations in this gene are responsible for approximately 40% of inherited breast cancers and more than 80% of inherited breast and ovarian cancers. Alternative splicing plays a role in modulating the subcellular localization and physiological function of this gene. Many alternatively spliced transcript variants, some of which are disease-associated mutations, have been described for this gene, but the full-length natures of only some of these variants has been described. A related pseudogene, which is also located on chromosome 17, has been identified. [provided by RefSeq, May 2020].",
"aliases": [
"BRCAI",
"BRCC1",
"BROVCA1",
"FANCS",
"IRIS",
"PNCA4",
"PPP1R53",
"PSCP"
],
"location": "chr17:43,044,292–43,170,245 (−)",
"uniprot": "P38398",
"sources": [
{
"label": "NCBI Gene",
"url": "https://www.ncbi.nlm.nih.gov/gene/672"
},
{
"label": "Ensembl",
"url": "https://www.ensembl.org/Homo_sapiens/Gene/Summary?g=ENSG00000012048"
},
{
"label": "UniProt",
"url": "https://www.uniprot.org/uniprotkb/P38398"
},
{
"label": "OMIM",
"url": "https://www.omim.org/entry/113705"
},
{
"label": "GeneCards",
"url": "https://www.genecards.org/cgi-bin/carddisp.pl?gene=BRCA1"
}
],
"retrievedAt": "2026-08-03T16:05:52.114Z"
},
"explanation": [
{
"text": "BRCA1 is a human protein-coding gene.",
"claimType": "identity",
"citations": [
{
"source": "mygene",
"field": "gene"
},
{
"source": "mygene",
"field": "gene type"
}
]
}
],
"explanationState": "deterministic_only",
"aiAvailable": false,
"fallbackReason": null,
"provenance": {
"factsHash": "6a8371111935ad16",
"promptVersion": "4.0.1",
"modelId": "meta/llama-3.1-8b-instruct",
"schemaVersion": "3.0.0",
"corpusSchemaVersion": "2.0.0",
"generatedAt": "2026-08-03T16:05:53.626Z",
"retrievedAt": "2026-08-03T16:05:52.114Z",
"sources": [
{
"label": "NCBI Gene",
"url": "https://www.ncbi.nlm.nih.gov/gene/672"
},
{
"label": "Ensembl",
"url": "https://www.ensembl.org/Homo_sapiens/Gene/Summary?g=ENSG00000012048"
},
{
"label": "UniProt",
"url": "https://www.uniprot.org/uniprotkb/P38398"
},
{
"label": "OMIM",
"url": "https://www.omim.org/entry/113705"
},
{
"label": "GeneCards",
"url": "https://www.genecards.org/cgi-bin/carddisp.pl?gene=BRCA1"
}
]
}
}GET /api/v1/variant/{rsid}
Example — rs6025. A variant with multiple ClinVar condition classifications returns all of them — 15 for this one; that is normal, not a formatting error:
curl https://genclarus.com/api/v1/variant/rs6025{
"kind": "variant",
"id": "rs6025",
"facts": {
"kind": "variant",
"rsid": "rs6025",
"gene": "F5",
"consequence": "missense variant",
"proteinChange": "p.Arg534Gln",
"alleleCount": 2,
"otherAlleles": [
{
"proteinChange": "",
"refAlt": "C>C",
"variantId": 226007,
"significance": "Conflicting interpretations"
}
],
"variantType": "single nucleotide variant",
"preferredName": "NM_000130.4(F5):c.1601G>A (p.Arg534Gln)",
"chrom": "1",
"position": 169549811,
"refAlt": "C>T",
"assembly": "GRCh38",
"conditionClassifications": [
{
"condition": "hormonal contraceptives for systemic use response - Toxicity",
"significance": "Drug response",
"rawSignificance": "drug response",
"significanceRank": 4,
"reviewStatus": "reviewed by expert panel",
"reviewStars": 3,
"origin": "germline",
"lastEvaluated": "2021-03-24"
},
{
"condition": "Congenital factor V deficiency",
"significance": "Pathogenic",
"rawSignificance": "Pathogenic",
"significanceRank": 0,
"reviewStatus": "criteria provided, multiple submitters, no conflicts",
"reviewStars": 2,
"origin": "unknown",
"lastEvaluated": "2025-02-03"
},
{
"condition": "Thrombophilia due to activated protein C resistance (THPH2)",
"significance": "Pathogenic",
"rawSignificance": "Pathogenic/Pathogenic, low penetrance",
"significanceRank": 0,
"reviewStatus": "criteria provided, multiple submitters, no conflicts",
"reviewStars": 2,
"origin": "germline",
"lastEvaluated": "2023-07-12"
},
{
"condition": "Factor V deficiency",
"significance": "Pathogenic",
"rawSignificance": "Pathogenic; risk factor",
"significanceRank": 0,
"reviewStatus": "criteria provided, multiple submitters, no conflicts",
"reviewStars": 2,
"origin": "germline",
"lastEvaluated": "2020-03-04"
},
{
"condition": "Ischemic stroke",
"significance": "Pathogenic",
"rawSignificance": "Pathogenic",
"significanceRank": 0,
"reviewStatus": "criteria provided, single submitter",
"reviewStars": 1,
"origin": "germline",
"lastEvaluated": "2024-06-19"
},
{
"condition": "Budd-Chiari syndrome (BDCHS)",
"significance": "Pathogenic",
"rawSignificance": "Pathogenic",
"significanceRank": 0,
"reviewStatus": "criteria provided, single submitter",
"reviewStars": 1,
"origin": "germline",
"lastEvaluated": "2024-06-19"
},
{
"condition": "Pregnancy loss, recurrent, susceptibility to, 1 (RPRGL1)",
"significance": "Pathogenic",
"rawSignificance": "Pathogenic",
"significanceRank": 0,
"reviewStatus": "criteria provided, single submitter",
"reviewStars": 1,
"origin": "germline",
"lastEvaluated": "2024-06-19"
},
{
"condition": "Congenital factor V deficiency",
"significance": "Pathogenic",
"rawSignificance": "Pathogenic",
"significanceRank": 0,
"reviewStatus": "criteria provided, single submitter",
"reviewStars": 1,
"origin": "germline",
"lastEvaluated": "2024-06-19"
},
{
"condition": "Inborn genetic diseases",
"significance": "Pathogenic",
"rawSignificance": "Pathogenic",
"significanceRank": 0,
"reviewStatus": "criteria provided, single submitter",
"reviewStars": 1,
"origin": "germline",
"lastEvaluated": "2018-01-23"
},
{
"condition": "Ischemic stroke",
"significance": "Risk factor",
"rawSignificance": "risk factor",
"significanceRank": 3,
"reviewStatus": "no assertion criteria provided",
"reviewStars": 0,
"origin": "germline",
"lastEvaluated": "2006-06-15"
},
{
"condition": "Budd-Chiari syndrome, susceptibility to",
"significance": "Risk factor",
"rawSignificance": "risk factor",
"significanceRank": 3,
"reviewStatus": "no assertion criteria provided",
"reviewStars": 0,
"origin": "germline",
"lastEvaluated": "2006-06-15"
},
{
"condition": "Pregnancy loss, recurrent, susceptibility to, 1 (RPRGL1)",
"significance": "Risk factor",
"rawSignificance": "risk factor",
"significanceRank": 3,
"reviewStatus": "no assertion criteria provided",
"reviewStars": 0,
"origin": "germline",
"lastEvaluated": "2006-06-15"
},
{
"condition": "Susceptibility to severe coronavirus disease (COVID-19) due to an impaired coagulation process",
"significance": "Uncertain significance",
"rawSignificance": "Uncertain significance",
"significanceRank": 6,
"reviewStatus": "no assertion criteria provided",
"reviewStars": 0,
"origin": "germline",
"lastEvaluated": "2021-06-29"
},
{
"condition": "not provided",
"significance": "Pathogenic",
"rawSignificance": "Pathogenic",
"significanceRank": 0,
"reviewStatus": "criteria provided, multiple submitters, no conflicts",
"reviewStars": 2,
"origin": "germline",
"lastEvaluated": "2025-03-04"
},
{
"condition": "not specified",
"significance": "Pathogenic",
"rawSignificance": "Pathogenic",
"significanceRank": 0,
"reviewStatus": "criteria provided, single submitter",
"reviewStars": 1,
"origin": "germline",
"lastEvaluated": "2021-02-22"
}
],
"distinctSignificances": [
"Pathogenic",
"Risk factor",
"Drug response",
"Uncertain significance"
],
"hasSomatic": false,
"hasGermline": true,
"gnomadAf": null,
"hasClinvar": true,
"hgvsId": "chr1:g.169519049C>T",
"variantId": 642,
"uniprot": "P12259",
"residue": 534,
"sources": [
{
"label": "dbSNP",
"url": "https://www.ncbi.nlm.nih.gov/snp/rs6025"
},
{
"label": "ClinVar",
"url": "https://www.ncbi.nlm.nih.gov/clinvar/variation/642/"
},
{
"label": "Ensembl",
"url": "https://www.ensembl.org/Homo_sapiens/Variation/Explore?v=rs6025"
},
{
"label": "gnomAD",
"url": "https://gnomad.broadinstitute.org/variant/1-169549811-C-T?dataset=gnomad_r4"
}
],
"retrievedAt": "2026-08-03T16:07:59.144Z"
},
"explanation": [
{
"text": "rs6025 is a genetic variant located in the F5 gene.",
"claimType": "identity",
"citations": [
{
"source": "dbsnp",
"field": "gene"
}
]
},
{
"text": "In ClinVar, rs6025 is classified as Drug response (toxicity) for hormonal contraceptives for systemic use response (3 review stars, germline; last evaluated 2021-03-24).",
"claimType": "classification_context",
"citations": [
{
"source": "clinvar",
"field": "classification"
},
{
"source": "clinvar",
"field": "review confidence"
},
{
"source": "clinvar",
"field": "origin"
},
{
"source": "clinvar",
"field": "assertion date"
}
]
},
{
"text": "In ClinVar, rs6025 is classified as Pathogenic for Congenital factor V deficiency (2 review stars; last evaluated 2025-02-03).",
"claimType": "classification_context",
"citations": [
{
"source": "clinvar",
"field": "classification"
},
{
"source": "clinvar",
"field": "review confidence"
},
{
"source": "clinvar",
"field": "assertion date"
}
]
},
{
"text": "In ClinVar, rs6025 is classified as Pathogenic (low penetrance) for Thrombophilia due to activated protein C resistance (THPH2) (2 review stars, germline; last evaluated 2023-07-12).",
"claimType": "classification_context",
"citations": [
{
"source": "clinvar",
"field": "classification"
},
{
"source": "clinvar",
"field": "review confidence"
},
{
"source": "clinvar",
"field": "origin"
},
{
"source": "clinvar",
"field": "assertion date"
}
]
},
{
"text": "In ClinVar, rs6025 is classified as Pathogenic (risk factor) for Factor V deficiency (2 review stars, germline; last evaluated 2020-03-04).",
"claimType": "classification_context",
"citations": [
{
"source": "clinvar",
"field": "classification"
},
{
"source": "clinvar",
"field": "review confidence"
},
{
"source": "clinvar",
"field": "origin"
},
{
"source": "clinvar",
"field": "assertion date"
}
]
},
{
"text": "In ClinVar, rs6025 is classified as Pathogenic for Ischemic stroke (1 review star, germline; last evaluated 2024-06-19).",
"claimType": "classification_context",
"citations": [
{
"source": "clinvar",
"field": "classification"
},
{
"source": "clinvar",
"field": "review confidence"
},
{
"source": "clinvar",
"field": "origin"
},
{
"source": "clinvar",
"field": "assertion date"
}
]
},
{
"text": "In ClinVar, rs6025 is classified as Pathogenic for Budd-Chiari syndrome (BDCHS) (1 review star, germline; last evaluated 2024-06-19).",
"claimType": "classification_context",
"citations": [
{
"source": "clinvar",
"field": "classification"
},
{
"source": "clinvar",
"field": "review confidence"
},
{
"source": "clinvar",
"field": "origin"
},
{
"source": "clinvar",
"field": "assertion date"
}
]
},
{
"text": "In ClinVar, rs6025 is classified as Pathogenic for Pregnancy loss, recurrent, susceptibility to, 1 (RPRGL1) (1 review star, germline; last evaluated 2024-06-19).",
"claimType": "classification_context",
"citations": [
{
"source": "clinvar",
"field": "classification"
},
{
"source": "clinvar",
"field": "review confidence"
},
{
"source": "clinvar",
"field": "origin"
},
{
"source": "clinvar",
"field": "assertion date"
}
]
},
{
"text": "In ClinVar, rs6025 is classified as Pathogenic for Congenital factor V deficiency (1 review star, germline; last evaluated 2024-06-19).",
"claimType": "classification_context",
"citations": [
{
"source": "clinvar",
"field": "classification"
},
{
"source": "clinvar",
"field": "review confidence"
},
{
"source": "clinvar",
"field": "origin"
},
{
"source": "clinvar",
"field": "assertion date"
}
]
},
{
"text": "In ClinVar, rs6025 is classified as Pathogenic for Inborn genetic diseases (1 review star, germline; last evaluated 2018-01-23).",
"claimType": "classification_context",
"citations": [
{
"source": "clinvar",
"field": "classification"
},
{
"source": "clinvar",
"field": "review confidence"
},
{
"source": "clinvar",
"field": "origin"
},
{
"source": "clinvar",
"field": "assertion date"
}
]
},
{
"text": "In ClinVar, rs6025 is classified as Risk factor for Ischemic stroke (0 review stars, germline; last evaluated 2006-06-15).",
"claimType": "classification_context",
"citations": [
{
"source": "clinvar",
"field": "classification"
},
{
"source": "clinvar",
"field": "review confidence"
},
{
"source": "clinvar",
"field": "origin"
},
{
"source": "clinvar",
"field": "assertion date"
}
]
},
{
"text": "In ClinVar, rs6025 is classified as Risk factor for Budd-Chiari syndrome, susceptibility to (0 review stars, germline; last evaluated 2006-06-15).",
"claimType": "classification_context",
"citations": [
{
"source": "clinvar",
"field": "classification"
},
{
"source": "clinvar",
"field": "review confidence"
},
{
"source": "clinvar",
"field": "origin"
},
{
"source": "clinvar",
"field": "assertion date"
}
]
},
{
"text": "In ClinVar, rs6025 is classified as Risk factor for Pregnancy loss, recurrent, susceptibility to, 1 (RPRGL1) (0 review stars, germline; last evaluated 2006-06-15).",
"claimType": "classification_context",
"citations": [
{
"source": "clinvar",
"field": "classification"
},
{
"source": "clinvar",
"field": "review confidence"
},
{
"source": "clinvar",
"field": "origin"
},
{
"source": "clinvar",
"field": "assertion date"
}
]
},
{
"text": "In ClinVar, rs6025 is classified as Uncertain significance for Susceptibility to severe coronavirus disease (COVID-19) due to an impaired coagulation process (0 review stars, germline; last evaluated 2021-06-29).",
"claimType": "classification_context",
"citations": [
{
"source": "clinvar",
"field": "classification"
},
{
"source": "clinvar",
"field": "review confidence"
},
{
"source": "clinvar",
"field": "origin"
},
{
"source": "clinvar",
"field": "assertion date"
}
]
},
{
"text": "In ClinVar, rs6025 is classified as Pathogenic for not provided (2 review stars, germline; last evaluated 2025-03-04).",
"claimType": "classification_context",
"citations": [
{
"source": "clinvar",
"field": "classification"
},
{
"source": "clinvar",
"field": "review confidence"
},
{
"source": "clinvar",
"field": "origin"
},
{
"source": "clinvar",
"field": "assertion date"
}
]
},
{
"text": "In ClinVar, rs6025 is classified as Pathogenic for not specified (1 review star, germline; last evaluated 2021-02-22).",
"claimType": "classification_context",
"citations": [
{
"source": "clinvar",
"field": "classification"
},
{
"source": "clinvar",
"field": "review confidence"
},
{
"source": "clinvar",
"field": "origin"
},
{
"source": "clinvar",
"field": "assertion date"
}
]
}
],
"explanationState": "deterministic_only",
"aiAvailable": false,
"fallbackReason": null,
"provenance": {
"factsHash": "5f13eb02a589a06a",
"promptVersion": "4.0.1",
"modelId": "meta/llama-3.1-8b-instruct",
"schemaVersion": "3.0.0",
"corpusSchemaVersion": "2.0.0",
"generatedAt": "2026-08-03T16:08:00.655Z",
"retrievedAt": "2026-08-03T16:07:59.144Z",
"sources": [
{
"label": "dbSNP",
"url": "https://www.ncbi.nlm.nih.gov/snp/rs6025"
},
{
"label": "ClinVar",
"url": "https://www.ncbi.nlm.nih.gov/clinvar/variation/642/"
},
{
"label": "Ensembl",
"url": "https://www.ensembl.org/Homo_sapiens/Variation/Explore?v=rs6025"
},
{
"label": "gnomAD",
"url": "https://gnomad.broadinstitute.org/variant/1-169549811-C-T?dataset=gnomad_r4"
}
]
}
}An identifier outside the corpus returns 404:
{
"status": 404,
"body": {
"error": "Not found in corpus."
}
}(Verified above: NOTAGENEis not in this build's corpus.)
POST /api/v1/batch
Annotate a whole panel in one call — body is { ids: string[] }, capped at 100 ids. Each result carries the same PublicRecord shape as the single-record endpoints (abbreviated below — see the full shape in the GET examples above):
curl https://genclarus.com/api/v1/batch \
-X POST \
-H "Content-Type: application/json" \
-d '{"ids":["BRCA1","rs6025","NOTAGENE"]}'{
"results": [
{ "id": "BRCA1", "found": true, "record": { "kind": "gene", "id": "BRCA1", "facts": { ... }, "explanation": [ ... ], "aiAvailable": true, "fallbackReason": null, "provenance": { "factsHash": "6a8371111935ad16", ... } } },
{ "id": "rs6025", "found": true, "record": { "kind": "variant", "id": "rs6025", "facts": { ... }, "explanation": [ ... ], "aiAvailable": true, "fallbackReason": null, "provenance": { "factsHash": "5f13eb02a589a06a", ... } } },
{ "id": "NOTAGENE", "found": false }
],
"counts": { "requested": 3, "found": 2, "notFound": 1 }
}A malformed batch request (wrong body shape, empty/duplicate-free >100 ids, non-string id) returns 400/413/415 with { error, requestId } — the single-record GET 404 above never includes a requestId; only the validated-body batch route does.
There is no published rate limit yet (pilot terms — see below); the only enforced bound today is the 100-id batch cap. Authentication is not required — these are public, unmetered reads of public-record content.
Usage & privacy
Educational, non-diagnostic — and what we do (and don't) collect
Privacy & metering — the approach we're building toward
The principles below are the documented policy this integration is designed around. Some are already true of the shipping code (noted); usage metering is a planned step, not a system running today — read the distinction carefully before relying on it for billing.
- Contextual/aggregate only. Any future usage measurement (widget loads, API calls) is designed to be contextual and aggregate — counts and timestamps, not per-lookup identity trails.
- No sensitive data collected or forwarded, ever. No genotype, no rsID search terms tied to a person, no family history, and no health data is collected or sent to third parties by this product — today or planned. A gene or rsID passed to the widget/API is public-record content, not a data point about the requester.
- No remarketing on gene/rsID. A visitor who looks up a gene or an rsID must never be retargeted as if a condition were inferred about them. This is a hard rule, not a configuration option.
- Per-tenant billing metering — planned, not built. Today,
/api/v1and/embedare unauthenticated public reads with no metering datastore behind them. Per-tenant usage metering for billing is planned as a Supabase-backed addition, to be introduced with the first paying pilot — not before. Nothing here should be read as "usage is currently tracked and billed."
Questions about a pilot, provenance/update cadence, or a corpus gap for your use case — try the live playground and reach out from there.
Educational information only — not medical advice, a diagnosis, or a clinical recommendation.