begin the hard slog on the api