The workflow gallery
List one of your workflows for other organizations to run, and run a listed workflow under your own key.
The gallery lists workflows written by other organizations. A listed workflow is named
@<handle>/<slug>, runs under the caller's own key, and is paid for by the caller. Every listing is
reviewed by us before it runs.
The gallery is not open yet. Until it opens, the console shows no gallery and every @handle
name answers as not found.
Claim a handle
A handle is your organization's public name in the gallery: 3 to 32 lowercase letters, digits and single hyphens, starting with a letter. Claim it under Workflows, in the Gallery panel, together with a display name of 2 to 48 characters.
Your organization can hold one handle, and it cannot be renamed once claimed. Some names are
reserved, such as op, official and the names of the companies whose models we serve, and we can
revoke a handle that impersonates another organization.
Submit a listing
A listing pins one saved version of one of your workflows. In the Gallery panel, choose the workflow and the version, then:
- Visibility.
publicappears in the gallery index.unlistedhas a page and runs, but is left out of the index; anyone who knows the name can still find it. Both are reviewed. - Show prompt. Off by default. With it off, callers see the workflow's steps and models but not its prompts.
- Example run. The id of a finished run of this version from your organization. Its reservation is shown on the listing page as the price of an example input.
- Example output. Up to 8 KiB of text that you write, shown on the listing as an example. It is labelled as written by you, not as a recorded output, and it stays public until the listing is removed.
A version can be listed only if every model it names is a public model and every tool it names is
one of our tasks. A @preset/ model and a preset. tool are refused, because a listing runs under
the caller's organization, where your presets do not exist.
An organization whose retention class is zdr cannot list a workflow, because it keeps no example
run to show.
Review
Each submission waits as pending review. A pending listing answers as not found, exactly as a caller would see it. We approve or reject it with a reason, which you see beside the listing. After approval it runs on every node within about 70 seconds (a target, not a measurement).
You can withdraw a listing at any time. We can remove a listed one, for example after a report. Withdrawn and removed listings stop running within the same window. A saved version that any listing names, in any state, cannot be deleted; retire it instead.
Prompts
A hidden prompt is not a secret. A model can repeat its prompt in its output, so a determined caller can recover it. Do not put anything in a prompt that you could not publish.
When the prompt is hidden, content logging is off for every run of the listing, whatever the caller's workspace setting, and the run's step requests are withheld from the caller.
Run a listing
Send op.max_cost_usd with every run of an @handle name. A run without it is refused with
400 invalid_request, and a run whose estimate is over it is refused before anything is reserved.
The price on the listing is the example input's reservation: a larger input reserves more.
curl https://api.opinference.com/v1/workflows/@acme/caption/versions/3/runs \
-H "Authorization: Bearer $OP_API_KEY" \
-H "Content-Type: application/json" \
-d '{"input": {"image_url": "https://example.com/cat.png"}, "op": {"max_cost_usd": "0.10"}}'The bare name, /v1/workflows/@acme/caption/runs, runs the newest listed version. Pin a version
with /versions/<n>/ when you need the same definition every time. The run is yours: your key,
policy, retention and credits apply, and its usage is billed to you. The author is not paid and
does not see your inputs or outputs.
A listing was written by another organization. Its prompts may tell a model to ignore your instructions or to repeat what you send, so treat its output as you would any untrusted text.
Report a listing
Every listing page has a Report button. A reviewer reads every report.