Does Prefect perform a type validation on input parameters?

Prefect 2.0

Yes, any pydantic model used as a type hint within a flow will be coerced automatically into the relevant object type:

from pydantic import BaseModel

class Model(BaseModel):
    a: int
    b: float
    c: str

@flow
def model_validator(model: Model):
    print(model)

Due to validation, flow parameters must be compatible with pydantic. The type hints on your flow function allow automatic coercion of JSON values provided via an API call to their appropriate Python representation. For more information, head to the parameters page.

Prefect 1.0

Prefect 1.0 does not validate data types of Parameter values. Parameters must be JSON-serializable.