Start here. This is the direct spoken answer to practice first.
Overview
A tagged union is valuable when one request position genuinely accepts several named shapes.
A discriminated union models a value that can be one of several Pydantic models and uses a shared tag field to select the correct model. For example, a payment request might have kind="card" or kind="bank_transfer", with different required fields for each variant. Pydantic validates only the model selected by the discriminator, which makes behavior and errors more predictable than guessing among overlapping shapes. FastAPI also exposes the discriminator and variants in the generated OpenAPI schema.