> 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

# QueryJoinApplications

# Package: onlinePrograms

# Namespace: JoinApplicationsService

# Method link: https://dev.wix.com/docs/api-reference/business-management/online-programs/join-applications/query-join-applications.md

## Permission Scopes:
Manage Online Programs: SCOPE.CHALLENGES.MANAGE

## Introduction

Retrieves a list of up to 1,000 join applications, given the provided paging, filtering, and sorting.

Members can retrieve their own join applications. Wix users can retrieve applications across all members.

Query Join Applications runs with these defaults, which you can override:

- `createdDate` is sorted in `DESC` order
- `paging.limit` is `50`
- `paging.offset` is `0`

To search join applications by member name, email, or nickname, call [Search Join Applications](https://dev.wix.com/docs/api-reference/business-management/online-programs/join-applications/search-join-applications.md).

To learn about working with Query methods, see [API Query Language](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language.md), [Sorting and Paging](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-sorting-and-paging.md), and [Field Projection](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-field-projection.md).

---

## REST API

### Schema

```
 Method: queryJoinApplications
 Description: Retrieves a list of up to 1,000 join applications, given the provided paging, filtering, and sorting.  Members can retrieve their own join applications. Wix users can retrieve applications across all members.  Query Join Applications runs with these defaults, which you can override:  - `createdDate` is sorted in `DESC` order - `paging.limit` is `50` - `paging.offset` is `0`  To search join applications by member name, email, or nickname, call [Search Join Applications](https://dev.wix.com/docs/api-reference/business-management/online-programs/join-applications/search-join-applications.md).  To learn about working with Query methods, see [API Query Language](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language.md), [Sorting and Paging](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-sorting-and-paging.md), and [Field Projection](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-field-projection.md).
 URL: https://www.wixapis.com/online-programs/participants/v3/join-applications/query
 Method: POST
 Method parameters:
   param name: query | type: QueryV2    
     - name: cursorPaging | type: CursorPaging | description: Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`.  
        - name: limit | type: integer | description: Maximum number of items to return in the results.  | validation: minimum 0, maximum 100, format int32
        - name: cursor | type: string | description: Pointer to the next or previous page in the list of results.  Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response. Not relevant for the first request.  | validation: maxLength 16000
        - name: filter | type: object | description: Filter object.  Learn more about [filtering](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language.md#filters).  
        - name: sort | type: array<Sorting> | description: Sort object.  Learn more about [sorting](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language.md#sorting).  | validation: maxItems 100
           - name: fieldName | type: string | description: Name of the field to sort by.  | validation: maxLength 512
           - name: order | type: SortOrder | description: Sort order.  
                 - enum: ASC, DESC
        - name: fields | type: array<string> | description: Array of projected fields. A list of specific field names to return. If `fieldsets` are also specified, the union of `fieldsets` and `fields` is returned.  | validation: maxItems 100, maxLength 1000
        - name: fieldsets | type: array<string> | description: Array of named, predefined sets of projected fields. A array of predefined named sets of fields to be returned. Specifying multiple `fieldsets` will return the union of fields from all sets. If `fields` are also specified, the union of `fieldsets` and `fields` is returned.  | validation: maxItems 100, maxLength 1000
 Query fields:
   - field: id | operators: $eq, $ne, $in, $exists, $gt, $gte, $lt, $lte, $startsWith | sort: ASC, DESC | aggregatable: undefined | searchable: undefined
   - field: memberId | operators: $eq, $ne, $in, $exists, $gt, $gte, $lt, $lte, $startsWith | sort: ASC, DESC | aggregatable: undefined | searchable: undefined
   - field: programId | operators: $eq, $ne, $in, $exists, $gt, $gte, $lt, $lte, $startsWith | sort: ASC, DESC | aggregatable: undefined | searchable: undefined
   - field: participantId | operators: $eq, $ne, $in, $exists, $gt, $gte, $lt, $lte, $startsWith | sort: ASC, DESC | aggregatable: undefined | searchable: undefined
   - field: createdDate | operators: none | sort: ASC, DESC | aggregatable: undefined | searchable: undefined
   - field: updatedDate | operators: none | sort: ASC, DESC | aggregatable: undefined | searchable: undefined
   - field: status | operators: $eq, $in, $nin | sort: ASC, DESC | aggregatable: undefined | searchable: undefined
   - field: paymentStatus | operators: $eq, $in, $nin | sort: ASC, DESC | aggregatable: undefined | searchable: undefined
   - field: tags.publicTags.tagIds | operators: $hasSome, $hasAll, $exists, $isEmpty | sort: ASC, DESC | aggregatable: undefined | searchable: undefined
   - field: tags.privateTags.tagIds | operators: $hasSome, $hasAll, $exists, $isEmpty | sort: ASC, DESC | aggregatable: undefined | searchable: undefined
 Return type: QueryJoinApplicationsResponse
  - name: joinApplications | type: array<JoinApplication> | description: Retrieved join applications.  
     - name: id | type: string | description: Join application GUID.  | read-only: true | validation: format GUID
     - name: revision | type: string | description: Revision number, which increments by 1 each time a lifecycle, payment, or tag action changes the join application.  This API doesn't provide a generic update method, so `revision` is read-only. Don't specify it when creating or changing a join application.  | read-only: true | validation: format int64
     - name: createdDate | type: string | description: Date and time the join application was created.  | read-only: true | validation: format date-time
     - name: updatedDate | type: string | description: Date and time the join application was last updated.  | read-only: true | validation: format date-time
     - name: memberId | type: string | description: GUID of the site member applying or invited to participate in the program.  Required when a Wix user creates an application on a member's behalf. Automatically set to the caller's member GUID when a member creates their own application.  | read-only: true | validation: format GUID
     - name: programId | type: string | description: GUID of the program the join application is for.  | validation: format GUID, immutable
     - name: status | type: Status | description: Current status of the join application.  Read-only for member-initiated applications. A Wix user can set the initial status when creating an application on a member's behalf.  | read-only: true 
         - enum:
         -     INVITED: Member has been invited to join the program and has not yet accepted.
         -     APPROVAL_PENDING: Member's application is awaiting the Wix user's decision.
         -     APPROVED: Application is approved. Payment may still be required before the member is enrolled.
         -     CANCELLED: Member canceled the application. The join application is removed asynchronously.
         -     DECLINED: Wix user declined the application. The join application is removed asynchronously.
         -     SUSPENDED: Connected participant is suspended after the related Pricing Plans subscription expires. A successful new payment resumes the participation flow.
     - name: paymentStatus | type: PaymentStatus | description: Payment status of the join application.  | read-only: true 
         - enum:
         -     NO_PAYMENT_REQUIRED: Payment isn't required because the program is free or the member has an eligible Pricing Plans entitlement.
         -     PAYMENT_PENDING: Payment is required before the member can be enrolled.
         -     PAYMENT_IN_PROGRESS: Payment checkout or a Pricing Plans purchase is in progress.
         -     PENDING_OWNER_APPROVAL: Member submitted an offline payment that awaits the Wix user's decision.
         -     PAYMENT_SUCCESSFUL: Payment completed successfully.
         -     PAYMENT_FAILED: Payment was declined by the payment system or, for an offline payment, by the Wix user.
         -     PAYMENT_CANCELED: Member canceled payment.
     - name: paymentInfo | type: PaymentInfo | description: Wix Payments or Pricing Plans data associated with the join application.  | read-only: true 
        - name: paymentOrderId | type: string | description: Wix Payments order GUID. Populated when the member selects one-time payment at checkout.  | read-only: true | validation: format GUID
        - name: offlineTransactionId | type: string | description: Offline transaction GUID. Populated when the member selects manual payment at checkout.  | read-only: true | validation: format GUID
        - name: paidPlanIds | type: array<string> | description: IDs of the pricing plans connected to the program. Populated when the member selects Pricing Plans at checkout.  | read-only: true | validation: maxItems 100, format GUID
        - name: couponId | type: string | description: GUID of the coupon applied to the payment order. Populated when a coupon is applied with [Apply Coupon](https://dev.wix.com/docs/api-reference/business-management/online-programs/join-applications/apply-coupon.md).  | read-only: true | validation: format GUID
     - name: member | type: Member | description: Snapshot of the member identified by `memberId`, copied from the Members API. It isn't the authoritative member record.  | read-only: true 
        - name: firstName | type: string | description: Member contact's first name.  | read-only: true | validation: maxLength 1000
        - name: lastName | type: string | description: Member contact's last name.  | read-only: true | validation: maxLength 1000
        - name: email | type: string | description: Member's login email.  | read-only: true | validation: format EMAIL
        - name: contactId | type: string | description: Member's contact GUID.  | read-only: true | validation: format GUID
        - name: nickname | type: string | description: Member's nickname.  | read-only: true | validation: maxLength 1000
        - name: profileImageUrl | type: string | description: URL of the member's profile image.  | read-only: true | validation: format WEB_URL
     - name: participantId | type: string | description: GUID of the participant created from the join application.  Populated when `status` is `APPROVED` and `paymentStatus` is `NO_PAYMENT_REQUIRED` or `PAYMENT_SUCCESSFUL`.  | read-only: true | validation: format GUID
     - name: extendedFields | type: ExtendedFields | description: Custom field data for the join application object.  [Extended fields](https://dev.wix.com/docs/build-apps/develop-your-app/extensions/backend-extensions/schema-plugins/about-schema-plugin-extensions.md) must be configured in the app dashboard before they can be accessed with API calls.  
        - name: namespaces | type: object | description: Extended field data. Each key corresponds to the namespace of the app that created the extended fields. The value of each key is structured according to the schema defined when the extended fields were configured.  You can only access fields for which you have the appropriate permissions.  Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields.md).  | validation: format map
     - name: tags | type: Tags | description: Tags for categorizing and organizing join applications.  
        - name: privateTags | type: TagList | description: Tags that require an additional permission in order to access them, typically restricted from site members and visitors.  
           - name: tagIds | type: array<string> | description: List of tag GUIDs.  | validation: maxItems 100, maxLength 5
        - name: publicTags | type: TagList | description: Tags that are exposed to anyone with access to the entity, including site members and visitors.  
  - name: pagingMetadata | type: PagingMetadataV2 | description: Paging metadata.  
     - name: count | type: integer | description: Number of items returned in the response.  | validation: format int32
     - name: offset | type: integer | description: Offset that was requested.  | validation: format int32
     - name: total | type: integer | description: Total number of items that match the query. Returned if offset paging is used and the `tooManyToCount` flag is not set.  | validation: format int32
     - name: tooManyToCount | type: boolean | description: Flag that indicates the server failed to calculate the `total` field.  
     - name: cursors | type: Cursors | description: Cursors to navigate through the result pages using `next` and `prev`. Returned if cursor paging is used.  
        - name: next | type: string | description: Cursor string pointing to the next page in the list of results.  | validation: maxLength 16000
        - name: prev | type: string | description: Cursor pointing to the previous page in the list of results.  | validation: maxLength 16000


```

### Examples

### Query join applications by status
Retrieves join applications filtered by status and sorted by creation date

```curl
curl -X POST \
'https://www.wixapis.com/online-programs/participants/v3/join-applications/query' \
-H 'Authorization: <AUTH>' \
-H 'Content-Type: application/json' \
-d '{
  "query": {
    "filter": {
      "status": {
        "$eq": "APPROVAL_PENDING"
      }
    },
    "sort": [{
      "fieldName": "createdDate",
      "order": "DESC"
    }],
    "paging": {
      "limit": 50
    }
  }
}'
```

### Query join applications by program
Retrieves join applications for a specific program

```curl
curl -X POST \
'https://www.wixapis.com/online-programs/participants/v3/join-applications/query' \
-H 'Authorization: <AUTH>' \
-H 'Content-Type: application/json' \
-d '{
  "query": {
    "filter": {
      "programId": {
        "$eq": "3f8e26e7-c5d1-4a12-86f8-33d64f4c2a0e"
      }
    }
  }
}'
```

---

## JavaScript SDK

### Schema

```
 Method: wixClientAdmin.onlinePrograms.joinApplications.queryJoinApplications(query)
 Description: Retrieves a list of up to 1,000 join applications, given the provided paging, filtering, and sorting.  Members can retrieve their own join applications. Wix users can retrieve applications across all members.  Query Join Applications runs with these defaults, which you can override:  - `createdDate` is sorted in `DESC` order - `paging.limit` is `50` - `paging.offset` is `0`  To search join applications by member name, email, or nickname, call [Search Join Applications](https://dev.wix.com/docs/api-reference/business-management/online-programs/join-applications/search-join-applications.md).  To learn about working with Query methods, see [API Query Language](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language.md), [Sorting and Paging](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-sorting-and-paging.md), and [Field Projection](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-field-projection.md).
 # Note: If the parameter `a.b` is listed under required parameters, `b` is only required if `a` is also present.
 Required parameters:  query
 Method parameters: 
   param name: query | type: JoinApplicationQuery   | required: true 
     - name: cursorPaging | type: CursorPaging | description: Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`.  
        - name: limit | type: integer | description: Maximum number of items to return in the results.  | validation: minimum 0, maximum 100, format int32
        - name: cursor | type: string | description: Pointer to the next or previous page in the list of results.  Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response. Not relevant for the first request.  | validation: maxLength 16000
        - name: filter | type: object | description: Filter object.  Learn more about [filtering](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language.md#filters).  
        - name: sort | type: array<Sorting> | description: Sort object.  Learn more about [sorting](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language.md#sorting).  | validation: maxItems 100
           - name: fieldName | type: string | description: Name of the field to sort by.  | validation: maxLength 512
           - name: order | type: SortOrder | description: Sort order.  
                 - enum: ASC, DESC
 Query fields:
   - field: _id | operators: $eq, $ne, $in, $exists, $gt, $gte, $lt, $lte, $startsWith | sort: ASC, DESC | aggregatable: undefined | searchable: undefined
   - field: memberId | operators: $eq, $ne, $in, $exists, $gt, $gte, $lt, $lte, $startsWith | sort: ASC, DESC | aggregatable: undefined | searchable: undefined
   - field: programId | operators: $eq, $ne, $in, $exists, $gt, $gte, $lt, $lte, $startsWith | sort: ASC, DESC | aggregatable: undefined | searchable: undefined
   - field: participantId | operators: $eq, $ne, $in, $exists, $gt, $gte, $lt, $lte, $startsWith | sort: ASC, DESC | aggregatable: undefined | searchable: undefined
   - field: _createdDate | operators: none | sort: ASC, DESC | aggregatable: undefined | searchable: undefined
   - field: _updatedDate | operators: none | sort: ASC, DESC | aggregatable: undefined | searchable: undefined
   - field: status | operators: $eq, $in, $nin | sort: ASC, DESC | aggregatable: undefined | searchable: undefined
   - field: paymentStatus | operators: $eq, $in, $nin | sort: ASC, DESC | aggregatable: undefined | searchable: undefined
   - field: tags.publicTags.tagIds | operators: $hasSome, $hasAll, $exists, $isEmpty | sort: ASC, DESC | aggregatable: undefined | searchable: undefined
   - field: tags.privateTags.tagIds | operators: $hasSome, $hasAll, $exists, $isEmpty | sort: ASC, DESC | aggregatable: undefined | searchable: undefined
 Return type: PROMISE<QueryJoinApplicationsResponse>
  - name: joinApplications | type: array<JoinApplication> | description: Retrieved join applications.  
     - name: _id | type: string | description: Join application GUID.  | read-only: true | validation: format GUID
     - name: revision | type: string | description: Revision number, which increments by 1 each time a lifecycle, payment, or tag action changes the join application.  This API doesn't provide a generic update method, so `revision` is read-only. Don't specify it when creating or changing a join application.  | read-only: true | validation: format int64
     - name: _createdDate | type: Date | description: Date and time the join application was created.  | read-only: true 
     - name: _updatedDate | type: Date | description: Date and time the join application was last updated.  | read-only: true 
     - name: memberId | type: string | description: GUID of the site member applying or invited to participate in the program.  Required when a Wix user creates an application on a member's behalf. Automatically set to the caller's member GUID when a member creates their own application.  | read-only: true | validation: format GUID
     - name: programId | type: string | description: GUID of the program the join application is for.  | validation: format GUID, immutable
     - name: status | type: Status | description: Current status of the join application.  Read-only for member-initiated applications. A Wix user can set the initial status when creating an application on a member's behalf.  | read-only: true 
         - enum:
         -     INVITED: Member has been invited to join the program and has not yet accepted.
         -     APPROVAL_PENDING: Member's application is awaiting the Wix user's decision.
         -     APPROVED: Application is approved. Payment may still be required before the member is enrolled.
         -     CANCELLED: Member canceled the application. The join application is removed asynchronously.
         -     DECLINED: Wix user declined the application. The join application is removed asynchronously.
         -     SUSPENDED: Connected participant is suspended after the related Pricing Plans subscription expires. A successful new payment resumes the participation flow.
     - name: paymentStatus | type: PaymentStatus | description: Payment status of the join application.  | read-only: true 
         - enum:
         -     NO_PAYMENT_REQUIRED: Payment isn't required because the program is free or the member has an eligible Pricing Plans entitlement.
         -     PAYMENT_PENDING: Payment is required before the member can be enrolled.
         -     PAYMENT_IN_PROGRESS: Payment checkout or a Pricing Plans purchase is in progress.
         -     PENDING_OWNER_APPROVAL: Member submitted an offline payment that awaits the Wix user's decision.
         -     PAYMENT_SUCCESSFUL: Payment completed successfully.
         -     PAYMENT_FAILED: Payment was declined by the payment system or, for an offline payment, by the Wix user.
         -     PAYMENT_CANCELED: Member canceled payment.
     - name: paymentInfo | type: PaymentInfo | description: Wix Payments or Pricing Plans data associated with the join application.  | read-only: true 
        - name: paymentOrderId | type: string | description: Wix Payments order GUID. Populated when the member selects one-time payment at checkout.  | read-only: true | validation: format GUID
        - name: offlineTransactionId | type: string | description: Offline transaction GUID. Populated when the member selects manual payment at checkout.  | read-only: true | validation: format GUID
        - name: paidPlanIds | type: array<string> | description: IDs of the pricing plans connected to the program. Populated when the member selects Pricing Plans at checkout.  | read-only: true | validation: maxItems 100, format GUID
        - name: couponId | type: string | description: GUID of the coupon applied to the payment order. Populated when a coupon is applied with [Apply Coupon](https://dev.wix.com/docs/api-reference/business-management/online-programs/join-applications/apply-coupon.md).  | read-only: true | validation: format GUID
     - name: member | type: Member | description: Snapshot of the member identified by `memberId`, copied from the Members API. It isn't the authoritative member record.  | read-only: true 
        - name: firstName | type: string | description: Member contact's first name.  | read-only: true | validation: maxLength 1000
        - name: lastName | type: string | description: Member contact's last name.  | read-only: true | validation: maxLength 1000
        - name: email | type: string | description: Member's login email.  | read-only: true | validation: format EMAIL
        - name: contactId | type: string | description: Member's contact GUID.  | read-only: true | validation: format GUID
        - name: nickname | type: string | description: Member's nickname.  | read-only: true | validation: maxLength 1000
        - name: profileImageUrl | type: string | description: URL of the member's profile image.  | read-only: true | validation: format WEB_URL
     - name: participantId | type: string | description: GUID of the participant created from the join application.  Populated when `status` is `APPROVED` and `paymentStatus` is `NO_PAYMENT_REQUIRED` or `PAYMENT_SUCCESSFUL`.  | read-only: true | validation: format GUID
     - name: extendedFields | type: ExtendedFields | description: Custom field data for the join application object.  [Extended fields](https://dev.wix.com/docs/build-apps/develop-your-app/extensions/backend-extensions/schema-plugins/about-schema-plugin-extensions.md) must be configured in the app dashboard before they can be accessed with API calls.  
        - name: namespaces | type: object | description: Extended field data. Each key corresponds to the namespace of the app that created the extended fields. The value of each key is structured according to the schema defined when the extended fields were configured.  You can only access fields for which you have the appropriate permissions.  Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields.md).  | validation: format map
     - name: tags | type: Tags | description: Tags for categorizing and organizing join applications.  
        - name: privateTags | type: TagList | description: Tags that require an additional permission in order to access them, typically restricted from site members and visitors.  
           - name: tagIds | type: array<string> | description: List of tag GUIDs.  | validation: maxItems 100, maxLength 5
        - name: publicTags | type: TagList | description: Tags that are exposed to anyone with access to the entity, including site members and visitors.  
  - name: pagingMetadata | type: PagingMetadataV2 | description: Paging metadata.  
     - name: count | type: integer | description: Number of items returned in the response.  | validation: format int32
     - name: offset | type: integer | description: Offset that was requested.  | validation: format int32
     - name: total | type: integer | description: Total number of items that match the query. Returned if offset paging is used and the `tooManyToCount` flag is not set.  | validation: format int32
     - name: tooManyToCount | type: boolean | description: Flag that indicates the server failed to calculate the `total` field.  
     - name: cursors | type: Cursors | description: Cursors to navigate through the result pages using `next` and `prev`. Returned if cursor paging is used.  
        - name: next | type: string | description: Cursor string pointing to the next page in the list of results.  | validation: maxLength 16000
        - name: prev | type: string | description: Cursor pointing to the previous page in the list of results.  | validation: maxLength 16000


```

### Examples

### Query join applications by program
Retrieves join applications for a specific program

```javascript
import { joinApplications } from "@wix/online-programs";

async function queryJoinApplications() {
  const results = await joinApplications
    .queryJoinApplications()
    .eq("programId", "3f8e26e7-c5d1-4a12-86f8-33d64f4c2a0e")
    .find();
}

/* Promise resolves to:
 * {
 *   "items": [
 *     {
 *       "_id": "79a0d4f7-66a2-47ef-a268-f1c7fcd3a0c5",
 *       "revision": "1",
 *       "_createdDate": "2026-06-01T14:23:28.975Z",
 *       "_updatedDate": "2026-06-01T14:23:28.975Z",
 *       "memberId": "6c7c7b22-67a2-43c7-9d27-3b8ed07d9a45",
 *       "programId": "3f8e26e7-c5d1-4a12-86f8-33d64f4c2a0e",
 *       "status": "INVITED",
 *       "paymentStatus": "NO_PAYMENT_REQUIRED"
 *     }
 *   ],
 *   "length": 1,
 *   "pageSize": 50,
 *   "hasNext": false,
 *   "hasPrev": false
 * }
 */

```

### Query join applications by status
Retrieves join applications filtered by status and sorted by creation date

```javascript
import { joinApplications } from "@wix/online-programs";

async function queryJoinApplications() {
  const results = await joinApplications
    .queryJoinApplications()
    .eq("status", "APPROVAL_PENDING")
    .descending("_createdDate")
    .limit(50)
    .find();
}

/* Promise resolves to:
 * {
 *   "items": [
 *     {
 *       "_id": "0f4be143-f402-4960-985b-5c3a6ce6b5f7",
 *       "revision": "1",
 *       "_createdDate": "2026-06-01T14:23:26.498Z",
 *       "_updatedDate": "2026-06-01T14:23:27.219Z",
 *       "memberId": "6c7c7b22-67a2-43c7-9d27-3b8ed07d9a45",
 *       "programId": "8d3f2b9f-2c31-4f45-8e5a-1f4b9259a6c2",
 *       "status": "APPROVAL_PENDING",
 *       "paymentStatus": "PAYMENT_PENDING",
 *       "member": {
 *         "firstName": "Jordan",
 *         "lastName": "Taylor",
 *         "email": "jordan.taylor@example.com",
 *         "contactId": "6c7c7b22-67a2-43c7-9d27-3b8ed07d9a45",
 *         "nickname": "jordan.taylor"
 *       }
 *     }
 *   ],
 *   "length": 1,
 *   "pageSize": 50,
 *   "hasNext": false,
 *   "hasPrev": false
 * }
 */

```

### queryJoinApplications (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 { joinApplications } from '@wix/online-programs';
// Import the auth strategy for the relevant access type
// Import the relevant host module if needed

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


async function queryJoinApplications(query) {
  const response = await myWixClient.joinApplications.queryJoinApplications(query);
};
```

---