Skip to main content

Quickstart

This builds a workflow that compares two companies and packs the result, then runs it. Every call uses the same base URL and bearer key.
You need a key with write:workflows to publish and run. See Authentication.

1. See what you can compose with

Each part declares requires and produces. An edge is legal only when the upstream produces satisfies the downstream requires. Pass ?unattendedSafe=1 to see only the parts allowed on a scheduled trigger.

2. Pin the companies

Terminal parts run against canonical subjects, not names. Resolve the companies you want in one call. A step that compares needs at least two subjects, and resolving them one at a time cannot satisfy that.
Anything that could not be pinned comes back in unresolved with a reason and, where the fabric offered candidates, the choices:
Re-resolve with the ticker you meant. Reasons are ambiguous, unlisted (held, but with no listed equity to run against) and lookup_failed (the resolver could not be reached, which asserts nothing about the company).

3. Create the workflow

Returns 201 with { "workflow": { "id": "..." } }. Keep the id as WF.

4. Validate the graph before you save it

Validation runs the same rules the save route runs, so a graph that passes here will save.
With definition.json:
A valid graph returns its cost estimate:
An invalid one returns 400 with every fault at once, each naming the node it applies to. See Errors.

5. Save it as a version

The trigger, gate and destination may be carried as nodes in the graph, as above, or as top-level trigger and destinations fields. Returns the created version with its id.

6. Publish

A version is inert until published, and only a published version can run.

7. Run

This reserves usage. Always send Idempotency-Key, because a retry without one starts a second run and spends again. See Runs.

8. Poll

The response carries the run’s state and, for a composition, the child runs and their node outputs. Poll until the state is terminal.

Templates

If you would rather start from something working, the curated gallery returns ready-made definitions you can copy and adapt: