> 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
# QueryFunctionTemplates
# Package: functions
# Namespace: FunctionTemplates
# Method link: https://dev.wix.com/docs/api-reference/business-management/functions/function-templates/query-function-templates.md
## Permission Scopes:
Manage Functions: SCOPE.DC-FUNCTIONS.MANAGE-FUNCTIONS
## Introduction
Retrieves a list of function templates, given the provided paging, filtering, and sorting.
Important:
`appDefId` and `functionExtensionId` are required filters.
Query Functions Templates runs with these defaults, which you can override:
- `paging.limit` is `50`
- `paging.offset` is `0`
To learn how to query function templates, see [API Query Language](https://dev.wix.com/docs/api-reference/articles/get-started/api-query-language.md).
---
## REST API
### Schema
```
Method: queryFunctionTemplates
Description: Retrieves a list of function templates, given the provided paging, filtering, and sorting. Important: `appDefId` and `functionExtensionId` are required filters.
Query Functions Templates runs with these defaults, which you can override: - `paging.limit` is `50` - `paging.offset` is `0` To learn how to query function templates, see [API Query Language](https://dev.wix.com/docs/api-reference/articles/get-started/api-query-language.md).
URL: https://www.wixapis.com/api/functions/v1/templates/query
Method: POST
Method parameters:
param name: query | type: CursorQuery
- 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.
- 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.
- name: filter | type: object | description: Filter object in the following format: `"filter" : { "fieldName1": "value1", "fieldName2":{"$operator":"value2"} }` Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`
- name: sort | type: array | description: Sort object in the following format: `[{"fieldName":"sortField1","order":"ASC"},{"fieldName":"sortField2","order":"DESC"}]`
- name: fieldName | type: string | description: Name of the field to sort by.
- name: order | type: SortOrder | description: Sort order.
- enum: ASC, DESC
Return type: QueryFunctionTemplatesResponse
- name: functionTemplates | type: array | description: List of function templates matching the query.
- name: functionId | type: string | description: GUID of the function built to create this template. This is the function that was built by the business solution to create the template.
- name: originFunctionId | type: string | description: GUID of the original function that was copied to create this template.
- name: originMetaSiteId | type: string | description: GUID of the Wix site where the original function was created.
- name: displayName | type: string | description: Display name. This is the name used in the function builder in the [dashboard](https://www.wix.com/my-account/site-selector/?buttonText=Select%20Site&title=Select%20a%20Site&autoSelectOnSingleSite=true&actionUrl=https:%2F%2Fwww.wix.com%2Fdashboard%2F%7B%7BmetaSiteId%7D%7D%2Ffunctions/manage).
- name: displayDescription | type: string | description: Description of what the function template's logic does.
- name: appDefId | type: string | description: App GUID of the business solution that created this template. This is the same as the app GUID of the business solution that created the template's function type.
- name: id | type: string | description: Function template GUID.
- name: version | type: string | description: Function template version. This changes when the business solution updates the template.
- name: functionExtensionId | type: string | description: GUID of the function type that this template was created from.
- name: formTemplateExtensionId | type: string | description: GUID of the form template to use for [builderless creation](https://dev.wix.com/docs/api-reference/business-management/functions/builderless-productions/create-function-builderless-production.md). Specify this GUID when calling [List Forms](https://dev.wix.com/docs/api-reference/crm/forms/form-schemas/list-forms.md) to retrieve the form values to use for builderless creation.
- name: pagingMetadata | type: CursorPagingMetadata | description: Metadata for the paginated results.
- name: count | type: integer | description: Number of items returned in the response.
- name: cursors | type: Cursors | description: Cursor strings that point to the next page, previous page, or both.
- name: next | type: string | description: Cursor string pointing to the next page in the list of results.
- name: prev | type: string | description: Cursor pointing to the previous page in the list of results.
- name: hasNext | type: boolean | description: Whether there are more pages to retrieve following the current page. + `true`: Another page of results can be retrieved. + `false`: This is the last page.
```
### Examples
### Query Function Templates
```curl
curl -X POST \
https://www.wixapis.com/api/functions/v1/templates/query \
-H 'Authorization: ' \
-H "Content-Type: application/json" \
-d '{
"query": {
"filter": {
"$and": [
{
"appDefId": "d49080e4-7b60-4dd4-b18a-f7ba7856bf27"
},
{
"functionExtensionId": "4e6a2f9b-f8c4-490f-b7f7-1ea9febf2e94"
}
]
}
}
}'
```
---
## JavaScript SDK
### Schema
```
Method: wixClientAdmin.functions.FunctionTemplates.queryFunctionTemplates(query)
Description: Retrieves a list of function templates, given the provided paging, filtering, and sorting. Important: `appDefId` and `functionExtensionId` are required filters.
Query Functions Templates runs with these defaults, which you can override: - `paging.limit` is `50` - `paging.offset` is `0` To learn how to query function templates, see [API Query Language](https://dev.wix.com/docs/api-reference/articles/get-started/api-query-language.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: FunctionTemplateQuery | 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.
- 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.
- name: filter | type: object | description: Filter object in the following format: `"filter" : { "fieldName1": "value1", "fieldName2":{"$operator":"value2"} }` Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`
- name: sort | type: array | description: Sort object in the following format: `[{"fieldName":"sortField1","order":"ASC"},{"fieldName":"sortField2","order":"DESC"}]`
- name: fieldName | type: string | description: Name of the field to sort by.
- name: order | type: SortOrder | description: Sort order.
- enum: ASC, DESC
Return type: PROMISE
- name: functionTemplates | type: array | description: List of function templates matching the query.
- name: functionId | type: string | description: GUID of the function built to create this template. This is the function that was built by the business solution to create the template.
- name: originFunctionId | type: string | description: GUID of the original function that was copied to create this template.
- name: originMetaSiteId | type: string | description: GUID of the Wix site where the original function was created.
- name: displayName | type: string | description: Display name. This is the name used in the function builder in the [dashboard](https://www.wix.com/my-account/site-selector/?buttonText=Select%20Site&title=Select%20a%20Site&autoSelectOnSingleSite=true&actionUrl=https:%2F%2Fwww.wix.com%2Fdashboard%2F%7B%7BmetaSiteId%7D%7D%2Ffunctions/manage).
- name: displayDescription | type: string | description: Description of what the function template's logic does.
- name: appDefId | type: string | description: App GUID of the business solution that created this template. This is the same as the app GUID of the business solution that created the template's function type.
- name: _id | type: string | description: Function template GUID.
- name: version | type: string | description: Function template version. This changes when the business solution updates the template.
- name: functionExtensionId | type: string | description: GUID of the function type that this template was created from.
- name: formTemplateExtensionId | type: string | description: GUID of the form template to use for [builderless creation](https://dev.wix.com/docs/api-reference/business-management/functions/builderless-productions/create-function-builderless-production.md). Specify this GUID when calling [List Forms](https://dev.wix.com/docs/api-reference/crm/forms/form-schemas/list-forms.md) to retrieve the form values to use for builderless creation.
- name: pagingMetadata | type: CursorPagingMetadata | description: Metadata for the paginated results.
- name: count | type: integer | description: Number of items returned in the response.
- name: cursors | type: Cursors | description: Cursor strings that point to the next page, previous page, or both.
- name: next | type: string | description: Cursor string pointing to the next page in the list of results.
- name: prev | type: string | description: Cursor pointing to the previous page in the list of results.
- name: hasNext | type: boolean | description: Whether there are more pages to retrieve following the current page. + `true`: Another page of results can be retrieved. + `false`: This is the last page.
```
### Examples
### queryFunctionTemplates
```javascript
import { functionTemplates } from '@wix/functions';
async function queryFunctionTemplates(query) {
const response = await functionTemplates.queryFunctionTemplates(query);
};
```
### queryFunctionTemplates (with elevated permissions)
```javascript
import { functionTemplates } from '@wix/functions';
import { auth } from '@wix/essentials';
async function myQueryFunctionTemplatesMethod(query) {
const elevatedQueryFunctionTemplates = auth.elevate(functionTemplates.queryFunctionTemplates);
const response = await elevatedQueryFunctionTemplates(query);
}
```
### queryFunctionTemplates (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 { functionTemplates } from '@wix/functions';
// Import the auth strategy for the relevant access type
// Import the relevant host module if needed
const myWixClient = createClient ({
modules: { functionTemplates },
// Include the auth strategy and host as relevant
});
async function queryFunctionTemplates(query) {
const response = await myWixClient.functionTemplates.queryFunctionTemplates(query);
};
```
---