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.write:workflows to publish and run. See Authentication.
1. See what you can compose with
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.unresolved with a reason and, where the fabric offered candidates, the choices:
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
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.definition.json:
400 with every fault at once, each naming the node it applies to. See Errors.
5. Save it as a version
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
Idempotency-Key, because a retry without one starts a second run and spends again. See Runs.