> Portal Navigation:
> 
> - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version.
> - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages).
> - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`).
> - Top-level index of all portals: https://dev.wix.com/docs/llms.txt
> - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt

# GetAppContributorsProxy

# Package: appInvitesProxyV1

# Namespace: AppInvitesProxyService

# Method link: https://dev.wix.com/docs/api-reference/app-management/app-invites-proxy-v1/get-app-contributors-proxy.md

## Introduction

Retrieves the app's contributors and invitations.


Use `locale` for localized role information; the default is `en-us`.
A contributor's `id` identifies a user; `metaData.id` identifies the account used for role removal.

---

## REST API

### Schema

```
 Method: getAppContributorsProxy
 Description: Retrieves the app's contributors and invitations.   Use `locale` for localized role information; the default is `en-us`. A contributor's `id` identifies a user; `metaData.id` identifies the account used for role removal.
 URL: https://www.wixapis.com/apps/v1/apps/contributors/{appId}
 Method: GET
 # Note: If the parameter `a.b` is listed under required parameters, `b` is only required if `a` is also present.
 Required parameters:  appId
 Method parameters: 
   param name: appId | type:   none | required: true 
   query param name: locale | type: locale | description: Locale for localized role information.  Default: `en-us`.  | validation: maxLength 10
 Return type: GetAppContributorsProxyResponse
  - name: contributors | type: array<Contributor> | description: App contributors, including user GUIDs, account metadata, and role assignments.  
     - name: metaData | type: PersonMetaData | description: Contributor's metadata, including account GUID, name, email, and role assignments.  
        - name: id | type: string | description: Contributor's account GUID.  
        - name: fullName | type: string | description: Contributor's full name.  
        - name: imageUrl | type: string | description: URL for contributor's profile image.  
        - name: email | type: string | description: Contributor's email address.  
        - name: assignments | type: array<Assignment> | description: Contributor's role assignments, mapping their access to site assets and their assigned roles.  
           - name: policy | type: AssignedPolicy | description: Role assigned to the user.  
              - name: policyId | type: string | description: Role GUID.  
              - name: title | type: string | description: Role title.  
              - name: description | type: string | description: Role description.  
           - name: assignmentId | type: string | description: Unique GUID for this specific assignment.  
           - name: subject | type: Subject | description: Identity assigned to the asset in an assignment, referred to as subject. Supported subjects include user GUIDs, account GUIDs, and app GUIDs.  
              - name: id | type: string | description: GUID of identity assigned to the asset.  
              - name: subjectType | type: SubjectType | description: Type of identity assigned to the asset. Supported subject types include user GUIDs, account GUIDs, and app GUIDs.  
                     - enum: UNKNOWN, ACCOUNT, USER, USER_GROUP, MEMBER_GROUP, VISITOR_GROUP, EXTERNAL_APP, ACCOUNT_GROUP, WIX_APP
              - name: context | type: SubjectContext | description: Context of identity assigned to the asset. For example, a `subjectType` = `USER` will have `context` = `ACCOUNT`.  
                 - name: id | type: string | description:   
                 - name: contextType | type: SubjectContextType | description:   
                         - enum: UNKNOWN_CTX, ORG_CTX, ACCOUNT_CTX
     - name: isTeam | type: boolean | description: Whether the contributor account is a team account.  
     - name: joinedAt | type: string | description: Date that the contributor joined the site.  | validation: format date-time
     - name: invitedEmail | type: string | description: Email address that received the invite.  
     - name: isClient | type: boolean | description: Whether the contributor account is a client account.  
     - name: id | type: string | description: Contributor's user GUID.  | read-only: true | validation: format GUID
     - name: callerCapabilities | type: array<string> | description: A set of capability keys representing the actions that the caller is allowed to perform on this specific contributor. This field is calculated based on the identity of the request sender and may differ between callers.  | validation: maxItems 20, maxLength 20
     - name: accountGroup | type: AccountGroup | description: Account group of the contributor's owning account (enterprise, channels, unknown). Only meaningful for team accounts (is_team = true); resolved from population membership. Non-team contributors remain UNKNOWN_ACCOUNT_GROUP (proto default 0).  
         - enum: ENTERPRISE, CHANNELS
  - name: invites | type: array<AppInvite> | description: Invitations associated with the app, including their status and acceptance links.  
     - name: id | type: string | description:   | read-only: true | validation: format GUID
     - name: destEmail | type: string | description: TODO: amitis - remove this comment after the next merge  | validation: format EMAIL
     - name: status | type: string | description:   | read-only: true | validation: maxLength 20
     - name: acceptLink | type: string | description:   | read-only: true | validation: format WEB_URL
     - name: invitePurpose | type: string | description:   | validation: maxLength 50
     - name: policies | type: array<AssignedPolicy> | description:   | validation: maxItems 10
     - name: expirationDate | type: string | description:   | read-only: true | validation: format date-time
     - name: dateCreated | type: string | description:   | read-only: true | validation: format date-time
     - name: dateUpdated | type: string | description:   | read-only: true | validation: format date-time
     - name: callerCapabilities | type: array<string> | description: A set of capability keys representing the actions that the caller is allowed to perform on this specific invite. This field is calculated based on the identity of the request sender and may differ between callers.  | validation: maxItems 20, maxLength 20


```

### Examples

### Retrieve an app collaborator and pending invitations
The contributor id is a user ID; metaData.id is the account ID used to remove assigned access. This example was not executed and its response contains fictional data.

```curl
curl -X GET \
'https://www.wixapis.com/apps/v1/apps/contributors/da630f88-1b48-473e-a6a1-d71960c413fb?locale=en-us' \
-H 'Authorization: <AUTH>'
```

---

## JavaScript SDK

### Schema

```
 Method: wixClientAdmin.appManagement.appInvitesProxy.getAppContributorsProxy(appId, options)
 Description: Retrieves the app's contributors and invitations.   Use `locale` for localized role information; the default is `en-us`. A contributor's `id` identifies a user; `metaData.id` identifies the account used for role removal.
 # Note: If the parameter `a.b` is listed under required parameters, `b` is only required if `a` is also present.
 Required parameters:  appId
 Method parameters: 
   param name: appId | type: string | description: GUID of the app whose contributors and invitations to retrieve. | required: true | validation: format GUID
   param name: options | type: GetAppContributorsProxyOptions  none  
        - name: locale | type: string | description: Locale for localized role information.  Default: `en-us`.  | validation: maxLength 10
 Return type: PROMISE<GetAppContributorsProxyResponse>
  - name: contributors | type: array<Contributor> | description: App contributors, including user GUIDs, account metadata, and role assignments.  
     - name: metaData | type: PersonMetaData | description: Contributor's metadata, including account GUID, name, email, and role assignments.  
        - name: _id | type: string | description: Contributor's account GUID.  
        - name: fullName | type: string | description: Contributor's full name.  
        - name: imageUrl | type: string | description: URL for contributor's profile image.  
        - name: email | type: string | description: Contributor's email address.  
        - name: assignments | type: array<Assignment> | description: Contributor's role assignments, mapping their access to site assets and their assigned roles.  
           - name: policy | type: AssignedPolicy | description: Role assigned to the user.  
              - name: policyId | type: string | description: Role GUID.  
              - name: title | type: string | description: Role title.  
              - name: description | type: string | description: Role description.  
           - name: assignmentId | type: string | description: Unique GUID for this specific assignment.  
           - name: subject | type: Subject | description: Identity assigned to the asset in an assignment, referred to as subject. Supported subjects include user GUIDs, account GUIDs, and app GUIDs.  
              - name: _id | type: string | description: GUID of identity assigned to the asset.  
              - name: subjectType | type: SubjectType | description: Type of identity assigned to the asset. Supported subject types include user GUIDs, account GUIDs, and app GUIDs.  
                     - enum: UNKNOWN, ACCOUNT, USER, USER_GROUP, MEMBER_GROUP, VISITOR_GROUP, EXTERNAL_APP, ACCOUNT_GROUP, WIX_APP
              - name: context | type: SubjectContext | description: Context of identity assigned to the asset. For example, a `subjectType` = `USER` will have `context` = `ACCOUNT`.  
                 - name: _id | type: string | description:   
                 - name: contextType | type: SubjectContextType | description:   
                         - enum: UNKNOWN_CTX, ORG_CTX, ACCOUNT_CTX
     - name: isTeam | type: boolean | description: Whether the contributor account is a team account.  
     - name: joinedAt | type: Date | description: Date that the contributor joined the site.  
     - name: invitedEmail | type: string | description: Email address that received the invite.  
     - name: isClient | type: boolean | description: Whether the contributor account is a client account.  
     - name: _id | type: string | description: Contributor's user GUID.  | read-only: true | validation: format GUID
     - name: callerCapabilities | type: array<string> | description: A set of capability keys representing the actions that the caller is allowed to perform on this specific contributor. This field is calculated based on the identity of the request sender and may differ between callers.  | validation: maxItems 20, maxLength 20
     - name: accountGroup | type: AccountGroup | description: Account group of the contributor's owning account (enterprise, channels, unknown). Only meaningful for team accounts (is_team = true); resolved from population membership. Non-team contributors remain UNKNOWN_ACCOUNT_GROUP (proto default 0).  
         - enum: ENTERPRISE, CHANNELS
  - name: invites | type: array<AppInvite> | description: Invitations associated with the app, including their status and acceptance links.  
     - name: _id | type: string | description:   | read-only: true | validation: format GUID
     - name: destEmail | type: string | description: TODO: amitis - remove this comment after the next merge  | validation: format EMAIL
     - name: status | type: string | description:   | read-only: true | validation: maxLength 20
     - name: acceptLink | type: string | description:   | read-only: true | validation: format WEB_URL
     - name: invitePurpose | type: string | description:   | validation: maxLength 50
     - name: policies | type: array<AssignedPolicy> | description:   | validation: maxItems 10
     - name: expirationDate | type: Date | description:   | read-only: true 
     - name: dateCreated | type: Date | description:   | read-only: true 
     - name: dateUpdated | type: Date | description:   | read-only: true 
     - name: callerCapabilities | type: array<string> | description: A set of capability keys representing the actions that the caller is allowed to perform on this specific invite. This field is calculated based on the identity of the request sender and may differ between callers.  | validation: maxItems 20, maxLength 20


```

### Examples

### getAppContributorsProxy
```javascript
import { appInvitesProxy } from '@wix/app-management';

async function getAppContributorsProxy(appId,options) {
  const response = await appInvitesProxy.getAppContributorsProxy(appId,options);
};
```

### getAppContributorsProxy (with elevated permissions)
```javascript
import { appInvitesProxy } from '@wix/app-management';
import { auth } from '@wix/essentials';

async function myGetAppContributorsProxyMethod(appId,options) {
  const elevatedGetAppContributorsProxy = auth.elevate(appInvitesProxy.getAppContributorsProxy);
  const response = await elevatedGetAppContributorsProxy(appId,options);
}
```

### getAppContributorsProxy (self-hosted)
Self-hosted SDK calls require you to [create a client](https://dev.wix.com/docs/sdk/articles/work-with-the-sdk/about-the-wix-client.md).

```javascript
import { createClient } from '@wix/sdk';
import { appInvitesProxy } from '@wix/app-management';
// Import the auth strategy for the relevant access type
// Import the relevant host module if needed

const myWixClient = createClient ({
  modules: { appInvitesProxy },
  // Include the auth strategy and host as relevant
});


async function getAppContributorsProxy(appId,options) {
  const response = await myWixClient.appInvitesProxy.getAppContributorsProxy(appId,options);
};
```

---