Why are some packages org.netbeans.api.something and others are org.netbeans.something.api?
There is a naming convention for APIs in NetBeans. Generally when a new API is introduced, it will be under development and not stable for a while. During that period, the naming convention for its package is org.netbeans.modules.something.api. So, if you rely on an API with a name like that, your code could break. Generally it is the responsibility of the author of that API to refactor all modules in NetBeans source repository when the API graduates to "official" status.
An official API uses the naming convention org.netbeans.api.something. APIs named this way should remain backward compatible.