You can get at this information, but it's messy.
Using the /posts/{id}/revisions
route you can query for the list of all revision events for a particular question, which includes close/reopen events. These have revision_type = "vote_based"
which you can filter the results by, but so do delete/undelete and protect/unprotect events, meaning you ultimately have to parse the comment
field for <b>Post Closed
, etc.
You can see all of the various different states in action in the revisions of Jon Skeet Facts, which corresponds to the on-site question historyon-site question history.