I only glanced at this briefly (and they have some odd terminology, calling these "changesets" instead of "commit" IDs: that would make sense for Mercurial, but not for Git) but the API does take two IDs and this is all you need.
For instance, in your example, you want to see what happened
between commit1 through commit10
The word "between" is a bit suspect (because commits are not necessarily linear in the first place, and because it introduces fencepost errors) but in general, to do this, you just compare (the ID of) commit1 (or its parent, depending on whether you are counting fence posts or fence rails) against (the ID of) commit10.
When doing this with Git, rather than over some annoying REST API, it is expressed as, e.g.:
$ git diff --name-status 1fe9ca7 6631bed
which shows you everything changed in 6631bed
vs whatever was in 1fe9ca7
, which—due to the algebra of changesets—is the sum of each changeset "between" (there is that slippery word again) the two end points.
Git does not store these changesets; it stores the actual content at each commit. The changesets are therefore produced on demand (by git diff
), which is why their terminology seems a bit odd. You identify two actual commits, not a changeset, and git then extracts a changeset.