HTTP & API
Nodes for talking to web services, web pages and remote servers. The HTTP Request node is the workhorse: use it for any API that has no dedicated connector.
All nodes on this page have one input and one output port unless the entry says otherwise.
HTTP Request
What: Calls any HTTP API. In the palette it sits under Communication.


Configuration:
| Field | Notes |
|---|---|
url |
Required. Must include the protocol. Supports expressions. |
method |
GET (default), POST, PUT, PATCH, DELETE, HEAD, OPTIONS |
params |
Query parameters, appended as ?key=value |
headers |
Custom request headers |
bodyType |
json (default), form, raw, none or multipart |
body |
The payload. For multipart, an object describing the parts. |
credentialId |
A saved credential. The only way to authenticate; see below. |
timeout |
Milliseconds. Default 30 000. |
retries |
Retries on 5xx responses and network errors. Default 0. |
rateLimitRetries |
Retries on HTTP 429. Default 3. Honours the server's Retry-After header, waiting at most 60 s. Set 0 to opt out. |
failOnError |
Default on: a 4xx/5xx response or a network error fails the node. Off: a 4xx/5xx response comes back normally in response, a network error comes back as an error field, and the run continues. |
Output: the incoming fields plus response:
| Field | Notes |
|---|---|
response.statusCode |
HTTP status code |
response.headers |
Response headers |
response.body |
Parsed JSON, or the raw text when the body isn't JSON |
response.responseTime, response.size |
Timing and body size in bytes |
Read the body downstream as {{ $node["Get user"].output.response.body.email }}.
Example: GET a public endpoint.
url: https://api.github.com/users/{{ $trigger.payload.username }}
method: GET
headers:
Accept: application/jsonAuthentication: Never put secrets in headers. Pick a credential in the Credential field; the node adds the right header:
| Credential type | Header sent |
|---|---|
| API key / bearer token | Authorization: Bearer <key>, unless the credential defines its own header names and prefixes |
| Basic auth | Authorization: Basic <base64(user:pass)> |
| OAuth 2 | Authorization: Bearer <access_token>, refreshed by Flero as needed |
A credential can send several headers, for APIs that need a key plus a companion header or two secrets. An HTTP Request node with authentication typed directly on the node fails with a message pointing you to the credential picker. See Credentials & connectors.
Web Scraper
What: Fetches pages over HTTP and extracts text, HTML, CSS-selector matches, structured data, Markdown or SEO data. In the palette it sits under AI.


Ports: in input; out output, error.
Configuration:
| Field | Notes |
|---|---|
url or urls |
One page, or a list |
mode |
text (default), html, selector, structured, markdown or seo |
selectors |
For selector mode: the CSS selectors to extract |
timeout |
Milliseconds. Default 30 000. |
userAgent, headers |
Request identity. Default user agent Flero/1.0. |
followRedirects |
Default on |
concurrency, requestDelayMs |
For lists of URLs. Defaults 5 and 0. |
maxRetries, retryDelayMs |
Defaults 0 and 500 |
maxPages |
Cap on pages fetched. 0 = no cap. |
The Web Scraper fetches pages over plain HTTP. For pages that need a real browser, use the Web Controller. Respect robots.txt and each site's terms.
Web Search
What: Searches the web and returns titles, URLs and snippets. In the palette it sits under AI.


Configuration: query (required), limit (default 10), categories (general default, news, science, it, images, videos, map, music, files, social media), timeRange (any, day, week, month, year), language, engines, safeSearch (default on).
Web Search is available only where your Flero administrator has enabled it.
Web Controller
What: Drives a real browser: navigate, click, type, scroll, extract, take screenshots and PDFs, and run multi-step sequences. In the palette it sits under AI.


Configuration:
| Field | Notes |
|---|---|
action |
goto (default), click, focus, type, scroll, waitFor, evaluate, back, forward, reload, extract, screenshot, pdf, state, select, hover, pressKey, awaitTakeover |
url, selector, text, value, key |
What the action works on |
steps |
A list of actions to run in order, in one node |
format |
For extract: text (default), html, selectors, a11y or links |
sessionId, closeSession |
Keep a browser session open across nodes |
waitUntil, timeoutMs |
load (default), networkIdle or none; default 30 000 ms |
onChallenge |
fail (default) or takeover: pause and let a person finish the step in the browser |
takeoverTimeoutMs |
How long to wait for a person. Default 5 minutes. |
The Web Controller is available only where your Flero administrator has enabled it.
MCP Client
What: Calls a tool on an external Model Context Protocol (MCP) server. In the palette it has its own Integration section.
Configuration: serverUrl (required), operation (call_tool default, or list_tools), toolName, arguments, credentialId, timeout (seconds, default 30).
Use when: Your workflow needs a tool that another system exposes over MCP. The reverse direction, letting an AI assistant call your workflow, is the MCP Trigger.
SFTP
What: Lists, downloads, uploads, moves and deletes files on an SFTP server. In the palette it sits under Integrations.


Configuration:
| Field | Notes |
|---|---|
operation |
list (default), download, upload, move, delete or exists |
host, port |
Required host; port default 22 |
username |
Required |
password or privateKey (+ passphrase) |
How to sign in |
hostKeyFingerprint |
Pin the server's host key |
path, destinationPath |
Required path; destination for move |
fileData |
The file to upload |
filePattern, includeDirectories |
Filters for list |
timeoutSeconds |
Default 60 |
Downloaded files are stored and passed on as a file reference.
Integration Automation
What: General integration operations: etl, orchestrate, event, gateway, sync, transform, route and schedule. In the palette it sits under Communication.
Configuration: operation (required).
For a specific service, the dedicated connector in the Connector catalog is usually the better choice.
API Pagination & Rate Limit
The API Pagination & Rate Limit node is no longer offered in the palette or by the AI builder. Workflows that already use it keep running. For new workflows:
- Rate limits: HTTP Request retries HTTP 429 responses on its own, honouring
Retry-After(rateLimitRetries). - Pagination: use a While loop around an HTTP Request that stops when there is no next page, or a connector operation's fetch all pages option where it has one.
Tips & gotchas
- Don't paste API keys into headers. Use a credential. Inline keys end up in execution history and workflow exports.
- JSON bodies: with
bodyType: json, Flero setsContent-Type: application/jsonfor you. A value that is exactly one expression keeps its type, so a list stays a JSON array. Values inserted inside strings are escaped, so a quote in the data can't break the body. - Retries cost money on paid APIs. Set them deliberately.
- Tolerate a 404: turn off
failOnError, then branch onresponse.statusCodewith an If node.
Related
Found something out of date? This page lives in the Flero docs content set.