Updated:

A ready-to-ride horse (Java 1.21.5+)

/summon minecraft:horse ~ ~ ~ {Tame:1b,equipment:{saddle:{id:"minecraft:saddle",count:1}},attributes:[{id:"minecraft:movement_speed",base:0.3375},{id:"minecraft:jump_strength",base:1.0},{id:"minecraft:max_health",base:30}],Health:30f}

Compared with natural horses

StatNatural rangeThis command
Speed0.1125–0.33750.3375
Jump strength0.4–1.01.0
Max health15–3030

You can go higher. Above about 0.5 speed the horse catches on block corners and is hard to control, and a very high jump causes fall damage on landing.

What changed between versions

VersionSaddleAttribute names
1.21.5+equipment:{saddle:{id:"minecraft:saddle",count:1}}minecraft:movement_speed, minecraft:jump_strength
1.21.2–1.21.4SaddleItem:{id:"minecraft:saddle",count:1}Same as above
1.20.5–1.21.1SaddleItem:{id:"minecraft:saddle",count:1}minecraft:generic.movement_speed, minecraft:horse.jump_strength

1.20.4 and earlier use capitalized tags such as Attributes:[{Name:"generic.movement_speed",Base:0.3375}]. Check this table first when an older tutorial command does nothing.

Add horse armor (1.21.5+)

/summon minecraft:horse ~ ~ ~ {Tame:1b,equipment:{saddle:{id:"minecraft:saddle",count:1},body:{id:"minecraft:diamond_horse_armor",count:1}}}

Horse armor goes in the body slot. Iron and gold horse armor work the same way.

Mount it straight away

/ride @s mount @e[type=minecraft:horse,limit=1,sort=nearest]

Java 1.19.4+ puts you on the nearest horse. See the ride command guide for more.

Bedrock Edition

Bedrock cannot set horse stats with /summon. Use /ride @s summon_ride horse to spawn one under you, give a saddle with /give @s saddle, and breed good horses for better stats.

Common problems

Common questions

Check your command

The Command Error Doctor checks common syntax mistakes in your browser.