--- title: "Testing with the API Debugger" slug: "testing-with-the-api-debugger" tags: ["module-builder"] status: "update" updated: 2026-10-19T18:12:07Z published: 2026-10-19T18:12:07Z canonical: "docs.unqork.io/testing-with-the-api-debugger" --- > ## 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. # Testing with the API Debugger The **API Debugger** lets Creators send test requests to a module and inspect the full execution without going through the production application. Use it to verify server-side logic, trace data changes, and debug API calls before publishing. For the full controls reference, see [API Debugger](/unqorkai/docs/api-debugger-1). ## Testing a Module Use the **Internal** tab to send a request directly to a module's API endpoint and inspect the execution. 1. In the **Dev Overlay Toolbar** at the bottom left of the Module Builder, select **Debugger** from the tool selector and expand the toolbar. 2. Select the **Internal** tab. 3. Use ![ListTree](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/api_upload_20261019_181010_021e96e9704142ada7ffef66f2be6e32.svg?sv=2026-02-06&spr=https&st=2026-11-11T03%3A19%3A46Z&se=2026-11-11T04%3A19%3A46Z&sr=c&sp=r&sig=wVwWQVJkWw1Ow9USHeImyvic5s66kzqty3FWmiVui7I%3D) **Browse all routes** or the **Search APIs** field to find the module endpoint to test. The HTTP method and URL populate automatically. 4. Optionally expand **Execute Options** to configure how the execution runs. See [Execute Options](/unqorkai/docs/testing-with-the-api-debugger#execute-options) below. 5. Configure the request body, headers, and parameters using the request configuration tabs. 6. Click **Execute**. 7. Review the results in the result tabs that display at the bottom of the panel. ## Execute Options Execute Options control how the module processes the test request. | Setting | Description | | --- | --- | | **Submission ID** | An optional submission ID to use as the basis for the execution. Leave empty to begin with a new submission. | | **Save** | When checked, this setting persists the submitted data to the submission after execution. | | **Validate** | When checked, this setting runs validation against the module schema during execution. | | **Load Submission Data First** | When checked, this setting populates the request with data from the existing submission before applying test data. | ## Interpreting Results After the execution completes, results display in tabs at the bottom of the panel. The result header displays the HTTP status code, response time, and a **Clear** button to reset the panel. The **Response** tab displays for every endpoint. The following four tabs display only for the Execute Module and Execute via Proxy endpoints: | Tab | Description | | --- | --- | | **Response** | The full JSON response body. Use the **Copy** button to copy it to the clipboard. | | **Event Log** | Every event that occurred during the execution, in order. Each event displays its type (START, SET, and so on), the affected field, its timestamp, and the time since the previous event. | | **Data Changes** | Every field that changed value during the execution. Expand any entry to see the before and after values. | | **Timeline** | The full execution as a waterfall chart, color-coded by event type: Execute, Async, Data, Trigger, and Watcher. | | **Execution Chain** | The relationships between components. Shows which component triggered each subsequent step. | Use **Group by step** on the **Event Log**, **Data Changes**, and **Timeline** tabs to organize results by execution step. Select **Collapse all** to collapse all expanded entries. ## Finding Slow Steps Use the results to find where an execution spends its time. 1. Check the response time in the result header for the total duration of the request. 2. On the **Timeline** tab, look for the longest bars. Each step header displays its number of events and its duration, so the slowest step stands out. Hover over a bar to see the component, the event type, and the bar's offset and duration. For a component that runs asynchronously, the Execute bar covers the whole run, from beginning to end. 3. On the **Event Log** tab, check the time after each event, like **+120ms**. It is the time since the previous event. Gray means under 100 ms, yellow means 100 ms or more, and red means 500 ms or more. An event with a yellow or red time came after a long gap. 4. Select **Group by step** to compare steps. A step is one cycle of the execution engine. Components queued by triggers run in later steps, so a long chain of triggers produces many steps. --- **Changelog** | Date | Change | | --- | --- | | 2026-10-19 | Removed the Testing an External API section, updated control names, clarified which result tabs display for which endpoints, and added Finding Slow Steps. | | 2026-09-12 | Rewrote as a focused testing guide; removed control duplication with API Debugger reference. | | 2026-09-12 | Renamed SSE Debugger to API Debugger throughout. | | 2026-05-29 | Rewrote for the new UnqorkAI platform Debugger, with Internal and External modes and updated result tabs. | Also known as Unqork Users, or Designer Users; is anyone who is inside the Unqork platform. Debugging is the process of finding and resolving errors or bugs in an application. To debug an application in Unqork, use UNQENG tools in Express View. A definition An API endpoint is the location where an API receives requests for a specific resource on its server. It's the point of contact between an API client and an API server, and is usually a uniform resource locator (URL) that provides the location of the resource. HTTP (Hypertext Transfer Protocol) is an application-layer protocol used to transmit hypermedia documents like HTML. A URL (uniform resource locator) is a unique identifier used to locate a resource on the internet. Also known as a web address. Schema is a declarative language that defines the structure, content, and constraints of the data. HTTP (Hypertext Transfer Protocol) is an application-layer protocol used to transmit hypermedia documents like HTML. An API endpoint is the location where an API receives requests for a specific resource on its server. It's the point of contact between an API client and an API server, and is usually a uniform resource locator (URL) that provides the location of the resource. JSON (JavaScript Object Notation) is an open standard file and data interchange format. Unqork uses JSON for submission (record) data. A place on your operating system that stores recently copied content. The clipboard only stores one item at a time. Server-Side Execute (SSE) means data is executed outside of the end-users browser. This increases security by preventing data from being manpulated by bad actors.