Restless Leg Syndrome ICD 10 Code G25.81 A Guide

Michael Rodriguez, PhDMichael Rodriguez, PhD
April 6, 2026
16 min read
Restless Leg Syndrome ICD 10 Code G25.81 A Guide

When working with healthcare data, the primary ICD-10-CM code for Restless Legs Syndrome is G25.81. This is the specific, billable code you'll encounter in clinical records for diagnosis and billing related to RLS, which is also known by its formal name, Willis-Ekbom disease.

Your Quick Reference for RLS ICD-10 Code G25.81

ICD-10 code G25.81 for Restless Legs Syndrome, a disease of the nervous system.

For anyone in the health data space-from ETL developers and data scientists to clinical researchers-understanding the nuances of G25.81 is fundamental. This single code is the anchor for identifying RLS patient populations, ensuring your analyses are accurate and your patient cohorts are built on a solid foundation.

G25.81 Code Details

The code G25.81 is filed under Chapter 6 of the ICD-10-CM, which is dedicated to "Diseases of the Nervous System." This placement is clinically significant. It correctly classifies RLS as a neurological movement disorder, distinguishing it from sleep or psychiatric conditions, even though it often presents with symptoms that overlap with both.

Correctly mapping and interpreting this code is a critical task for data professionals. To see how this code connects to other concepts in a standardized vocabulary, you can use practical tools like the Concept Lookup on OMOPHub.

Here’s a quick breakdown of the essential attributes for G25.81.

Table: ICD-10-CM G25.81 Details

AttributeDetail
ICD-10-CM CodeG25.81
Official DescriptionRestless legs syndrome
Chapter6: Diseases of the Nervous System
CategoryG20-G26: Extrapyramidal and movement disorders
Billable/SpecificYes, this is a billable code.

This table provides a high-level summary, giving you the most important information at a glance. It confirms that G25.81 is not a general category code but a specific, terminal code ready for use in claims and clinical documentation.

Understanding RLS Prevalence and Diagnostic Criteria

Before you can confidently work with the restless legs syndrome ICD-10 code G25.81, you have to get a feel for the clinical reality it represents. Restless Legs Syndrome (RLS) isn't diagnosed with a blood test or a scan; it’s a neurological condition identified by a very specific cluster of symptoms. This subjective, criteria-based diagnosis is precisely why you'll see such a wide range of prevalence estimates in the literature.

Just how wide? A major North American review found that general prevalence rates among adults can swing from as low as 4% all the way up to 29%. The average settled around 14.5%. But when researchers applied the more rigorous criteria from the International Restless Legs Syndrome Study Group (IRLSSG), that average tightened to 12.3%. The statistical variations in these RLS prevalence findings really drive home why a standardized vocabulary is non-negotiable for reliable analytics.

The Five Essential Diagnostic Criteria

The IRLSSG established five core criteria that absolutely must be met for a clinician to make a definitive RLS diagnosis. As a data analyst, knowing these criteria helps you understand the story behind the code.

  • An urge to move the legs: This is the hallmark symptom, often paired with uncomfortable or painful sensations.
  • Worsening at rest: The urge and discomfort either start or get much worse during periods of inactivity, like sitting in a chair or lying in bed.
  • Relief with movement: Getting up, walking around, or stretching provides at least partial, if not complete, relief.
  • Worsening in the evening or night: The symptoms have a clear circadian rhythm, becoming most severe as the day ends.
  • Exclusion of other conditions: A physician must rule out other potential causes, ensuring the symptoms aren't just leg cramps, positional discomfort, or something else entirely.

Grasping these five points gives you crucial domain knowledge. It becomes immediately clear why a simple keyword search for "leg pain" in clinical notes is a flawed approach for building a cohort. The specificity of the restless leg syndrome ICD-10 code G25.81 is what provides the necessary precision, filtering out the noise and ensuring your dataset is built on a solid clinical foundation.

Mapping RLS Between ICD-10-CM and SNOMED CT

When you're working with data from different health systems, you immediately run into a fundamental problem: everyone uses different codes. For large-scale research to be even remotely possible, this raw data has to be standardized. This is precisely where vocabulary mapping, a cornerstone of the OMOP Common Data Model, comes into play.

The process involves translating a source code-in this case, the restless leg syndrome ICD-10 code, G25.81-into a standard concept within a reference terminology like SNOMED CT. This isn't just a simple code swap. The real goal is to find the SNOMED CT concept that precisely captures the clinical meaning of G25.81. For RLS, that primary target is SNOMED CT Concept ID 130983006, which represents "Restless legs syndrome." This step ensures that no matter if a patient was diagnosed using ICD-10-CM, ICD-9-CM, or another system, all records point to a single, unified concept for analysis.

Finding the Right SNOMED CT Concept

While 130983006 is the main destination, a thorough mapping strategy goes deeper. You also need to consider related concepts that might be used in a differential diagnosis or to describe specific symptoms. This is crucial for building more refined patient cohorts and, just as importantly, avoiding misclassification. If you want to dive deeper into the theory behind this, we have a complete guide on semantic mapping in healthcare data.

This concept map breaks down the essential criteria that clinicians use to make an RLS diagnosis.

Diagram illustrating the diagnostic criteria for Restless Legs Syndrome (RLS) with four key symptoms.

As the diagram shows, a diagnosis isn't based on a single biomarker. It's really about a cluster of symptoms: the urge to move, symptoms worsening during rest, and getting relief with movement.

Practical Tips for Vocabulary Mapping

Trying to find all these relationships by hand is not only tedious but also incredibly error-prone. This is where specialized tools become an indispensable part of your workflow.

A great first step is to use a free tool to explore these connections visually. This helps you confirm that your ETL logic aligns with established vocabulary relationships before you ever write a line of code.

For instance, you can use OMOPHub’s free Concept Lookup tool to plug in "G25.81" and instantly see its direct mapping to the standard SNOMED CT concept. Taking a moment for this kind of validation is a critical step in building an accurate and reliable data pipeline.

Automating G25.81 Mapping With The OMOPHub API

A hand typing code on a laptop screen, showing ICD-10 mapping and data processing concepts.

When you're dealing with data at scale, manually mapping codes like the restless leg syndrome ICD-10 code G25.81 just isn't feasible. It's not only slow but also introduces a high risk of error that can compromise your entire analysis. This is where you have to move beyond manual lookups and local vocabulary tables.

A much better approach is to integrate code mapping directly into your ETL pipeline. By calling the OMOPHub API, your team can programmatically translate source codes into standard OMOP concepts on the fly. This keeps your development process nimble and guarantees your mappings are always based on the latest vocabulary releases.

Using the OMOPHub Python SDK

If your team is building its data pipelines in Python, the OMOPHub Python SDK makes interacting with the API incredibly simple. Here’s a quick look at how you can find the standard OMOP concept for G25.81.

from omophub.client import OMOPHubClient

# Initialize the client with your API key
client = OMOPHubClient(api_key="YOUR_API_KEY")

# Search for the G25.81 concept
response = client.concepts.search(
  query="G25.81",
  vocabulary_id=["ICD10CM"]
)

# Print the standard concept ID
if response.items:
  concept = response.items[0]
  print(f"Source Code: {concept.concept_code}")
  print(f"Standard Concept ID: {concept.standard_concept_id}")
  print(f"Domain ID: {concept.domain_id}")

This script searches for "G25.81" specifically within the "ICD10CM" vocabulary. The most important piece of information returned is the standard_concept_id, which is the value you'll use to populate the condition_concept_id field in your OMOP CONDITION_OCCURRENCE table. For a more detailed walkthrough of code translation, our guide on the ICD-10 codes converter process is a great resource.

Mapping G25.81 With the OMOPHub R SDK

For the many data scientists and biostatisticians working in R, the OMOPHub R SDK offers the same direct, programmatic mapping capabilities. The workflow is just as clean.

# Load the OMOPHub library
library(omophub)

# Set your API key
Sys.setenv(OMOPHUB_API_KEY = "YOUR_API_KEY")

# Find the concept for G25.81
result <- concepts_search(
  query = "G25.81",
  vocabulary_id = c("ICD10CM")
)

# Access the mapping details
if (length(result$items) > 0) {
  concept <- result$items[[1]]
  cat("Source Code:", concept$concept_code, "\n")
  cat("Standard Concept ID:", concept$standard_concept_id, "\n")
  cat("Domain ID:", concept$domain_id, "\n")
}

Pro Tip: Always check the domain_id returned by the API. For G25.81, the domain should be "Condition." This simple check confirms the concept is classified correctly before you load it into your condition tables.

Both SDKs offer a reliable, ready-to-use method for automating what used to be a tedious manual task. To see more advanced queries, you can explore the official API documentation and check out the full code examples we've provided.

Analyzing RLS With Comorbid Psychiatric Conditions

Anyone working with clinical data knows that Restless Legs Syndrome, represented by the ICD-10-CM code G25.81, isn't evenly distributed across patient populations. In fact, its prevalence spikes among patients with psychiatric disorders, making this a crucial intersection for researchers and data analysts to investigate. If you're building research cohorts or predictive models, you can't afford to ignore this comorbidity.

The connection between RLS and conditions like depression and anxiety is a two-way street. We have a solid body of research showing that patients with RLS are two to four times more likely to develop depressive disorders than those without. This is a classic example of where analyzing conditions in a silo breaks down and why working within a standardized data model is so valuable.

Querying for Comorbid Conditions in OMOP

This is a perfect use case for the OMOP Common Data Model. Because every diagnosis code is mapped to a standard concept, you can construct a cohort of patients with both RLS and a psychiatric disorder with a single query, no matter what source codes were originally used. It's a game-changer for sophisticated, clinically meaningful cohort design.

For instance, studies in psychiatric settings consistently find elevated rates of RLS. One analysis of psychiatric outpatients found RLS in a staggering 19.1% of people, who also reported significantly worse sleep disturbances. You can dig into the specifics in the full psychiatric comorbidity research paper.

To build a cohort with both RLS and depression, your work would center on the CONDITION_OCCURRENCE table. You'd simply filter for records containing the standard concept IDs for both conditions. This shows how a common vocabulary makes complex epidemiological research possible, something that would be a messy, time-consuming nightmare with disconnected, non-standard data.

Tips for Analyzing RLS Comorbidities

Precision is key when you start building these cohorts. Here are a few practical tips for exploring the overlap between RLS and psychiatric conditions:

  • Think in Concept Sets: Don't just query for a single concept ID. A better approach is to build concept sets for broader categories like "Depressive Disorders" or "Anxiety Disorders." This ensures you capture the full clinical picture by including a wide range of related diagnostic codes.
  • Use the API to Your Advantage: You can find all the descendant concepts for a high-level psychiatric disorder programmatically with the OMOPHub API. To make this even easier, we provide dedicated SDKs for Python and R that help you get the job done with just a few lines of code.
  • Always Validate Your Cohorts: Once you've defined a cohort, run some basic validation checks. For example, look at the medications prescribed to your patient set. Seeing a high rate of antidepressant use can give you confidence that your cohort definition for depression is clinically sound. You can find more detailed examples in our API documentation.

Building Comprehensive RLS Cohorts in OMOP

Venn diagram illustrating medical concepts: drugs, lab tests, and procedures, centered around a human.

When building a patient cohort for Restless Legs Syndrome (RLS), just filtering for the ICD-10-CM code G25.81 is only the first step. To get a truly meaningful picture, you have to look at the entire patient journey. Within the OMOP Common Data Model, this means digging into several different data domains.

By moving beyond the CONDITION_OCCURRENCE table, your queries can assemble a much richer, more clinically complete dataset. This multi-domain approach is what lets you uncover patterns in treatments, diagnostic workups, and related conditions that add critical context to your RLS research.

Identifying Key Concepts Across OMOP Domains

A complete profile of an RLS patient often emerges from clues found in the Drug, Procedure, and Measurement domains. Each one tells a part of the story, from the initial workup to long-term management.

To get the full story on your RLS population, you'll need to pull concepts from several key OMOP domains. The table below outlines where to look and what you can expect to find.

OMOP Domains for Comprehensive RLS Analysis

OMOP DomainExample ConceptsVocabulary
ConditionRestless legs syndrome, Iron deficiency anemiaSNOMED, ICD-10-CM
DrugPramipexole, Ropinirole, Ferrous sulfateRxNorm
ProcedurePolysomnography (sleep study)SNOMED, CPT4
MeasurementSerum ferritin level, HemoglobinLOINC

This framework helps organize your search for the concepts that will define a robust and clinically accurate RLS cohort.

For a deeper dive into building these types of populations, you can learn more about cohort study design in our related article.

Practical Steps for Finding Related Concepts

Finding all these related concepts programmatically is a core skill for anyone working with OMOP data. Instead of sifting through vocabulary tables by hand, you can use the OMOPHub API to pinpoint the standard concepts you need much more efficiently.

For instance, to find the standard concept for a common RLS medication, you could search the API for "pramipexole" and filter for concepts in the Drug domain.

Pro Tip: When searching for medications, always use generic drug names instead of brand names. The OMOP standard vocabularies do map brand names back to their generic ingredients, but searching directly for the generic name is just a more direct and reliable approach.

This method lets you systematically build concept sets for all the RLS-related drugs, procedures, and lab tests relevant to your study. With these sets in hand, you're ready to write powerful SQL queries that construct a highly detailed cohort-the foundation you need for high-impact clinical research. You can streamline this process even further using the Python or R SDKs.

Common Mistakes and Best Practices For RLS Data

When you're working with data on Restless Legs Syndrome, a few common traps can easily derail your analysis. One of the biggest pitfalls I see is cohort contamination. This happens when patients with similar, but ultimately different, conditions get lumped in with those who have a confirmed restless leg syndrome ICD 10 diagnosis of G25.81.

A classic example is confusing RLS with nocturnal leg cramps. Both involve leg discomfort at night, sure, but their clinical pathways and root causes are completely different. If you fail to separate them, your patient counts will be wrong, and any conclusions you draw from that data will be shaky at best. This is precisely why strict adherence to diagnostic criteria is non-negotiable during data mapping.

Avoiding Common Data Pitfalls

To keep your data clean and your analysis sound, it's crucial to build good habits. Here’s what I’ve learned to do to avoid these common errors:

  • Stick to Standard Concepts: Always map source codes like G25.81 to their corresponding standard OMOP concept ID during your ETL process. If you only use source concepts, your data is siloed, making it useless for the multi-site studies that drive major insights.
  • Double-Check Your Concept Sets: Before you run a single query, take the time to validate your RLS concept set. This isn’t just about making sure the primary diagnosis is included; it’s also about actively excluding known mimics. The OMOPHub Concept Lookup tool is great for exploring these relationships.
  • Write Down Your Logic: Always document your ETL logic and how you defined your cohort. This makes your work transparent and reproducible, which is the cornerstone of good science. It allows others to trust and build on what you’ve done.

The Impact of Diagnostic Rigor

Just how much does this precision matter? A lot, as it turns out. You can see the real-world impact in how prevalence estimates for RLS swing dramatically depending on the rigor applied.

Broader studies often report a prevalence of 5-10%. However, epidemiological research that applied stricter DSM-5 criteria found that the prevalence of frequent RLS symptoms was just 1.6%. When you get even more granular and carefully filter out clinical mimics, that number can plummet to as low as 0.4%. These findings on RLS prevalence really highlight how much the details matter.

Here’s another key practice: actively manage your vocabulary versions. Terminologies like ICD-10-CM and SNOMED CT are constantly evolving, and mappings can change from one release to the next. Using an API-first approach, like the OMOPHub Python SDK, helps ensure you’re always pulling the most current and accurate mappings. For a deeper dive, the official OMOPHub documentation is an essential resource.

Common Questions on RLS and OMOP

When working with Restless Legs Syndrome data in the OMOP Common Data Model, a few common questions always seem to pop up. Here are some straightforward answers to guide your data mapping and analysis efforts.

What Is the Difference Between the ICD-9 and ICD-10 Code for RLS?

The older, legacy ICD-9 system used code 333.94 for RLS. Today, the much more specific ICD-10-CM code is G25.81.

A crucial part of any data modernization project is mapping this historical ICD-9 data to the current standard OMOP concept. This process can be significantly streamlined by automating the mapping with a tool like the OMOPHub API.

How Should I Handle Non-Specific Leg Symptom Codes in an ETL Process?

This is a classic data quality pitfall. You'll often encounter vague source codes for symptoms like 'leg pain,' and it's tempting to map them directly to RLS. Don't do it.

A much better approach is to map these general symptoms to their own standard symptom concepts within OMOP. Your cohort definitions should then strictly require the specific G25.81 diagnosis code. This discipline is what ensures the purity of your RLS cohort and the reliability of your research. Ultimately, high-quality clinical documentation at the source is the best way to prevent these ambiguities from affecting your data analysis down the line.

Where Can I Find More OMOPHub API Examples?

The official documentation is the best place to start. It's packed with detailed code examples covering a wide range of use cases, from basic concept lookups to more advanced mapping and relationship traversal.


Accelerate your healthcare data projects with OMOPHub. Get instant, reliable access to standardized vocabularies via a developer-first API, eliminating the need for local database management. Generate your free API key and start building today at https://omophub.com.

Share: