The programmatic API is async.