Spirefy does not run a hosted REST API. Everything it does happens on your machine, so the ways to drive it programmatically are local: the command line, the plugin contracts, and embedding the engine.
The headless CLI
The spirefy CLI runs the same plugins the app does, without a window. This is how Spirefy fits into a script or a pipeline.
spirefy import path/to/spec.yaml # run an import
spirefy curate --engines all # run curation rules
import and curate run plugin by plugin, and a whole import-to-curate-to-export workflow runs from the CLI for CI. The technology page covers how it fits together.
The plugin contracts
The real extension surface is WIT. Every capability is a plugin that implements or consumes a WIT-typed interface, and the engine wires them together at load. If you want Spirefy to do something new, the path is a plugin, not an API call. See plugin development.
Embedding the engine
Zora, the plugin engine, is a Zig library you can embed in your own program to load and run Spirefy plugins. Embedding from a non-Zig host through a stable C ABI is on the roadmap; the surface is small, and we want to settle it before exposing it. The technology page has an example.