For AI agents: a documentation index is available at https://docs.plungeai.com/llms.txt. Append .md to any page URL, or send Accept: text/markdown, to get markdown. Setup instructions for agents are at https://docs.plungeai.com/agents.md. One ozk_ key opens every plane, models included.

Documentation Index: fetch the complete documentation index at /llms.txt. Use this file to discover all available pages before exploring further.
POST/v1/workflows

The same row Studio and the MCP tools show. yaml is validated against the CNL schema and the kind lint before anything is stored (a bot on a frozen runtime such as harness-agent with posture is refused). folder names an existing folder or creates it. A kind: campaign create with campaign_config also sets up the ledger and the schedule. Save as YAML: send the pure workflow YAML as a text/yaml body and the metadata as the kind (required), name (required unless workflow.name is in the YAML), description and folder query parameters; a YAML body without kind is 400 invalid_request, and campaign_config stays JSON-only.

Authorizations

Authorizationstringheaderrequired
Bearer token: Authorization: Bearer ozk_…. ozk_ platform API key (Authorization: Bearer ozk_…)

Query parameters

kindenum<string>
text/yaml body only. Required on create; on PATCH it must equal the stored kind or be left out (400 invalid_request otherwise; change a kind with a JSON PATCH)

Available options: workflow, agent, bot, campaign

namestring
text/yaml body only. Create: required unless workflow.name is in the YAML (the query wins when both are set). PATCH: renames

Maximum string length: 200

descriptionstring
text/yaml body only. Optional
folderstring
text/yaml body only. Optional; the same as the JSON folder field

Maximum string length: 120

Body

  • application/json
  • text/yaml
namestringrequired

Maximum string length: 200

kindenum<string>required

Available options: workflow, agent, bot, campaign

yamlstringrequired
The workflow as CNL YAML
descriptionstring
folderstring

Maximum string length: 120

campaign_configobject
kind campaign only (422 on any other kind). list (exactly one of table | agent | csv | inline), cycle (once | hourly | daily | weekly | monthly | continuous) and max_attempts (integer >= 1) are required; cycle_start (reset | refill), schedule (5-field cron), batch_size, max_items, pace, then (a campaign or workflow id), deliver ([{ channel, to? }], default in-app) and local are optional — the Studio campaign-config block. Invalid → 422 invalid_params, nothing is created.
formatenum<string>
Response format override (precedence: this field → Accept header → mirror of the request Content-Type). Default json. yaml = the envelope with Markdown as block scalars; markdown = the same result the MCP plane renders; text = the bare result content. An unknown value → 400 invalid_format.

Available options: json, yaml, markdown, text

Response

Saved; the Location header names the new workflow. Response format negotiates via the format field, an Accept header (application/json, text/yaml, text/markdown, text/plain), or the request Content-Type mirror; default JSON.

  • application/json
  • text/yaml
  • text/markdown
  • text/plain
workflowobject
warningsstring[]
Non-fatal notes (lint warnings, campaign setup notes); present only when there are any

Planned: TI-33

Search is not available yet. Until it ships, use the page index or browse the sidebar.

Planned: TI-34

The docs assistant is not available yet. You can hand these docs to your own assistant instead.