Try the Demo
No setup at all: try it live
enlace-fastapi.onrender.com/enlace is a hosted, Postgres-backed instance of Enlace running against the FastAPI reference example — nothing to clone or run. It's the deeper demo: three real credential types (OAuth2 password, OAuth2 client-credentials, API key) across three actors, chained through a cart → checkout → payment → fulfillment → shipment flow, with demo credentials seeded for you. See Example Apps for the exact credential values and the full 8-step chain to build.
Run it yourself: the bundled sample API
The fastest way to see Enlace work on your own machine is against its own bundled sample API — three cross-referencing resources (Customers, Products, Orders), no setup beyond cloning one repo.
git clone https://github.com/get-enlace/enlace.git
cd enlace
npm install
npm start
Open http://localhost:4000/enlace.
Build a chain with two parallel branches
The sample API is shaped to show off concurrent execution: creating a customer (A), then updating that customer and creating a product at the same time (B and C, independent of each other), then placing an order that needs data from A and C, but not B.
The palette groups operations by their OpenAPI tag (Customers, Products,
Orders), so you'll find each one under its resource rather than one long
flat list — use Expand all if you'd rather browse everything at once.
The search box above it matches operation IDs and preset
names together, so typing finds either; prefix with / to search paths
instead, or . to search presets only.
- Drag onto the canvas:
POST /customers(A),PATCH /customers/{id}(B),POST /products(C),POST /orders(D). - Type values straight into A's
name/emailand C'sname/pricefields. - Connect box-to-box: A→B, A→C, A→D, C→D.
- On B, type
{{in theidpath field to map it from A'sid; type a literal value like"verified"intostatus. - On D, map
customerIdfrom A'sidandproductIdfrom C'sidthe same way; type a literal value intoqty. - Click Run.

All four calls come back green, in order A, B, C, D — but watch the Results pane's timestamps: B and C actually overlap, they don't run one after the other. That's the whole point — see Run a chain and read the results for why.

Try it with real authentication
Every write operation in the sample API requires a different credential
type, genuinely enforced — get a request wrong and it comes back 401.
npm start also boots a local mock OAuth2 issuer, so the two OAuth2
credential types are a real signed-JWT round trip, not a stub.
Open the Credentials drawer — under "Declared in spec" you'll see all five schemes read straight from the API's own document, ready to configure with just a name and a made-up secret.

Attach one to each matching node and run again. See Authenticate your requests for what to fill in for each type.
Next: point Enlace at your own API — see Connect operations and map data.