Skip to content
Therapy Index US · federal registry

Physical & Occupational Therapy in Minnesota

Physical therapists and occupational therapists registered with a practice address in this area, including their board-recognised specialty areas.

9,821
Registered providers
466
Places with providers
18th
National rank
of 56
3
Licence types

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.

median 8.7 0 52.6 providers per 10,000 residents · 408 places in Minnesota
Distribution across 408 places in Minnesota.

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 year

Each 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.

0243485200820172026
New registrations per year. licensed therapists in Minnesota. Annual registrations in 2025 were 4% higher than in 2008. The final bar is faded because 2026 is still in progress. Starts at 2008 on purpose. The NPI system launched in 2006– 2007 and the whole profession registered at once, so those two years are an artefact of the rollout rather than a measure of anything. Including them would make the following year look like a collapse.

Who they are

self-reported to CMS

78.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 code
The highest-count ZIP codes for licensed therapists in Minnesota. Circle position is the ZIP code centroid, not a street address.

By 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.