Physical & Occupational Therapy in Minnesota
Physical therapists and occupational therapists registered with a practice address in this area, including their board-recognised specialty areas.
How density varies inside Minnesota
Each bar is the number of places at that level of provider density. A long right tail means a few places carry far more providers per resident than the rest of the state.
There are 9,821 licensed therapists registered in Minnesota. The two most common licence types are physical therapist (5,525) and occupational therapist (3,394).
Minnesota ranks 18th of 56 states and territories by the number of registered providers in this field.
The largest single group is physical therapist, at 5,525 providers or 56% of the total. Licence titles vary between states for what is often similar training and scope, so the mix here partly reflects how Minnesota licenses its providers.
No single licence type dominates here — physical therapist and occupational therapist are within reach of each other. For most common reasons to seek therapy, the distinction between those licences matters less than availability and cost.
Providers are registered in 466 distinct places across Minnesota. The map shows the ZIP codes with the highest counts.
These counts come from the federal NPI registry. A provider appears here if they hold an active NPI with a practice address in this area — it does not mean they are currently accepting new clients, and the registry does not record insurance, fees or availability.
How Minnesota got here
new registrations per yearEach registration carries the year it was issued, so the registry doubles as a record of when this workforce grew in Minnesota. A rising line means the constraint is easing; a flat one means today's shortage is likely to be next year's too.
Who they are
self-reported to CMS78.7% of registered licensed therapists in Minnesota are women. Nationally the figure varies a great deal by licence type — occupational therapy at one end, psychiatry at the other. See the national breakdown.
You can filter any city list on this site by gender. We show it because it is one of the most common things people search for and, for some kinds of work, a real need — but it is only ever a filter here, never a ranking.
Where they are registered
circle size = providers in that ZIP codeBy licence type
Places in Minnesota
328 of 328 have their own page so far| Place | Providers | Population | Per 10k |
|---|---|---|---|
| Minneapolis | 1,190 | 430,324 | 27.7 |
| Rochester | 877 | 124,292 | |
| Duluth | 405 | 88,330 | 45.9 |
| St. Louis Park | 370 | 50,027 | 74.0 |
| St. Paul | 352 | 306,684 | 11.5 |
| Edina | 323 | 54,356 | 59.4 |
| Woodbury | 279 | 81,558 | 34.2 |
| Minnetonka | 214 | 53,969 | 39.7 |
| Bloomington | 214 | 89,034 | 24.0 |
| Burnsville | 208 | 65,244 | 31.9 |
| Golden Valley | 171 | 21,325 | 80.2 |
| Coon Rapids | 161 | 64,193 | 25.1 |
| Maple Grove | 160 | 73,893 | 21.7 |
| Eagan | 158 | 67,109 | 23.5 |
| Sartell | 143 | 19,918 | |
| Falcon Heights | 131 | 5,071 | |
| Eden Prairie | 128 | 63,075 | 20.3 |
| Plymouth | 126 | 78,942 | 16.0 |
| Stillwater | 120 | 19,354 | 62.0 |
| Mankato | 111 | 46,529 | 23.9 |
| Waconia | 110 | 14,113 | |
| Maplewood | 106 | 40,717 | 26.0 |
| Fridley | 84 | 30,829 | 27.2 |
| Waite Park | 77 | 8,450 | |
| Andover | 75 | 33,874 | 22.1 |
| Vadnais Heights | 73 | 13,052 | 55.9 |
| Roseville | 67 | 35,663 | 18.8 |
| Detroit Lakes | 64 | 10,019 | 63.9 |
| Bemidji | 64 | 15,770 | 40.6 |
| Blaine | 62 | 76,603 | 8.1 |
| Apple Valley | 60 | 55,248 | 10.9 |
| Brooklyn Park | 57 | 83,543 | 6.8 |
| Marshall | 56 | 14,171 | 39.5 |
| Richfield | 55 | 36,593 | 15.0 |
| Alexandria | 55 | 15,045 | 36.6 |
| Cambridge | 52 | 11,090 | 46.9 |
| Buffalo | 51 | 16,878 | 30.2 |
| Shoreview | 48 | 26,906 | 17.8 |
| Brainerd | 47 | 14,428 | 32.6 |
| Northfield | 46 | 21,992 | 20.9 |
| Winona | 45 | 26,530 | 17.0 |
| Hopkins | 45 | 19,523 | 23.0 |
| Red Wing | 44 | 16,805 | 26.2 |
| Hutchinson | 43 | 14,655 | 29.3 |
| Hastings | 43 | 22,563 | 19.1 |
| Faribault | 43 | 25,040 | 17.2 |
| Virginia | 42 | 8,187 | 51.3 |
| Chanhassen | 42 | 25,748 | 16.3 |
| Robbinsdale | 41 | 14,030 | 29.2 |
| New Hope | 41 | 20,807 | 19.7 |
| Baxter | 41 | 9,217 | 44.5 |
| Anoka | 41 | 18,169 | 22.6 |
| Mendota | 40 | 269 | |
| Monticello | 38 | 15,670 | 24.3 |
| Owatonna | 36 | 26,633 | 13.5 |
| Grand Rapids | 36 | 11,181 | 32.2 |
| White Bear Lake | 35 | 23,392 | 15.0 |
| Forest Lake | 35 | 20,952 | 16.7 |
| Chaska | 34 | 30,513 | 11.1 |
| Park Rapids | 33 | 4,447 | 74.2 |
| Inver Grove Heights | 33 | 36,873 | 8.9 |
| Wyoming | 32 | 8,121 | 39.4 |
| New Ulm | 31 | 13,863 | 22.4 |
| Moorhead | 31 | 46,533 | 6.7 |
| Lakeville | 30 | 79,270 | 3.8 |
| Willmar | 29 | 22,001 | 13.2 |
| Elk River | 29 | 27,896 | 10.4 |
| West St. Paul | 28 | 21,950 | 12.8 |
| Shakopee | 28 | 49,366 | 5.7 |
| Lino Lakes | 28 | 23,220 | 12.1 |
| Hermantown | 28 | 10,110 | 27.7 |
| Hibbing | 27 | 15,823 | 17.1 |
| Princeton | 24 | 5,480 | |
| North Mankato | 24 | 14,165 | 16.9 |
| Mendota Heights | 24 | 11,475 | 20.9 |
| Cottage Grove | 24 | 43,604 | 5.5 |
| Albert Lea | 24 | 18,217 | 13.2 |
| Worthington | 23 | 13,979 | 16.5 |
| Ortonville | 23 | 1,967 | 116.9 |
| Oak Park Heights | 23 | 4,625 | 49.7 |
| Little Canada | 23 | 10,567 | 21.8 |
| East Grand Forks | 22 | 8,906 | 24.7 |
| Breckenridge | 22 | 3,323 | 66.2 |
| Austin | 22 | 26,689 | 8.2 |
| Lake Elmo | 21 | 14,376 | 14.6 |
| Otsego | 20 | 24,525 | |
| Mora | 20 | 3,763 | 53.1 |
| Moose Lake | 20 | 2,948 | 67.8 |
| New Brighton | 19 | 22,159 | 8.6 |
| Morris | 19 | 5,150 | 36.9 |
| Rogers | 18 | 15,606 | 11.5 |
| Thief River Falls | 17 | 8,799 | 19.3 |
| St. Cloud | 17 | 72,647 | 2.3 |
| Prior Lake | 17 | 28,140 | 6.0 |
| New Prague | 17 | 8,238 | 20.6 |
| Little Falls | 17 | 9,277 | 18.3 |
| Farmington | 17 | 25,425 | 6.7 |
| Wayzata | 16 | 4,344 | 36.8 |
| Crookston | 16 | 7,375 | |
| Wadena | 15 | 4,341 | 34.6 |
| Oakdale | 15 | 30,588 | |
| Lilydale | 15 | 845 | |
| Fairmont | 15 | 10,099 | 14.9 |
| Excelsior | 15 | 2,316 | 64.8 |
| Watertown | 14 | 4,789 | 29.2 |
| Two Harbors | 14 | 3,443 | 40.7 |
| Rosemount | 14 | 31,881 | 4.4 |
| Litchfield | 14 | 6,528 | 21.4 |
| Fergus Falls | 14 | 14,246 | 9.8 |
| Savage | 12 | 32,970 | 3.6 |
| Mahtomedi | 12 | 8,189 | 14.7 |
| Luverne | 12 | 4,984 | 24.1 |
| Lake City | 12 | 5,306 | 22.6 |
| Cloquet | 12 | 12,399 | 9.7 |
| Annandale | 12 | 3,801 | 31.6 |
| Victoria | 11 | 12,447 | 8.8 |
| Staples | 11 | 3,074 | 35.8 |
| Sauk Rapids | 11 | 13,768 | 8.0 |
| Ramsey | 11 | 29,624 | 3.7 |
| Minneota | 11 | 1,357 | 81.1 |
| Circle Pines | 11 | 4,967 | 22.1 |
| Aitkin | 11 | 2,155 | 51.0 |
| Waseca | 10 | 9,035 | 11.1 |
| Wabasha | 10 | 2,599 | 38.5 |
| St. Michael | 10 | 22,498 | 4.4 |
| Redwood Falls | 10 | 5,040 | 19.8 |
| Columbia Heights | 10 | 22,482 | 4.4 |
| Cold Spring | 10 | 4,329 | 23.1 |
| Sandstone | 9 | 2,543 | 35.4 |
| St. Peter | 9 | 12,275 | 7.3 |
| Pelican Rapids | 9 | 2,608 | 34.5 |
| Esko | 9 | ||
| Champlin | 9 | 23,125 | 3.9 |
| Brooklyn Center | 9 | 31,846 | 2.8 |
| Big Lake | 9 | 12,929 | 7.0 |
| Ada | 9 | 1,712 | 52.6 |
| North St. Paul | 8 | 12,780 | 6.3 |
| Howard Lake | 8 | 2,288 | 35.0 |
| Glencoe | 8 | 5,632 | 14.2 |
| Deer River | 8 | 926 | |
| Crystal | 8 | 22,239 | 3.6 |
| Bethel | 8 | 484 | |
| Bagley | 8 | 1,310 | 61.1 |
| Albertville | 8 | 8,544 | 9.4 |
| Albany | 8 | 2,873 | 27.8 |
| Windom | 7 | 4,817 | 14.5 |
| Wheaton | 7 | 1,330 | 52.6 |
| Springfield | 7 | 1,980 | 35.4 |
| Rushford | 7 | 1,849 | 37.9 |
| Jordan | 7 | 6,988 | 10.0 |
| Gaylord | 7 | 2,353 | 29.7 |
| Crosby | 7 | 2,330 | 30.0 |
| Cass Lake | 7 | 677 | |
| Canby | 7 | 1,674 | 41.8 |
| Zimmerman | 6 | 6,904 | 8.7 |
| Walker | 6 | 976 | 61.5 |
| Roseau | 6 | 2,685 | 22.3 |
| Olivia | 6 | 2,288 | 26.2 |
| Ogema | 6 | 200 | |
| Mahnomen | 6 | 1,181 | 50.8 |
| Madison | 6 | 1,504 | 39.9 |
| International Falls | 6 | 5,481 | 10.9 |
| Hugo | 6 | 17,167 | 3.5 |
| Grand Marais | 6 | 1,290 | 46.5 |
| Fosston | 6 | 1,383 | 43.4 |
| Cannon Falls | 6 | 4,209 | 14.3 |
| Aurora | 6 | 1,643 | |
| Arden Hills | 6 | 9,583 | 6.3 |
| Zumbrota | 5 | 4,072 | 12.3 |
| Pierz | 5 | 1,450 | 34.5 |
| Perham | 5 | 3,746 | 13.3 |
| North Oaks | 5 | 5,283 | 9.5 |
| North Branch | 5 | 12,398 | 4.0 |
| New London | 5 | 1,322 | 37.8 |
| Montevideo | 5 | 5,335 | 9.4 |
| Milaca | 5 | 3,041 | 16.4 |
| Madelia | 5 | 2,488 | 20.1 |
| Hawley | 5 | 2,285 | 21.9 |
| Glenwood | 5 | 2,631 | 19.0 |
| Dodge Center | 5 | 2,951 | 16.9 |
| Cook | 5 | 515 | 97.1 |
| Cokato | 5 | 2,793 | 17.9 |
| Chisholm | 5 | 4,625 | 10.8 |
| Battle Lake | 5 | 930 | 53.8 |
| St. James | 4 | 4,863 | 8.2 |
| Rockford | 4 | 4,827 | 8.3 |
| Proctor | 4 | 3,054 | 13.1 |
| Pine City | 4 | 3,820 | 10.5 |
| Paynesville | 4 | 2,591 | 15.4 |
| Osseo | 4 | 2,534 | 15.8 |
| Onamia | 4 | 839 | |
| Loretto | 4 | 613 | |
| Ham Lake | 4 | 17,104 | 2.3 |
| Foley | 4 | 2,650 | 15.1 |
| Elbow Lake | 4 | 1,276 | 31.3 |
| Chisago City | 4 | 5,955 | 6.7 |
| Warroad | 3 | 1,976 | 15.2 |
| Spring Lake Park | 3 | 7,127 | 4.2 |
| South St. Paul | 3 | 20,532 | 1.5 |
| Shorewood | 3 | 7,620 | 3.9 |
| Sauk Centre | 3 | 4,663 | 6.4 |
| Pipestone | 3 | 4,100 | 7.3 |
| Maple Plain | 3 | 1,653 | 18.1 |
| Le Sueur | 3 | 4,210 | 7.1 |
| Landfall | 3 | 847 | |
| La Crescent | 3 | 5,261 | 5.7 |
| Isanti | 3 | 7,714 | 3.9 |
| Hinckley | 3 | 1,992 | 15.1 |
| Hallock | 3 | 865 | 34.7 |
| Granite Falls | 3 | 2,691 | 11.1 |
| East Bethel | 3 | 12,605 | 2.4 |
| Delano | 3 | 7,788 | 3.9 |
| Carlton | 3 | 965 | 31.1 |
| Blackduck | 3 | 815 | 36.8 |
| Appleton | 3 | 1,361 | 22.0 |
| Winsted | 2 | 2,209 | 9.1 |
| Warren | 2 | 1,558 | 12.8 |
| Spicer | 2 | 1,096 | 18.2 |
| St. Paul Park | 2 | 5,396 | 3.7 |
| Plainview | 2 | 3,482 | 5.7 |
| Pequot Lakes | 2 | 2,483 | 8.1 |
| Nisswa | 2 | 2,217 | 9.0 |
| Mound | 2 | 9,064 | 2.2 |
| Minnesota Lake | 2 | 662 | 30.2 |
| Madison Lake | 2 | 1,315 | 15.2 |
| Littlefork | 2 | 530 | 37.7 |
| Lindstrom | 2 | 5,039 | 4.0 |
| Le Center | 2 | 2,524 | 7.9 |
| Kenyon | 2 | 1,885 | 10.6 |
| Janesville | 2 | 2,473 | 8.1 |
| Frazee | 2 | 1,310 | 15.3 |
| Franklin | 2 | 510 | 39.2 |
| Eveleth | 2 | 3,381 | 5.9 |
| Ely | 2 | 3,231 | 6.2 |
| Elko New Market | 2 | 5,300 | 3.8 |
| Dundas | 2 | 1,833 | 10.9 |
| Dawson | 2 | 1,444 | 13.9 |
| Dassel | 2 | 1,524 | 13.1 |
| Crosslake | 2 | 2,412 | 8.3 |
| Clearwater | 2 | 2,225 | 9.0 |
| Becker | 2 | 5,425 | 3.7 |
| Argyle | 2 | 531 | 37.7 |
| Woodstock | 1 | 114 | |
| Winnebago | 1 | 1,383 | 7.2 |
| Watkins | 1 | 1,018 | 9.8 |
| Tyler | 1 | 1,112 | 9.0 |
| Starbuck | 1 | 1,406 | 7.1 |
| Spring Valley | 1 | 2,431 | 4.1 |
| Spring Grove | 1 | 1,206 | 8.3 |
| South Haven | 1 | 184 | |
| Sleepy Eye | 1 | 3,461 | 2.9 |
| Slayton | 1 | 1,930 | 5.2 |
| Silver Bay | 1 | 1,767 | 5.7 |
| Scandia | 1 | 3,979 | 2.5 |
| St. Stephen | 1 | 827 | 12.1 |
| St. Francis | 1 | 8,635 | 1.2 |
| St. Charles | 1 | 4,090 | 2.4 |
| Rice | 1 | 2,212 | 4.5 |
| Red Lake | 1 | ||
| Randolph | 1 | 460 | 21.7 |
| Racine | 1 | 588 | 17.0 |
| Pine River | 1 | 911 | |
| Pine Island | 1 | 3,911 | 2.6 |
| Parkers Prairie | 1 | 1,031 | 9.7 |
| Osakis | 1 | 1,739 | 5.8 |
| Orono | 1 | 8,301 | 1.2 |
| Ogilvie | 1 | 396 | 25.3 |
| Oak Grove | 1 | 9,476 | 1.1 |
| Northome | 1 | 155 | |
| Nashwauk | 1 | 957 | 10.4 |
| Mountain Lake | 1 | 1,949 | 5.1 |
| Motley | 1 | 688 | 14.5 |
| Morgan | 1 | 881 | 11.4 |
| Minnetrista | 1 | 9,458 | 1.1 |
| Miltona | 1 | 454 | 22.0 |
| Menahga | 1 | 1,361 | 7.3 |
| Melrose | 1 | 3,888 | 2.6 |
| Medina | 1 | 7,460 | 1.3 |
| Marine on St. Croix | 1 | 661 | 15.1 |
| McGregor | 1 | 374 | 26.7 |
| Lauderdale | 1 | 2,328 | 4.3 |
| Lakeland | 1 | 1,659 | 6.0 |
| Lakefield | 1 | 1,697 | 5.9 |
| Iron Junction | 1 | 105 | 95.2 |
| Hoffman | 1 | 704 | 14.2 |
| Hillman | 1 | 21 | |
| Henning | 1 | 859 | 11.6 |
| Hayfield | 1 | 1,358 | 7.4 |
| Harris | 1 | 1,139 | 8.8 |
| Greenbush | 1 | 675 | 14.8 |
| Graceville | 1 | 508 | 19.7 |
| Goodview | 1 | 4,122 | 2.4 |
| Floodwood | 1 | 511 | 19.6 |
| Fertile | 1 | 777 | 12.9 |
| Farwell | 1 | 56 | |
| Fairfax | 1 | 1,203 | 8.3 |
| Evansville | 1 | 584 | |
| Erskine | 1 | 384 | 26.0 |
| Ellendale | 1 | 658 | |
| Edgerton | 1 | 1,256 | 8.0 |
| Eden Valley | 1 | 1,062 | 9.4 |
| Delavan | 1 | 170 | |
| Deerwood | 1 | 572 | 17.5 |
| Dayton | 1 | 11,402 | 0.9 |
| Dakota | 1 | 288 | 34.7 |
| Crown College | 1 | ||
| Cromwell | 1 | 258 | 38.8 |
| Corcoran | 1 | 9,269 | 1.1 |
| Cohasset | 1 | 2,728 | 3.7 |
| Chatfield | 1 | 3,018 | 3.3 |
| Carver | 1 | 7,198 | 1.4 |
| Calumet | 1 | 324 | 30.9 |
| Byron | 1 | 6,740 | 1.5 |
| Butterfield | 1 | 611 | 16.4 |
| Buffalo Lake | 1 | 637 | |
| Brookston | 1 | 113 | 88.5 |
| Brook Park | 1 | 126 | 79.4 |
| Bird Island | 1 | 981 | 10.2 |
| Bigfork | 1 | 405 | 24.7 |
| Benson | 1 | 3,444 | 2.9 |
| Belle Plaine | 1 | 7,632 | 1.3 |
| Belgrade | 1 | 737 | 13.6 |
| Beaver Bay | 1 | 124 | |
| Backus | 1 | 264 | 37.9 |
| Arlington | 1 | 2,340 | 4.3 |
| Afton | 1 | 2,960 | 3.4 |
| Adrian | 1 | 1,219 | 8.2 |
| Adams | 1 | 705 |
31 places have no per-resident figure. Those are office districts inside a larger urban area, rural towns whose practices serve a whole region, or places where most registrations share one employer's address — dividing by the resident population there produces a number that looks precise and describes nothing. The provider counts are unaffected; the test is described in the methodology.