There are only two methods you should invoke. These are
registerScoreboard and unregisterScoreboard. You can create either scoreboard that will be associated with certain player or scoreboard that will be public for all players. To create public you should provide ScoreboardType.PUBLIC as first argument of registerScoreboard method or ScoreboardType.PERSONAL to create personalized scoreboard for each player. Also you should provide two lambdas which are title of scoreboard and its content. If you use public scoreboards you haven't to manipulate player instance in any case, otherwise NullPointerException is guaranteed. Then you should add player to scoreboard. To make this just call addPlayer method in your scoreboard. But by default this plugin registers players when they join and update all the scoreboards. To prevent this behavior just call someInstanceOfScoreboard.setUpdateCase(UpdateCase.JOIN, false).
When you want to recalculate your lambdas-returning data just call update method in scoreboard. It will also update the title, content and teams info.
To create some teams call getTeams method and put new one into this map, then invoke update method to recalculate data. You can manipulate with some teams stuff as colors, options, prefixes, suffixes and other via methods of ScoreboardTeam class.