Platform

Visual API flows for chaining requests

Some API tasks are sequences: create a user, log in, use the token to create an order, poll until it is paid. Flows let you build those sequences visually by connecting saved requests and logic blocks on a canvas, then run them and watch each step light up.

Get started freeSign inOpen the app

Building blocks

A flow is a graph of nodes connected by edges. The node types are:

  • Start: where the run begins; it receives the flow's input.
  • Request: sends a saved request from a collection. It has a success output (a response with status below 400) and an error output, and passes on the status, headers, parsed body, timing and test results.
  • Condition: evaluates a JavaScript expression against its input and continues on the true or false branch.
  • Loop: takes an array (or a path into the input) and runs its item branch once per element, then continues on done.
  • Delay: waits a number of milliseconds, useful when polling.
  • Evaluate: computes a new value with a JavaScript expression.
  • Select: picks a value out of the input by path, such as body.data.items.
  • Output: records a value so it shows up in the run results.

Passing data between steps

Each node's output becomes the next node's input. Inside a request node, {{input}} and {{input.path}} are replaced with values from the incoming data, while your usual {{variables}} still come from the environment. For example, after a login request, a Select node on body.token feeds the next request:

HTTP
GET {{baseUrl}}/v1/orders?status=open
Authorization: Bearer {{input}}

A Condition node such as input.status === 200 && input.body.items.length > 0 then decides whether to continue to the loop that processes each order.

Run, inspect, repeat

Run a flow from the canvas with an optional input and environment. Each node shows whether it ran, succeeded, failed or was skipped, how many times it ran and how long it took, and the run log records every step and output. The newest 100 runs are kept, so you can compare a failing run with the last good one.

Trigger flows from a webhook

Enable the webhook trigger to get a unique URL. A POST to it starts the flow with the request body (JSON, or raw text) as the Start node's input and returns the run's status and outputs. Use it to kick off a flow from CI, a chat command or another service. Webhook triggers are rate limited (60 calls per minute per flow) and accept bodies up to 1 MiB; you can regenerate or disable the URL at any time.

Shell
curl -X POST https://swastik.codes/api/flows/hooks/<token> \
  -H "Content-Type: application/json" \
  -d '{"customerId": "c_123"}'

Safe limits

Server-side runs are limited to 1,000 node executions and 300 seconds by default, and every request goes through the same network rules as the rest of the web app: public addresses only.

How it works

  1. Save the requests you need in a collection in the app.
  2. Create a flow, drag in nodes and connect them.
  3. Run it and inspect each node's output. Running requests needs a free account.

Frequently asked questions

Do I need to write code to use flows?

No for most flows: connect requests, conditions and loops on the canvas. Conditions and Evaluate nodes take short JavaScript expressions when you need logic.

How are flows different from the collection runner?

The collection runner runs requests in order, optionally for many data rows, and reports test results. Flows branch, loop and pass data between steps explicitly, which suits workflows more than test suites.

Can I run a flow on a schedule?

Flows run by hand or from their webhook. To run something on a schedule, trigger the flow's webhook from your scheduler, or put the requests in a collection and use a monitor.

Are flows shared with my team?

Yes. Flows are stored in the workspace with collections and environments, and follow the workspace's roles.

Try it on your own API

Swastik Codes runs in the browser and is free to use. Create an account to send requests, sync your workspaces and invite your team.