Skip to content
Docs
flero.ai

HTTP & API

Nodes for talking to HTTP services. The HTTP Request node is the workhorse, most enterprise connectors are sugar on top of it.


HTTP Request

What: Make a REST API call with full HTTP control.

Inputs: Any.

Outputs:

  • On success, statusCode, headers, body (parsed JSON or raw string), responseTime, size.
  • On HTTP 4xx / 5xx, throws an exception (or routes to error port if Fail on error is off).

Configuration:

Field Notes
URL Required. Must include protocol. Supports expressions.
Method GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS
Query parameters Key / value pairs appended as ?key=value
Headers Custom request headers
Body type json, form, raw, none
Body Payload. JSON-encoded automatically for json.
Credential Pick a stored credential to authenticate. Headers are injected based on the credential's auth type.
Timeout Milliseconds; default 30 000
Retries Number of retry attempts for 5xx responses
Retry delay Initial delay; combine with Backoff strategy for exponential growth
Follow redirects Default true
Validate SSL Default true. Turn off only for known-bad-cert dev environments.
Fail on error Default true. When false, 4xx/5xx is treated as success and routed to output so downstream nodes can react.

Example: GET a public endpoint.

URL:    https://api.github.com/users/{{ $trigger.body.username }}
Method: GET
Headers:
  Accept: application/json

Authentication:

Never inline secrets. Use the Credential field; Flero injects the right headers based on the credential type:

Credential type Header injected
Bearer token Authorization: Bearer <token>
Basic auth Authorization: Basic <base64(user:pass)>
API key (header) The custom header you configured on the credential
API key (query param) Appended to the URL
OAuth 2 Authorization: Bearer <access_token> (Flero refreshes as needed)

See Credentials & connectors for setup.


Webhook API

What: Expose your workflow as a callable HTTP endpoint, without using the Webhook Trigger. Used inside a workflow to declare a sub-endpoint that other services can hit.

Inputs: Any.

Outputs: The request body / headers / query.

Configuration: Path, methods accepted, optional auth requirement.

When to use: Building multi-endpoint micro-services from a single workflow.

💡 The more common pattern is the Webhook Trigger, it makes the whole workflow respond to HTTP. The Webhook API node is for advanced multi-route designs.


Web Scraper

What: Fetch a web page and extract data from its HTML.

Inputs: None required.

Outputs: Extracted fields per your selectors.

Configuration:

Field Notes
URL Page to scrape
Selectors A list of { name, selector, attribute } entries, CSS selectors
Wait for Optional: wait for a JS-rendered element before extracting
Render JavaScript Whether to use a headless browser (slower) or just fetch HTML

Example: Get the title and first paragraph of a blog post.

URL: https://example.com/blog/post-1
Selectors:
  - name: title;      selector: h1;             attribute: text
  - name: leadPara;   selector: article p:first-of-type; attribute: text

Use case: Scraping public marketing pages, monitoring competitors, ETL from a data table without a public API. Respect robots.txt and the target site's terms.


API Pagination & Rate Limit

What: A meta-node that wraps repeated HTTP calls to handle pagination cursors and rate-limit headers automatically.

Inputs: A configured HTTP call.

Outputs: The aggregated results from all pages.

Configuration:

Field Notes
Pagination style offset, page, cursor, link header
Page-size param Where to send the page size
Total parameter How to read the total count (for offset-style)
Cursor param For cursor-style
Stop condition Expression that, when truthy, halts pagination
Rate-limit awareness Read X-RateLimit-* headers and auto-throttle
Max pages Hard ceiling

Use case: Fetching every page of a paginated API in one node, with backoff that respects the service's rate limit. Equivalent to writing a manual Loop + HTTP + If chain, but cleaner.


Tips & gotchas

  • Don't paste API keys into headers. Use a credential. Aside from being insecure, your token will end up in execution history.
  • JSON request bodies need Content-Type: application/json, Flero adds this for you when Body type is json. Switch to raw only when you know what you're doing.
  • Timeouts cascade up. If your HTTP timeout is longer than the workflow's execution timeout, you'll get a workflow timeout, not an HTTP timeout. Match them.
  • Retries amplify cost for paid APIs. Set them deliberately.
  • Fail on error: false is great for "fetch and tolerate 404" patterns, combine with an If node to branch on statusCode.
  • Web Scraper's JavaScript rendering uses a headless browser pool that's much slower than plain HTML fetch. Use it only when needed.


Found something out of date? This page lives in the Flero docs content set.