To follow up on Norman’s reply, “API” and “Framework” are synonymous.
The now old “new Xojo framework” was optional in that it was namespaced (Xojo.xxx), so you could opt to use it if you wanted but none of your other code would be affected. They got a lot of negative feedback about having to use a namespace, plus they never “completed” it - a lot of functionality was/is missing.
So now, beginning with 2019r2, they “switched” to another new framework, API 2.0, which was an evolution on the old/current API 1.0, where they changed hundreds of methods and method/property names (and event names which they later retracted). See https://docs.xojo.com/Category:Deprecated2019r2 for the extensive list. Most all items listed on those pages (the list takes four or five pages) have been replaced with a new one. Many of these changes are in name only - the functionality didn’t change one bit. A lot of them were changed to make everything involving an index to be 0-based.
Now, most of this is fine, except they basically force you to use the new one, as there’s no autocomplete, syntax help, or direct docs lookup for any of these deprecated items. So woking on an existing project in 2019r2 or later can be difficult. Also, upgrading/refactoring your code is tricky mostly because of the 0-based index changes (but there are a few others problems as well - Date to DateTime as one example).
Also, this first release of API 2 was just for core and Desktop/Console APIs. Web and iOS platform specific APIs weren’t affected. Now with 2020r1, Web has been “updated” to API 2 (along with a completely new platform). And supposedly the same will come for iOS.
So, eventually, everything will supposedly be on the same page, so to speak. But this still doesn’t help with legacy apps/code. Most of the thousands of examples/projects available outside of Xojo are basically useless for new projects and new developers (even many of Xojo’s own examples/documentation is still not fully updated).
Hopefully this helps fill in the gaps for you.