--- title: "Unqork’s Internal API: Create APIs" slug: "unqorks-internal-api-create-apis" updated: 2025-09-25T23:09:57Z published: 2025-09-25T23:09:57Z canonical: "docs.unqork.io/unqorks-internal-api-create-apis" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.unqork.io/llms.txt > Use this file to discover all available pages before exploring further. # Unqork’s Internal API: Create APIs **Unqork's Internal Create API** call is one of the available create, read, update, and delete (CRUD) operations. In this article, you'll explore the **Create** **Module** **Submission(s)** API call. ## Create Module Submission(s) API A common API call you'll use in Unqork is the **Create a** **Module** **Submission(s)** API call. This API is a secure way to automatically create one or more module [submissions](/v1/docs/submission-data). One way to configure the API is to have it trigger when an end-user clicks **Save**. For improved security, our [proxy module](/v1/docs/how-to-add-a-proxy-module-to-a-remote-execute) setup requires you to create a submission using this API call. This API auto-generates submission IDs, but you must provide a JSON object for the module submission data. To create multiple submissions, the Request Body must contain an array of the defined request body structure. > [!TIP] > To learn more about the Create Module Submission(s) API's request body structure, view our [Create Module Submission(s)](https://developers.unqork.io/#operation/createModuleSubmissions) documentation. ## Review the Create Module Submission(s) API Configuration To help explain how the Create Module Submission(s) API works, we've configured a module and [Plug-In](/v1/docs/plug-in-component) component that uses this API call. The following sections explore the configuration and let you test the API. > [!CAUTION] > Feel free to use the configuration created here for your own builds. But, please do **not** reconfigure the modules. If you want to use the configuration, make a copy of the module and paste it in your application. ### Review the initNewSubmission Initializer Component First, let's open the preconfigured module and look at the [Initializer](/v1/docs/initializer-component) component configuration. 1. Open the preconfigured module in the Module Builder by clicking the following link: [https://training.unqork.io/#/form/64cbeb70a3759b636156d703/edit](https://training.unqork.io/#/form/64cbeb70a3759b636156d703/edit). 2. Hover over the **initNewSubmission** **I****nitializer** component. A 4-button toolbar displays above the component on hover-over. 3. Using the toolbar, click the ![AppBuildButton_Settings.jpg](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/AppBuildButton_Settings(52).jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A50Z&se=2026-11-07T18%3A57%3A50Z&sr=c&sp=r&sig=Yl7WmoSfT12kq7HJEDFU336lyra%2Fyq%2Bm21hWR9irdlw%3D)(**Settings**) button. 4. Review the following settings: The **Trigger Type** is set to `New Submission`, firing the Initializer on page load. In the **Outputs** table, the component outputs values from a schema module and stores them in the **moduleId** **H****idden** component. ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/initExample_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A50Z&se=2026-11-07T18%3A57%3A50Z&sr=c&sp=r&sig=Yl7WmoSfT12kq7HJEDFU336lyra%2Fyq%2Bm21hWR9irdlw%3D) ### Review the pluginCreateModuleSubmission Plug-In Component Let's take a closer look at the necessary [Plug-In](/v1/docs/plug-in-component) component configuration and settings to make the API work. 1. Hover over the **pluginCreateModuleSubmission** Plug-In component. A 4-button toolbar displays above the component on hover-over. 2. Using the toolbar, click the ![AppBuildButton_Settings.jpg](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/AppBuildButton_Settings(52).jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A50Z&se=2026-11-07T18%3A57%3A50Z&sr=c&sp=r&sig=Yl7WmoSfT12kq7HJEDFU336lyra%2Fyq%2Bm21hWR9irdlw%3D)(**Settings**) button. 3. Review the following settings below: #### Internal Services From the **Internal Services** drop-down, you'll see that the `Create Module Submission(s)` API is selected. Once selected, the **Data Source URL** auto-populates with **/fbu/uapi/****module****s/{****module****Id}/submissions**. As you can see, the {moduleId} placeholder text in the URL was modified to {{data.moduleId}}. That way, you can write to the specific data fields stored in the **module** **H****idden** component. These fields are first name, last name, joke question, and joke answer. > [!TIP] > To learn more about the Create Module Submission(s) API, click the **Learn More** button in the [Plug-In](/v1/docs/plug-in-component) component's configuration window. ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/pluginExample_01_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A50Z&se=2026-11-07T18%3A57%3A50Z&sr=c&sp=r&sig=Yl7WmoSfT12kq7HJEDFU336lyra%2Fyq%2Bm21hWR9irdlw%3D) #### Request Type The **Request Type** is also set to **POST**. The POST type is used to write data. #### Inputs Lastly, the **Inputs** table references the components that act as data fields in the new submission. The module contains four [Text Field](/v1/docs/text-field-component) components with Property IDs of **firstName**, **lastName**, **jokeAnswer**, and **jokeQuestion**. To properly map the new submission, we use the `{{data.propertyId}}` syntax. ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/pluginExample_02_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A50Z&se=2026-11-07T18%3A57%3A50Z&sr=c&sp=r&sig=Yl7WmoSfT12kq7HJEDFU336lyra%2Fyq%2Bm21hWR9irdlw%3D) ## Test the Create Module Submission(s) API Now, let's preview the module and test the configuration. 1. **Preview** the preconfigured module in Express View. 2. In Express View, right-click anywhere on the page. 3. Click **Inspect**. The DevTools Console opens to the right of the page. 4. Click the **Network** tab. 5. In the **First Name**, **Last Name**, **Joke Question**, and **Joke Answer** fields, enter some sample data. 6. Click the **Create Submission** button. This button triggers the **pluginCreateModuleSubmission** Plug-In component. 7. If the submission is successfully created, a 201 response displays in the Network tab. ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/InternalAPI_Create_Express_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-07T17%3A57%3A50Z&se=2026-11-07T18%3A57%3A50Z&sr=c&sp=r&sig=Yl7WmoSfT12kq7HJEDFU336lyra%2Fyq%2Bm21hWR9irdlw%3D) ## Resources - [Introduction to Unqork's Internal API](/v1/docs/introduction-to-unqorks-internal-api) - [Unqork's Internal API: Delete APIs](/v1/docs/unqorks-internal-api-delete-apis) - [Unqork's Internal API: Read APIs](/v1/docs/unqorks-internal-api-read-apis) - [Unqork's Internal API: Update APIs](/v1/docs/unqorks-internal-api-update-apis) CRUD refers to the four critical operations for creating and managing data elements in your applications. It stands for create, read, update, and delete. APIs (application programming interfaces) are a set of protocols and definitions developers use to build and integrate application software. APIs act as the connective tissue between products and services. End-users, also known as Express Users, are the individuals accessing an application through Express View. In most cases, end-users are the customers using the product. JSON (JavaScript Object Notation) is an open standard file and data interchange format. Unqork uses JSON for submission (record) data. A Property ID is the unique field ID used by Unqork to track and link components in your module. Express View is how your end-user views your application. Express View also lets you preview your applications to test your configuration and view the styling. This is also the view your end-users will see when interacting with your application. After configuring a module, click Preview in the Module Builder to interact with the module in Express View. The DevTools Console helps you securely store, build, test, and deploy your software.