Skip to content

Presets ​

A preset is a named recipeConfig stored server-side — settings you save once and reuse, instead of sending the whole graph on every call.

Two kinds:

  • System presets — shipped with the product, visible to everyone, read-only.
  • Your presets — created, edited and deleted by you, visible only to your account.

Presets feed the settings-precedence chain on POST /jobs: name one per call with presetId, or bind one to an API key as its default so calls carry no settings at all. See Configuring your own settings.

Reads need the presets:read scope, writes need presets:write.


List presets ​

GET /presets

The system presets plus your own.

Response — 200 OK ​

json
{
  "presets": [
    {
      "id": "sys:full-refresh",
      "name": "Full spoof",
      "recipeConfig": { "global_settings": { … }, "nodes": [ … ], "edges": [ … ] },
      "isSystem": true,
      "createdAt": "2026-07-03T14:00:00Z"
    }
  ]
}

Get a preset ​

GET /presets/{id}

One preset visible to you — a system preset or your own.

Errors ​

StatuserrorWhen
404not_foundNo such preset, or it isn't yours (the two are indistinguishable by design).

Create a preset ​

POST /presets

Body ​

FieldTypeRequiredNotes
namestringyesTrimmed, truncated to 120 characters.
recipeConfigobjectyesA full recipe graph. Validated on write — an invalid one never becomes a preset.
bash
curl -s -X POST "$API/presets" \
  -H "Authorization: Bearer $FLUIDGHOST_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Instagram carousel", "recipeConfig": { … } }'

Response — 201 Created ​

The created preset.

Errors ​

StatuserrorWhen
400bad_requestMissing name or recipeConfig; the recipe failed validation (findings in details.errors).

Update a preset ​

PATCH /presets/{id}

Send name, recipeConfig, or both. System presets are immutable.

Errors ​

StatuserrorWhen
400bad_requestNeither field provided; the recipe failed validation.
404not_foundNo editable preset with that id — including a system preset, which cannot be edited.

Delete a preset ​

DELETE /presets/{id}

Response — 200 OK ​

json
{ "deleted": true, "id": "preset_…" }

Errors ​

StatuserrorWhen
404not_foundNo editable preset with that id.

Deleting a preset that a key uses as its default does not unbind the key. The next job on that key resolves no settings and returns 400 — rebind the key or send settings per call.

FluidGhost API — part of the Fluidvip ecosystem.