Skip to main content

I want to get some clarification on account structure, and how it relates to data we get back from the RingCentral api.


  1. Are there just two levels of account structure: Account-> Extensions (One main account identifier, and multiple extension identifiers underneath that)? Or, are there more levels?
  2. When performing the 3-legged OAuth sequence, we are getting back one identifier: when getting the token (https://platform.ringcentral.com/restapi/oauth/token), we get back "owner_id" among other things. Second, we make a call to extension endpoint (https://platform.ringcentral.com/restapi/v1.0/account/~/extension/~) to retrieve more account info. From this second call, we get back "id" and "account.id". Does "owner_id" == "id", or does "owner_id" == "account.id", or is "owner_id" a completely separate identifier from the other two?
  3. Does a service account have it's own identifier within the context of the api? I ask this question because I have created a service account for testing. But when I log in to our app integration with that service account, I am getting the same identifiers as my main Super User account (in the "owner_id", "id", and "account.id" fields).


My main goal here is to be able to distinguish between different accounts while maintaining their relationship to the parent account when logging into our app integration using both regular extensions as well as service accounts.

Hi Matt,

1. Yes, there are two levels: account (company business entity) and extensions (real users or special non-user extension types). Both account IDs and extension IDs are globally unique, but the extension ID of a main account administrator is always the same as account ID.
2. When the API is accessed it is done on behalf of extension user. So OAuth token is issued for extension user, that's the reason why "owner_id" in this case is the same as "extensionId" (or just "id" if you call Extension Info API).
3. Can you clarify what is the "service account" in your case?
Thank you Anton. I think this clears up my questions. For #3, I realize now that the "service account" was still just another extension. Some of my users call it a "service account". It's just an extension they set up strictly to be used with our app integration.

@matt-spinks I'm curious about the service account you implemented. Was this in production? We are having an issue trying to reset the main account's number for our production RC application and we are getting no where with support. Did you just create another extension and assign a user to it, set the password, then use that account for authentication?


Reply