---
id: v1-custom-forms
title: CustomForms
pagination_label: CustomForms
sidebar_label: CustomForms
sidebar_class_name: typescriptsdk
keywords: ['typescript', 'TypeScript', 'sdk', 'CustomForms', 'v1CustomForms']
slug: /tools/sdk/typescript/custom_forms/methods/custom-forms
tags: ['SDK', 'Software Development Kit', 'CustomForms', 'v1CustomForms']
---

# CustomFormsApi
  Use this API to build and manage custom forms.
With this functionality in place, administrators can create and view form definitions and form instances.

Forms are composed of sections and fields. Sections split the form into logical groups of fields and fields are the data collection points within the form. Configure conditions to modify elements of the form as the responder provides input. Create form inputs to pass information from a calling feature, like a workflow, to your form.

Forms can be used within workflows as an action or as a trigger. The Form Action allows you to assign a form as a step in a running workflow, suspending the workflow until the form is submitted or times out, and the workflow resumes. The Form Submitted Trigger initiates a workflow when a form is submitted. The trigger can be configured to initiate on submission of a full form, a form element with any value, or a form element with a particular value.

Refer to [Forms](https://documentation.sailpoint.com/saas/help/forms/index.html) for more information about using forms in Identity Security Cloud.
 
All URIs are relative to *https://sailpoint.api.identitynow.com*

Method | HTTP request | Description
------------- | ------------- | -------------
[**create-form-definition-dynamic-schema-v1**](#create-form-definition-dynamic-schema-v1) | **POST** `/form-definitions/v1/forms-action-dynamic-schema` | Generate json schema dynamically.
[**create-form-definition-file-request-v1**](#create-form-definition-file-request-v1) | **POST** `/form-definitions/v1/{formDefinitionID}/upload` | Upload new form definition file.
[**create-form-definition-v1**](#create-form-definition-v1) | **POST** `/form-definitions/v1` | Creates a form definition.
[**create-form-instance-v1**](#create-form-instance-v1) | **POST** `/form-instances/v1` | Creates a form instance.
[**delete-form-definition-v1**](#delete-form-definition-v1) | **DELETE** `/form-definitions/v1/{formDefinitionID}` | Deletes a form definition.
[**export-form-definitions-by-tenant-v1**](#export-form-definitions-by-tenant-v1) | **GET** `/form-definitions/v1/export` | List form definitions by tenant.
[**get-file-from-s3-v1**](#get-file-from-s3-v1) | **GET** `/form-definitions/v1/{formDefinitionID}/file/{fileID}` | Download definition file by fileid.
[**get-form-definition-by-key-v1**](#get-form-definition-by-key-v1) | **GET** `/form-definitions/v1/{formDefinitionID}` | Return a form definition.
[**get-form-instance-by-key-v1**](#get-form-instance-by-key-v1) | **GET** `/form-instances/v1/{formInstanceID}` | Returns a form instance.
[**get-form-instance-file-v1**](#get-form-instance-file-v1) | **GET** `/form-instances/v1/{formInstanceID}/file/{fileID}` | Download instance file by fileid.
[**import-form-definitions-v1**](#import-form-definitions-v1) | **POST** `/form-definitions/v1/import` | Import form definitions from export.
[**patch-form-definition-v1**](#patch-form-definition-v1) | **PATCH** `/form-definitions/v1/{formDefinitionID}` | Patch a form definition.
[**patch-form-instance-v1**](#patch-form-instance-v1) | **PATCH** `/form-instances/v1/{formInstanceID}` | Patch a form instance.
[**search-form-definitions-by-tenant-v1**](#search-form-definitions-by-tenant-v1) | **GET** `/form-definitions/v1` | Export form definitions by tenant.
[**search-form-element-data-by-element-idv1**](#search-form-element-data-by-element-idv1) | **GET** `/form-instances/v1/{formInstanceID}/data-source/{formElementID}` | Retrieves dynamic data by element.
[**search-form-instances-by-tenant-v1**](#search-form-instances-by-tenant-v1) | **GET** `/form-instances/v1` | List form instances by tenant.
[**search-pre-defined-select-options-v1**](#search-pre-defined-select-options-v1) | **GET** `/form-definitions/v1/predefined-select-options` | List predefined select options.
[**show-preview-data-source-v1**](#show-preview-data-source-v1) | **POST** `/form-definitions/v1/{formDefinitionID}/data-source` | Preview form definition data source.


## create-form-definition-dynamic-schema-v1
Generate json schema dynamically.


[API Spec](https://developer.sailpoint.com/docs/api/create-form-definition-dynamic-schema-v-1)

### Parameters


Name | Type | Description  | Notes
------------- | ------------- | ------------- | -------------
**body** | `FormDefinitionDynamicSchemaRequest` | Body is the request payload to create a form definition dynamic schema | [optional]

### Return type

`FormDefinitionDynamicSchemaResponse`

### HTTP request headers

- **Content-Type**: application/json
- **Accept**: application/json

### Example

```typescript
import { CustomFormsApi } from 'sailpoint-api-client';
import { Configuration } from 'sailpoint-api-client';
import { FormDefinitionDynamicSchemaRequest } from 'sailpoint-api-client/dist/custom_forms/api';

const configuration = new Configuration();
const apiInstance = new CustomFormsApi(configuration);
const body: FormDefinitionDynamicSchemaRequest = {
  "description" : "A description",
  "attributes" : {
    "formDefinitionId" : "00000000-0000-0000-0000-000000000000"
  },
  "id" : "00000000-0000-0000-0000-000000000000",
  "type" : "action",
  "versionNumber" : 1
}; // Body is the request payload to create a form definition dynamic schema (optional)
const result = await apiInstance.createFormDefinitionDynamicSchemaV1({  });
console.log(result);
```

[[Back to top]](#)

## create-form-definition-file-request-v1
Upload new form definition file.
Parameter `{formDefinitionID}` should match a form definition ID.

[API Spec](https://developer.sailpoint.com/docs/api/create-form-definition-file-request-v-1)

### Parameters


Name | Type | Description  | Notes
------------- | ------------- | ------------- | -------------
**formDefinitionID** | `string` | FormDefinitionID  String specifying FormDefinitionID |  [default to undefined]
**file** | `File` | File specifying the multipart |  [default to undefined]

### Return type

`FormDefinitionFileUploadResponse`

### HTTP request headers

- **Content-Type**: multipart/form-data
- **Accept**: application/json

### Example

```typescript
import { CustomFormsApi } from 'sailpoint-api-client';
import { Configuration } from 'sailpoint-api-client';

const configuration = new Configuration();
const apiInstance = new CustomFormsApi(configuration);
const formDefinitionID: string = 00000000-0000-0000-0000-000000000000; // FormDefinitionID  String specifying FormDefinitionID
const file: File = BINARY_DATA_HERE; // File specifying the multipart
const result = await apiInstance.createFormDefinitionFileRequestV1({ formDefinitionID: formDefinitionID, file: file });
console.log(result);
```

[[Back to top]](#)

## create-form-definition-v1
Creates a form definition.


[API Spec](https://developer.sailpoint.com/docs/api/create-form-definition-v-1)

### Parameters


Name | Type | Description  | Notes
------------- | ------------- | ------------- | -------------
**body** | `CreateFormDefinitionRequest` | Body is the request payload to create form definition request | [optional]

### Return type

`FormDefinitionResponse`

### HTTP request headers

- **Content-Type**: application/json
- **Accept**: application/json

### Example

```typescript
import { CustomFormsApi } from 'sailpoint-api-client';
import { Configuration } from 'sailpoint-api-client';
import { CreateFormDefinitionRequest } from 'sailpoint-api-client/dist/custom_forms/api';

const configuration = new Configuration();
const apiInstance = new CustomFormsApi(configuration);
const body: CreateFormDefinitionRequest = {
  "owner" : {
    "name" : "Grant Smith",
    "id" : "2c9180867624cbd7017642d8c8c81f67",
    "type" : "IDENTITY"
  },
  "formConditions" : [ {
    "ruleOperator" : "AND",
    "effects" : [ {
      "config" : {
        "defaultValueLabel" : "Access to Remove",
        "element" : "8110662963316867"
      },
      "effectType" : "HIDE"
    }, {
      "config" : {
        "defaultValueLabel" : "Access to Remove",
        "element" : "8110662963316867"
      },
      "effectType" : "HIDE"
    } ],
    "rules" : [ {
      "sourceType" : "ELEMENT",
      "valueType" : "STRING",
      "source" : "department",
      "value" : "Engineering",
      "operator" : "EQ"
    }, {
      "sourceType" : "ELEMENT",
      "valueType" : "STRING",
      "source" : "department",
      "value" : "Engineering",
      "operator" : "EQ"
    } ]
  }, {
    "ruleOperator" : "AND",
    "effects" : [ {
      "config" : {
        "defaultValueLabel" : "Access to Remove",
        "element" : "8110662963316867"
      },
      "effectType" : "HIDE"
    }, {
      "config" : {
        "defaultValueLabel" : "Access to Remove",
        "element" : "8110662963316867"
      },
      "effectType" : "HIDE"
    } ],
    "rules" : [ {
      "sourceType" : "ELEMENT",
      "valueType" : "STRING",
      "source" : "department",
      "value" : "Engineering",
      "operator" : "EQ"
    }, {
      "sourceType" : "ELEMENT",
      "valueType" : "STRING",
      "source" : "department",
      "value" : "Engineering",
      "operator" : "EQ"
    } ]
  } ],
  "formInput" : [ {
    "description" : "A single dynamic scalar value (i.e. number, string, date, etc.) that can be passed into the form for use in conditional logic",
    "id" : "00000000-0000-0000-0000-000000000000",
    "label" : "input1",
    "type" : "STRING"
  }, {
    "description" : "A single dynamic scalar value (i.e. number, string, date, etc.) that can be passed into the form for use in conditional logic",
    "id" : "00000000-0000-0000-0000-000000000000",
    "label" : "input1",
    "type" : "STRING"
  } ],
  "name" : "My form",
  "description" : "My form description",
  "usedBy" : [ {
    "name" : "Access Request Form",
    "id" : "61940a92-5484-42bc-bc10-b9982b218cdf",
    "type" : "WORKFLOW"
  }, {
    "name" : "Access Request Form",
    "id" : "61940a92-5484-42bc-bc10-b9982b218cdf",
    "type" : "WORKFLOW"
  } ],
  "formElements" : [ {
    "id" : "00000000-0000-0000-0000-000000000000",
    "validations" : [ {
      "validationType" : "REQUIRED"
    }, {
      "validationType" : "REQUIRED"
    } ],
    "elementType" : "TEXT",
    "config" : {
      "label" : "Department"
    },
    "key" : "department"
  }, {
    "id" : "00000000-0000-0000-0000-000000000000",
    "validations" : [ {
      "validationType" : "REQUIRED"
    }, {
      "validationType" : "REQUIRED"
    } ],
    "elementType" : "TEXT",
    "config" : {
      "label" : "Department"
    },
    "key" : "department"
  } ]
}; // Body is the request payload to create form definition request (optional)
const result = await apiInstance.createFormDefinitionV1({  });
console.log(result);
```

[[Back to top]](#)

## create-form-instance-v1
Creates a form instance.


[API Spec](https://developer.sailpoint.com/docs/api/create-form-instance-v-1)

### Parameters


Name | Type | Description  | Notes
------------- | ------------- | ------------- | -------------
**body** | `CreateFormInstanceRequest` | Body is the request payload to create a form instance | [optional]

### Return type

`FormInstanceResponse`

### HTTP request headers

- **Content-Type**: application/json
- **Accept**: application/json

### Example

```typescript
import { CustomFormsApi } from 'sailpoint-api-client';
import { Configuration } from 'sailpoint-api-client';
import { CreateFormInstanceRequest } from 'sailpoint-api-client/dist/custom_forms/api';

const configuration = new Configuration();
const apiInstance = new CustomFormsApi(configuration);
const body: CreateFormInstanceRequest = {
  "formInput" : {
    "input1" : "Sales"
  },
  "standAloneForm" : false,
  "createdBy" : {
    "id" : "00000000-0000-0000-0000-000000000000",
    "type" : "WORKFLOW_EXECUTION"
  },
  "recipients" : [ {
    "id" : "00000000-0000-0000-0000-000000000000",
    "type" : "IDENTITY"
  }, {
    "id" : "00000000-0000-0000-0000-000000000000",
    "type" : "IDENTITY"
  } ],
  "expire" : "2023-08-12T20:14:57.74486Z",
  "formDefinitionId" : "00000000-0000-0000-0000-000000000000",
  "state" : "ASSIGNED",
  "ttl" : 1571827560
}; // Body is the request payload to create a form instance (optional)
const result = await apiInstance.createFormInstanceV1({  });
console.log(result);
```

[[Back to top]](#)

## delete-form-definition-v1
Deletes a form definition.
Parameter `{formDefinitionID}` should match a form definition ID.

[API Spec](https://developer.sailpoint.com/docs/api/delete-form-definition-v-1)

### Parameters


Name | Type | Description  | Notes
------------- | ------------- | ------------- | -------------
**formDefinitionID** | `string` | Form definition ID |  [default to undefined]

### Return type

`object`

### HTTP request headers

- **Content-Type**: Not defined
- **Accept**: application/json

### Example

```typescript
import { CustomFormsApi } from 'sailpoint-api-client';
import { Configuration } from 'sailpoint-api-client';

const configuration = new Configuration();
const apiInstance = new CustomFormsApi(configuration);
const formDefinitionID: string = 00000000-0000-0000-0000-000000000000; // Form definition ID
const result = await apiInstance.deleteFormDefinitionV1({ formDefinitionID: formDefinitionID });
console.log(result);
```

[[Back to top]](#)

## export-form-definitions-by-tenant-v1
List form definitions by tenant.
No parameters required.

[API Spec](https://developer.sailpoint.com/docs/api/export-form-definitions-by-tenant-v-1)

### Parameters


Name | Type | Description  | Notes
------------- | ------------- | ------------- | -------------
**offset** | `number` | Offset  Integer specifying the offset of the first result from the beginning of the collection. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). The offset value is record-based, not page-based, and the index starts at 0. | [optional] [default to 0]
**limit** | `number` | Limit  Integer specifying the maximum number of records to return in a single API call. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). If it is not specified, a default limit is used. | [optional] [default to 250]
**filters** | `string` | Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results)  Filtering is supported for the following fields and operators:  **name**: *eq, gt, sw, in*  **description**: *eq, gt, sw, in*  **created**: *eq, gt, sw, in*  **modified**: *eq, gt, sw, in* | [optional] [default to undefined]
**sorters** | `string` | Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results)  Sorting is supported for the following fields: **name, description, created, modified** | [optional] [default to &#39;name&#39;]

### Return type

`Array<ExportFormDefinitionsByTenantV1200ResponseInner>`

### HTTP request headers

- **Content-Type**: Not defined
- **Accept**: application/json

### Example

```typescript
import { CustomFormsApi } from 'sailpoint-api-client';
import { Configuration } from 'sailpoint-api-client';

const configuration = new Configuration();
const apiInstance = new CustomFormsApi(configuration);
const offset: number = 0; // Offset  Integer specifying the offset of the first result from the beginning of the collection. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). The offset value is record-based, not page-based, and the index starts at 0. (optional)
const limit: number = 250; // Limit  Integer specifying the maximum number of records to return in a single API call. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). If it is not specified, a default limit is used. (optional)
const filters: string = name sw "my form"; // Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results)  Filtering is supported for the following fields and operators:  **name**: *eq, gt, sw, in*  **description**: *eq, gt, sw, in*  **created**: *eq, gt, sw, in*  **modified**: *eq, gt, sw, in* (optional)
const sorters: string = name; // Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results)  Sorting is supported for the following fields: **name, description, created, modified** (optional)
const result = await apiInstance.exportFormDefinitionsByTenantV1({  });
console.log(result);
```

[[Back to top]](#)

## get-file-from-s3-v1
Download definition file by fileid.


[API Spec](https://developer.sailpoint.com/docs/api/get-file-from-s3-v-1)

### Parameters


Name | Type | Description  | Notes
------------- | ------------- | ------------- | -------------
**formDefinitionID** | `string` | FormDefinitionID  Form definition ID |  [default to undefined]
**fileID** | `string` | FileID  String specifying the hashed name of the uploaded file we are retrieving. |  [default to undefined]

### Return type

`File`

### HTTP request headers

- **Content-Type**: Not defined
- **Accept**: application/json, image/jpeg, image/png, application/octet-stream

### Example

```typescript
import { CustomFormsApi } from 'sailpoint-api-client';
import { Configuration } from 'sailpoint-api-client';

const configuration = new Configuration();
const apiInstance = new CustomFormsApi(configuration);
const formDefinitionID: string = 00000000-0000-0000-0000-000000000000; // FormDefinitionID  Form definition ID
const fileID: string = 00000031N0J7R2B57M8YG73J7M.png; // FileID  String specifying the hashed name of the uploaded file we are retrieving.
const result = await apiInstance.getFileFromS3V1({ formDefinitionID: formDefinitionID, fileID: fileID });
console.log(result);
```

[[Back to top]](#)

## get-form-definition-by-key-v1
Return a form definition.
Parameter `{formDefinitionID}` should match a form definition ID.

[API Spec](https://developer.sailpoint.com/docs/api/get-form-definition-by-key-v-1)

### Parameters


Name | Type | Description  | Notes
------------- | ------------- | ------------- | -------------
**formDefinitionID** | `string` | Form definition ID |  [default to undefined]

### Return type

`FormDefinitionResponse`

### HTTP request headers

- **Content-Type**: Not defined
- **Accept**: application/json

### Example

```typescript
import { CustomFormsApi } from 'sailpoint-api-client';
import { Configuration } from 'sailpoint-api-client';

const configuration = new Configuration();
const apiInstance = new CustomFormsApi(configuration);
const formDefinitionID: string = 00000000-0000-0000-0000-000000000000; // Form definition ID
const result = await apiInstance.getFormDefinitionByKeyV1({ formDefinitionID: formDefinitionID });
console.log(result);
```

[[Back to top]](#)

## get-form-instance-by-key-v1
Returns a form instance.
Parameter `{formInstanceID}` should match a form instance ID.

Only the assigned recipient (`recipients[].id` when `type` is `IDENTITY`) may call this.

[API Spec](https://developer.sailpoint.com/docs/api/get-form-instance-by-key-v-1)

### Parameters


Name | Type | Description  | Notes
------------- | ------------- | ------------- | -------------
**formInstanceID** | `string` | Form instance ID |  [default to undefined]

### Return type

`FormInstanceResponse`

### HTTP request headers

- **Content-Type**: Not defined
- **Accept**: application/json

### Example

```typescript
import { CustomFormsApi } from 'sailpoint-api-client';
import { Configuration } from 'sailpoint-api-client';

const configuration = new Configuration();
const apiInstance = new CustomFormsApi(configuration);
const formInstanceID: string = 00000000-0000-0000-0000-000000000000; // Form instance ID
const result = await apiInstance.getFormInstanceByKeyV1({ formInstanceID: formInstanceID });
console.log(result);
```

[[Back to top]](#)

## get-form-instance-file-v1
Download instance file by fileid.


[API Spec](https://developer.sailpoint.com/docs/api/get-form-instance-file-v-1)

### Parameters


Name | Type | Description  | Notes
------------- | ------------- | ------------- | -------------
**formInstanceID** | `string` | FormInstanceID  Form instance ID |  [default to undefined]
**fileID** | `string` | FileID  String specifying the hashed name of the uploaded file we are retrieving. |  [default to undefined]

### Return type

`File`

### HTTP request headers

- **Content-Type**: Not defined
- **Accept**: application/json, image/jpeg, image/png, application/octet-stream

### Example

```typescript
import { CustomFormsApi } from 'sailpoint-api-client';
import { Configuration } from 'sailpoint-api-client';

const configuration = new Configuration();
const apiInstance = new CustomFormsApi(configuration);
const formInstanceID: string = 00000000-0000-0000-0000-000000000000; // FormInstanceID  Form instance ID
const fileID: string = 00000031N0J7R2B57M8YG73J7M.png; // FileID  String specifying the hashed name of the uploaded file we are retrieving.
const result = await apiInstance.getFormInstanceFileV1({ formInstanceID: formInstanceID, fileID: fileID });
console.log(result);
```

[[Back to top]](#)

## import-form-definitions-v1
Import form definitions from export.


[API Spec](https://developer.sailpoint.com/docs/api/import-form-definitions-v-1)

### Parameters


Name | Type | Description  | Notes
------------- | ------------- | ------------- | -------------
**body** | `Array<ImportFormDefinitionsV1RequestInner>` | Body is the request payload to import form definitions | [optional]

### Return type

`ImportFormDefinitionsV1202Response`

### HTTP request headers

- **Content-Type**: application/json
- **Accept**: application/json

### Example

```typescript
import { CustomFormsApi } from 'sailpoint-api-client';
import { Configuration } from 'sailpoint-api-client';
import { ImportFormDefinitionsV1RequestInner } from 'sailpoint-api-client/dist/custom_forms/api';

const configuration = new Configuration();
const apiInstance = new CustomFormsApi(configuration);
const body: Array<ImportFormDefinitionsV1RequestInner> = [{"version":1,"self":{"name":"All fields not required","id":"05ed4edb-d0a9-41d9-ad0c-2f6e486ec4aa","type":"FORM_DEFINITION"},"object":{"id":"05ed4edb-d0a9-41d9-ad0c-2f6e486ec4aa","name":"All fields not required","description":"description","owner":{"type":"IDENTITY","id":"3447d8ec2602455ab6f1e8408a0f0150"},"usedBy":[{"type":"WORKFLOW","id":"5008594c-dacc-4295-8fee-41df60477304"},{"type":"WORKFLOW","id":"97e75a75-c179-4fbc-a2da-b5fa4aaa8743"}],"formInput":[{"type":"STRING","label":"input1","description":"A single dynamic scalar value (i.e. number, string, date, etc) that can be passed into the form for use in conditional logic"}],"formElements":[{"id":"3069272797630701","elementType":"SECTION","config":{"label":"First Section","formElements":[{"id":"3069272797630700","elementType":"TEXT","key":"firstName","config":{"label":"First Name"}},{"id":"3498415402897539","elementType":"TEXT","key":"lastName","config":{"label":"Last Name"}}]}}],"formConditions":[{"ruleOperator":"AND","rules":[{"sourceType":"INPUT","source":"Department","operator":"EQ","valueType":"STRING","value":"Sales"}],"effects":[{"effectType":"HIDE","config":{"element":"2614088730489570"}}]}],"created":"2022-10-04T19:27:04.456Z","modified":"2022-11-16T20:45:02.172Z"}}]; // Body is the request payload to import form definitions (optional)
const result = await apiInstance.importFormDefinitionsV1({  });
console.log(result);
```

[[Back to top]](#)

## patch-form-definition-v1
Patch a form definition.
Parameter `{formDefinitionID}` should match a form definition ID.

[API Spec](https://developer.sailpoint.com/docs/api/patch-form-definition-v-1)

### Parameters


Name | Type | Description  | Notes
------------- | ------------- | ------------- | -------------
**formDefinitionID** | `string` | Form definition ID |  [default to undefined]
**body** | `Array<{ [key: string]: object; }>` | Body is the request payload to patch a form definition, check: https://jsonpatch.com | [optional]

### Return type

`FormDefinitionResponse`

### HTTP request headers

- **Content-Type**: application/json
- **Accept**: application/json

### Example

```typescript
import { CustomFormsApi } from 'sailpoint-api-client';
import { Configuration } from 'sailpoint-api-client';

const configuration = new Configuration();
const apiInstance = new CustomFormsApi(configuration);
const formDefinitionID: string = 00000000-0000-0000-0000-000000000000; // Form definition ID
const body: Array<{ [key: string]: object; }> = [{"op":"replace","path":"/description","value":"test-description"}]; // Body is the request payload to patch a form definition, check: https://jsonpatch.com (optional)
const result = await apiInstance.patchFormDefinitionV1({ formDefinitionID: formDefinitionID });
console.log(result);
```

[[Back to top]](#)

## patch-form-instance-v1
Patch a form instance.
Parameter `{formInstanceID}` should match a form instance ID.

Only the assigned recipient (`recipients[].id` when `type` is `IDENTITY`) may call this.

[API Spec](https://developer.sailpoint.com/docs/api/patch-form-instance-v-1)

### Parameters


Name | Type | Description  | Notes
------------- | ------------- | ------------- | -------------
**formInstanceID** | `string` | Form instance ID |  [default to undefined]
**body** | `Array<{ [key: string]: object; }>` | Body is the request payload to patch a form instance, check: https://jsonpatch.com | [optional]

### Return type

`FormInstanceResponse`

### HTTP request headers

- **Content-Type**: application/json
- **Accept**: application/json

### Example

```typescript
import { CustomFormsApi } from 'sailpoint-api-client';
import { Configuration } from 'sailpoint-api-client';

const configuration = new Configuration();
const apiInstance = new CustomFormsApi(configuration);
const formInstanceID: string = 00000000-0000-0000-0000-000000000000; // Form instance ID
const body: Array<{ [key: string]: object; }> = [{"op":"replace","path":"/state","value":"SUBMITTED"},{"op":"replace","path":"/formData","value":{"a-key-1":"a-value-1","a-key-2":true,"a-key-3":1}}]; // Body is the request payload to patch a form instance, check: https://jsonpatch.com (optional)
const result = await apiInstance.patchFormInstanceV1({ formInstanceID: formInstanceID });
console.log(result);
```

[[Back to top]](#)

## search-form-definitions-by-tenant-v1
Export form definitions by tenant.
No parameters required.

[API Spec](https://developer.sailpoint.com/docs/api/search-form-definitions-by-tenant-v-1)

### Parameters


Name | Type | Description  | Notes
------------- | ------------- | ------------- | -------------
**offset** | `number` | Offset  Integer specifying the offset of the first result from the beginning of the collection. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). The offset value is record-based, not page-based, and the index starts at 0. | [optional] [default to 0]
**limit** | `number` | Limit  Integer specifying the maximum number of records to return in a single API call. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). If it is not specified, a default limit is used. | [optional] [default to 250]
**filters** | `string` | Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results)  Filtering is supported for the following fields and operators:  **name**: *eq, gt, sw, in*  **description**: *eq, gt, sw, in*  **created**: *eq, gt, sw, in*  **modified**: *eq, gt, sw, in* | [optional] [default to undefined]
**sorters** | `string` | Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results)  Sorting is supported for the following fields: **name, description, created, modified** | [optional] [default to &#39;name&#39;]

### Return type

`ListFormDefinitionsByTenantResponse`

### HTTP request headers

- **Content-Type**: Not defined
- **Accept**: application/json

### Example

```typescript
import { CustomFormsApi } from 'sailpoint-api-client';
import { Configuration } from 'sailpoint-api-client';

const configuration = new Configuration();
const apiInstance = new CustomFormsApi(configuration);
const offset: number = 250; // Offset  Integer specifying the offset of the first result from the beginning of the collection. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). The offset value is record-based, not page-based, and the index starts at 0. (optional)
const limit: number = 250; // Limit  Integer specifying the maximum number of records to return in a single API call. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). If it is not specified, a default limit is used. (optional)
const filters: string = name sw "my form"; // Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results)  Filtering is supported for the following fields and operators:  **name**: *eq, gt, sw, in*  **description**: *eq, gt, sw, in*  **created**: *eq, gt, sw, in*  **modified**: *eq, gt, sw, in* (optional)
const sorters: string = name; // Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results)  Sorting is supported for the following fields: **name, description, created, modified** (optional)
const result = await apiInstance.searchFormDefinitionsByTenantV1({  });
console.log(result);
```

[[Back to top]](#)

## search-form-element-data-by-element-idv1
Retrieves dynamic data by element.
Parameter `{formInstanceID}` should match a form instance ID.
Parameter `{formElementID}` should match a form element ID at the data source configuration.

[API Spec](https://developer.sailpoint.com/docs/api/search-form-element-data-by-element-idv1)

### Parameters


Name | Type | Description  | Notes
------------- | ------------- | ------------- | -------------
**formInstanceID** | `string` | Form instance ID |  [default to undefined]
**formElementID** | `string` | Form element ID |  [default to undefined]
**limit** | `number` | Limit  Integer specifying the maximum number of records to return in a single API call. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). If it is not specified, a default limit is used. | [optional] [default to 250]
**filters** | `string` | Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results)  Filtering is supported for the following fields and operators:  **value**: *eq, ne, in*  Supported composite operators: *not*  Only a single *not* may be used, and it can only be used with the &#x60;in&#x60; operator. The &#x60;not&#x60; composite operator must be used in front of the field. For example, the following is valid: &#x60;not value in (\&quot;ID01\&quot;)&#x60; | [optional] [default to undefined]
**query** | `string` | String that is passed to the underlying API to filter other (non-ID) fields.  For example, for access  profile data sources, this string will be passed to the access profile api and used with a \&quot;starts with\&quot; filter against  several fields. | [optional] [default to undefined]

### Return type

`ListFormElementDataByElementIDResponse`

### HTTP request headers

- **Content-Type**: Not defined
- **Accept**: application/json

### Example

```typescript
import { CustomFormsApi } from 'sailpoint-api-client';
import { Configuration } from 'sailpoint-api-client';

const configuration = new Configuration();
const apiInstance = new CustomFormsApi(configuration);
const formInstanceID: string = 00000000-0000-0000-0000-000000000000; // Form instance ID
const formElementID: string = 1; // Form element ID
const limit: number = 250; // Limit  Integer specifying the maximum number of records to return in a single API call. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). If it is not specified, a default limit is used. (optional)
const filters: string = value eq "ID01"; // Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results)  Filtering is supported for the following fields and operators:  **value**: *eq, ne, in*  Supported composite operators: *not*  Only a single *not* may be used, and it can only be used with the &#x60;in&#x60; operator. The &#x60;not&#x60; composite operator must be used in front of the field. For example, the following is valid: &#x60;not value in (\&quot;ID01\&quot;)&#x60; (optional)
const query: string = support; // String that is passed to the underlying API to filter other (non-ID) fields.  For example, for access  profile data sources, this string will be passed to the access profile api and used with a \&quot;starts with\&quot; filter against  several fields. (optional)
const result = await apiInstance.searchFormElementDataByElementIDV1({ formInstanceID: formInstanceID, formElementID: formElementID });
console.log(result);
```

[[Back to top]](#)

## search-form-instances-by-tenant-v1
List form instances by tenant.
Returns a list of form instances for the tenant. Optionally filter by form definition ID.

[API Spec](https://developer.sailpoint.com/docs/api/search-form-instances-by-tenant-v-1)

### Parameters


Name | Type | Description  | Notes
------------- | ------------- | ------------- | -------------
**offset** | `number` | Offset  Integer specifying the offset of the first result from the beginning of the collection. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). The offset value is record-based, not page-based, and the index starts at 0. | [optional] [default to 0]
**limit** | `number` | Limit  Integer specifying the maximum number of records to return in a single API call. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). If it is not specified, a default limit is used. | [optional] [default to 250]
**filters** | `string` | Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results)  Filtering is supported for the following fields and operators:  **formDefinitionId**: *eq* | [optional] [default to undefined]

### Return type

`Array<ListFormInstancesByTenantResponse>`

### HTTP request headers

- **Content-Type**: Not defined
- **Accept**: application/json

### Example

```typescript
import { CustomFormsApi } from 'sailpoint-api-client';
import { Configuration } from 'sailpoint-api-client';

const configuration = new Configuration();
const apiInstance = new CustomFormsApi(configuration);
const offset: number = 0; // Offset  Integer specifying the offset of the first result from the beginning of the collection. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). The offset value is record-based, not page-based, and the index starts at 0. (optional)
const limit: number = 100; // Limit  Integer specifying the maximum number of records to return in a single API call. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). If it is not specified, a default limit is used. (optional)
const filters: string = formDefinitionId eq "351c1daa-56f6-4bbf-b32c-49844c0b716e"; // Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results)  Filtering is supported for the following fields and operators:  **formDefinitionId**: *eq* (optional)
const result = await apiInstance.searchFormInstancesByTenantV1({  });
console.log(result);
```

[[Back to top]](#)

## search-pre-defined-select-options-v1
List predefined select options.
No parameters required.

[API Spec](https://developer.sailpoint.com/docs/api/search-pre-defined-select-options-v-1)

### Parameters

This endpoint does not need any parameter.

### Return type

`ListPredefinedSelectOptionsResponse`

### HTTP request headers

- **Content-Type**: Not defined
- **Accept**: application/json

### Example

```typescript
import { CustomFormsApi } from 'sailpoint-api-client';
import { Configuration } from 'sailpoint-api-client';

const configuration = new Configuration();
const apiInstance = new CustomFormsApi(configuration);
const result = await apiInstance.searchPreDefinedSelectOptionsV1({  });
console.log(result);
```

[[Back to top]](#)

## show-preview-data-source-v1
Preview form definition data source.


[API Spec](https://developer.sailpoint.com/docs/api/show-preview-data-source-v-1)

### Parameters


Name | Type | Description  | Notes
------------- | ------------- | ------------- | -------------
**formDefinitionID** | `string` | Form definition ID |  [default to undefined]
**limit** | `number` | Limit  Integer specifying the maximum number of records to return in a single API call. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). If it is not specified, a default limit is used. | [optional] [default to 10]
**filters** | `string` | Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results)  Filtering is supported for the following fields and operators:  **value**: *eq, ne, in*  Supported composite operators: *not*  Only a single *not* may be used, and it can only be used with the &#x60;in&#x60; operator. The &#x60;not&#x60; composite operator must be used in front of the field. For example, the following is valid: &#x60;not value in (\&quot;ID01\&quot;)&#x60; | [optional] [default to undefined]
**query** | `string` | String that is passed to the underlying API to filter other (non-ID) fields.  For example, for access  profile data sources, this string will be passed to the access profile api and used with a \&quot;starts with\&quot; filter against  several fields. | [optional] [default to undefined]
**formElementPreviewRequest** | `FormElementPreviewRequest` | Body is the request payload to create a form definition dynamic schema | [optional]

### Return type

`PreviewDataSourceResponse`

### HTTP request headers

- **Content-Type**: application/json
- **Accept**: application/json

### Example

```typescript
import { CustomFormsApi } from 'sailpoint-api-client';
import { Configuration } from 'sailpoint-api-client';
import { FormElementPreviewRequest } from 'sailpoint-api-client/dist/custom_forms/api';

const configuration = new Configuration();
const apiInstance = new CustomFormsApi(configuration);
const formDefinitionID: string = 00000000-0000-0000-0000-000000000000; // Form definition ID
const limit: number = 10; // Limit  Integer specifying the maximum number of records to return in a single API call. The standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results). If it is not specified, a default limit is used. (optional)
const filters: string = value eq "ID01"; // Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results)  Filtering is supported for the following fields and operators:  **value**: *eq, ne, in*  Supported composite operators: *not*  Only a single *not* may be used, and it can only be used with the &#x60;in&#x60; operator. The &#x60;not&#x60; composite operator must be used in front of the field. For example, the following is valid: &#x60;not value in (\&quot;ID01\&quot;)&#x60; (optional)
const query: string = ac; // String that is passed to the underlying API to filter other (non-ID) fields.  For example, for access  profile data sources, this string will be passed to the access profile api and used with a \&quot;starts with\&quot; filter against  several fields. (optional)
const formElementPreviewRequest: FormElementPreviewRequest = {
  "dataSource" : {
    "config" : {
      "indices" : [ "identities" ],
      "query" : "*",
      "aggregationBucketField" : "attributes.cloudStatus.exact",
      "objectType" : "IDENTITY"
    },
    "dataSourceType" : "STATIC"
  }
}; // Body is the request payload to create a form definition dynamic schema (optional)
const result = await apiInstance.showPreviewDataSourceV1({ formDefinitionID: formDefinitionID });
console.log(result);
```

[[Back to top]](#)

