> For the complete documentation index, see [llms.txt](https://ieg4.gitbook.io/edesigner-new/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ieg4.gitbook.io/edesigner-new/no-code-integrations/api-functions.md).

# API Functions

### **Overview**

eDesigner now includes powerful integration capabilities that allow forms to connect to external systems using custom APIs.

These integrations enable you to:

* Validate user input against external services
* Dynamically populate form fields

Two new options are available in the Design menu:

* API Functions
* Custom Validators

{% hint style="info" %}
**Contact IEG4 Support to upgrade to a supported version and enable API Functions**
{% endhint %}

### API Functions

**Purpose**

API Functions define the external APIs that your forms can call

<figure><img src="/files/6mtmfAHjK2Z7Q8PW1Zlp" alt=""><figcaption></figcaption></figure>

**How to Configure**

1. Open the Design menu
2. Select API Functions
3. Add a new API Function
4. Enter the following details:

* Name – A meaningful name for the API
* Description – A description of the API
* Endpoint URL – The API endpoint to call
* API Key Header Name *(optional)*
* API Key *(optional)*

API key settings are only required if your API uses authentication.

You can create multiple API Functions and reuse them across different forms.

<figure><img src="/files/KDMjdzET0lcztXmPYaZx" alt=""><figcaption></figcaption></figure>

#### API Request Format

When a form calls an API Function, it sends the current form data in a structured JSON format.

**Structure**

JSON

body → pages\[] → controls\[]

&#x20;

Each control represents a field:

JSON

{

"id": "\<field identifier>",

"value": "\<string value>"

}

&#x20;

**Key Characteristics**

* All values are sent as strings
* Data is grouped by page
* Each field is identified by its ID, not its label
* Some fields may contain JSON encoded as a string, which must be parsed before use

**Note**

API Functions use data from the form XML, which is generated as users complete the form.

Form data is only available after a page has been completed.

This means:

* API calls will only include data from previously completed pages
* Data entered on the current page is not available until the user clicks Next

When designing integrations (such as validation or data lookups), ensure that the API Function is used on a page that comes **after** all required input fields.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://ieg4.gitbook.io/edesigner-new/no-code-integrations/api-functions.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
