I already have a machine to machine integration, now I want to include my integration in the OIN.
This will make it easier for customers to connect, and give them more granular control over the permissions our application has, instead of an API Key linked to the user.
Gotcha. Then yeah, I think an API Service app is the way to go here. The scopes your integration will have access to will only be the Okta API scopes. The groups scope mentioned in the docs refers to a claim that can be used to store filtered group membership information in the Users ID token, but if you want to be able to make a request to OktaDomain/api/v1/groups, then you will instead be requesting the okta.groups.read scope.
This doc walks you through the various Okta Admin Management scopes available for your use and summarizes what they will grant access to: OAuth 2.0 Scopes
You can also review our newer API docs to see what OAuth 2.0 scope is required for a specific endpoint: List all Groups | Okta Developer