Overview
Screens the AI Assistant generates start out with placeholder content. This guide is the wiring. You describe a REST endpoint once in CONNECT → API Calls, and then reference it from anywhere: a component’s value, a button’s tap handler, or another action’s success branch. By the end you will have a saved API call, and you will know how to bind it to a component and how to fire it from an action. Prerequisites- A NativeFlow Studio project, open and loaded. API calls are stored per project.
- Nothing else for the endpoint form, the import dialog or the API Call action. All of it works on a project with no backend connected.
Defining a REST endpoint (a Common Headers preset, API Key auth), saving it, and attaching it as an API Call action on a button's On Tap.
Define an endpoint
Open the API Calls pane

The API Calls pane empty state, with the import, new folder and + Add controls in the header
Untitled row behind. Click Cancel to remove it again.Fill in name, method and URL
GET, POST, PUT, DELETE, PATCH.The tab strip below depends on the method you pick.
The Create API Call form: Name, the green GET method dropdown, the URL field, the Send button and the Headers / Query Params / Auth tabs
Add headers and query parameters
{ } button and a delete button. Query Params uses the identical row shape with its own + Add Parameter button.A Common Headers dropdown beside the button offers four one click presets, and only four:{"key": "value"}, plus an Insert variable button.Pick an auth scheme

The Auth Type dropdown open, listing None, Bearer Token, API Key and Basic Auth
Save the call
Cancel / Add Call to Delete / Cancel / Save.Save raises a toast reading API call saved. The call appears in the left list as a method badge, its name and its URL, plus a small badge for its auth scheme (KEY for API Key, BA for Basic Auth).+ Add persists an empty record straight away, but field edits are only written on Save. A call you fill in without saving comes back as Untitled with empty fields after a reload.Delete removes the call immediately, with no confirmation step.Import a collection instead
If you already have a spec, skip the form. The Import API collection button in the pane header opens a dialog that takes two sources.
The import preview: a count line, a folder tree with checkboxes per endpoint, and the Import 2 APIs button
Bind the call to a component
Select a component on the canvas. The Properties panel shows three tabs, Style, Data and Actions. Data is the one that consumes APIs, and what it shows depends on whether any call exists. With no API defined, it is a hint: Add API calls in the API panel to bind data to this component, above a Text row placeholderedText or @column.
With one API defined, that hint is replaced by a Smart Bind button. The only difference is the existence of one saved call.
Smart Bind opens a three step wizard: 1 API Source, 2 Map fields, 3 Format and confirm. Step 1 shows a TARGET panel on the left with a breadcrumb to the component, a live preview tile, the component type, what it is bound to and a Locate on canvas button. On the right it asks Where should your Button get its data?, reports what it found (We scanned 1 API in your project), offers a Bind with AI button, and lists one radio row per API with a match rating.

Smart Bind step 1: the TARGET panel and the API list with its match rating
Trigger the call from an action
Select a component, open the Properties panel’s Actions tab, expand an event such as On Tap, and pick API Call from the DATA group of the action catalog. It is described there as Trigger a configured API call.- A banner above the event list reads Loading Auto-Configured. Button will show spinner and disable during API call. Loading state is managed automatically. You do not wire a loading state by hand for a Button that calls an API.
- On Success and On Error are real, expandable branch rows, each opening the same full action catalog. That is how you chain: an API Call whose success branch is another API Call, and whose error branch is a Show Toast.
1. API Call. It is a summary of the chain, not generated source.
The two dynamic value syntaxes
Studio uses two different notations in two different places.{{ ... }} in an API call’s own request. The Body tab states the rule in full: JSON payload. Use {{ }} to pull live values from the screen, also works in the URL, params and header values. Reach inside an object or list variable with .key and [0], e.g. {{ signup.user.address.city }}.
So the scope is the screen’s variables, the path walks objects with .key and lists with [0], and it works in the URL, query param values, header values, the JSON body, and the auth credential fields.
An Insert variable button beside the body field opens a picker of what is actually in scope. On a Sign Up page that was a single entry, sign_up.isLoading, which confirms the scope prefix comes from the page name.
@column in a Data Binding. The Data tab’s field placeholder is Text or @column, a different notation that reads as a reference into a row of a fetched result rather than into a page variable.

