{"openapi":"3.0.3","info":{"title":"Steplane API","version":"1","description":"Read and change an organization's business processes. Authenticate with a personal API key (Account → API keys) in the X-Api-Key header; the API acts as the key's owner."},"servers":[{"url":"https://steplane.app/api/v1"}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"X-Api-Key"}}},"security":[{"apiKey":[]}],"paths":{"/organizations":{"get":{"summary":"Your organizations","description":"The organizations the key's owner belongs to, with their role and the AI change policy.","responses":{"200":{"description":"OK"}}}},"/organizations/{org}/processes":{"get":{"summary":"List or search processes","description":"Processes whose name, purpose, description or steps contain `search`; without it, all processes.","parameters":[{"name":"org","in":"path","required":true,"schema":{"type":"string"},"description":"The organization's slug."},{"name":"search","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"description":"Invalid request"},"401":{"description":"Invalid or missing API key"},"403":{"description":"Not allowed"},"404":{"description":"Not found"},"409":{"description":"The process changed since that version"}}},"post":{"summary":"Create a process (a draft)","x-requires":"An API key that can read and change","parameters":[{"name":"org","in":"path","required":true,"schema":{"type":"string"},"description":"The organization's slug."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"number":{"type":"string","maxLength":20},"purpose":{"type":"string","maxLength":2000},"description":{"type":"string","maxLength":2000},"group":{"type":"string","minLength":1,"description":"A landscape group's name, as GET /landscape lists them."},"owner":{"type":"string","description":"Email or name of the member responsible for the process."},"ownerRole":{"type":"string","minLength":1,"maxLength":200,"description":"A role that owns the process instead of a person, such as Quality manager; its holder is responsible. A new name adds the role."}},"required":["name"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK"},"400":{"description":"Invalid request"},"401":{"description":"Invalid or missing API key"},"403":{"description":"Not allowed"},"404":{"description":"Not found"},"409":{"description":"The process changed since that version"}}}},"/organizations/{org}/processes/{process}":{"get":{"summary":"Get a process","description":"The working copy in full: details, steps, links, ISO clauses, KPIs, risks, its `version`, and a Mermaid diagram.","parameters":[{"name":"org","in":"path","required":true,"schema":{"type":"string"},"description":"The organization's slug."},{"name":"process","in":"path","required":true,"schema":{"type":"string"},"description":"The process's slug, number or exact name."}],"responses":{"200":{"description":"OK"},"400":{"description":"Invalid request"},"401":{"description":"Invalid or missing API key"},"403":{"description":"Not allowed"},"404":{"description":"Not found"},"409":{"description":"The process changed since that version"}}},"patch":{"summary":"Change a process's details","x-requires":"An API key that can read and change","parameters":[{"name":"org","in":"path","required":true,"schema":{"type":"string"},"description":"The organization's slug."},{"name":"process","in":"path","required":true,"schema":{"type":"string"},"description":"The process's slug, number or exact name."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"The process's version this change is based on (from GET)."},"name":{"type":"string","minLength":1,"maxLength":200},"number":{"nullable":true,"type":"string","maxLength":20},"purpose":{"nullable":true,"type":"string","maxLength":2000},"description":{"nullable":true,"type":"string","maxLength":2000},"group":{"nullable":true,"type":"string","minLength":1,"description":"A landscape group's name, as GET /landscape lists them."},"owner":{"description":"A member, replacing an owner role; null: no owner at all.","nullable":true,"type":"string"},"ownerRole":{"type":"string","minLength":1,"maxLength":200,"description":"A role that owns the process instead of a person, such as Quality manager; its holder is responsible. A new name adds the role."},"diagramDirection":{"description":"How everyone sees the diagram.","type":"string","enum":["top_to_bottom","left_to_right"]},"frequency":{"description":"How often the process runs, a rough estimate (decision 0033); null: unknown.","nullable":true,"type":"object","properties":{"count":{"type":"integer","minimum":1,"maximum":100000},"per":{"type":"string","enum":["day","week","month","year"]},"source":{"description":"Leave out when a person gave it: confirmed.","type":"string","enum":["guessed","confirmed"]}},"required":["count","per"],"additionalProperties":false},"reviewIntervalMonths":{"nullable":true,"type":"integer","minimum":1,"maximum":60}},"required":["version"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK"},"400":{"description":"Invalid request"},"401":{"description":"Invalid or missing API key"},"403":{"description":"Not allowed"},"404":{"description":"Not found"},"409":{"description":"The process changed since that version"}}}},"/organizations/{org}/processes/{process}/history":{"get":{"summary":"Published versions of a process","parameters":[{"name":"org","in":"path","required":true,"schema":{"type":"string"},"description":"The organization's slug."},{"name":"process","in":"path","required":true,"schema":{"type":"string"},"description":"The process's slug, number or exact name."}],"responses":{"200":{"description":"OK"},"400":{"description":"Invalid request"},"401":{"description":"Invalid or missing API key"},"403":{"description":"Not allowed"},"404":{"description":"Not found"},"409":{"description":"The process changed since that version"}}}},"/organizations/{org}/processes/{process}/compare":{"get":{"summary":"What changed between two versions","parameters":[{"name":"org","in":"path","required":true,"schema":{"type":"string"},"description":"The organization's slug."},{"name":"process","in":"path","required":true,"schema":{"type":"string"},"description":"The process's slug, number or exact name."},{"name":"from","in":"query","required":true,"schema":{"type":"string","description":"A revision number, or \"working\"."}},{"name":"to","in":"query","required":true,"schema":{"type":"string","description":"A revision number, or \"working\"."}}],"responses":{"200":{"description":"OK"},"400":{"description":"Invalid request"},"401":{"description":"Invalid or missing API key"},"403":{"description":"Not allowed"},"404":{"description":"Not found"},"409":{"description":"The process changed since that version"}}}},"/organizations/{org}/using":{"get":{"summary":"Processes that use a system, role or input/output","parameters":[{"name":"org","in":"path","required":true,"schema":{"type":"string"},"description":"The organization's slug."},{"name":"thing","in":"query","required":true,"schema":{"type":"string","enum":["system","role","input or output"]}},{"name":"name","in":"query","required":true,"schema":{"type":"string","minLength":1}}],"responses":{"200":{"description":"OK"},"400":{"description":"Invalid request"},"401":{"description":"Invalid or missing API key"},"403":{"description":"Not allowed"},"404":{"description":"Not found"},"409":{"description":"The process changed since that version"}}}},"/organizations/{org}/reviews-due":{"get":{"summary":"Published processes whose review is due","parameters":[{"name":"org","in":"path","required":true,"schema":{"type":"string"},"description":"The organization's slug."},{"name":"withinDays","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":366}}],"responses":{"200":{"description":"OK"},"400":{"description":"Invalid request"},"401":{"description":"Invalid or missing API key"},"403":{"description":"Not allowed"},"404":{"description":"Not found"},"409":{"description":"The process changed since that version"}}}},"/organizations/{org}/gaps":{"get":{"summary":"Gaps in the organization's processes","parameters":[{"name":"org","in":"path","required":true,"schema":{"type":"string"},"description":"The organization's slug."}],"responses":{"200":{"description":"OK"},"400":{"description":"Invalid request"},"401":{"description":"Invalid or missing API key"},"403":{"description":"Not allowed"},"404":{"description":"Not found"},"409":{"description":"The process changed since that version"}}}},"/organizations/{org}/automation":{"get":{"summary":"Automation candidates: what to automate first","parameters":[{"name":"org","in":"path","required":true,"schema":{"type":"string"},"description":"The organization's slug."},{"name":"group","in":"query","required":false,"schema":{"type":"string"}},{"name":"process","in":"query","required":false,"schema":{"type":"string"}},{"name":"role","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}}],"responses":{"200":{"description":"OK"},"400":{"description":"Invalid request"},"401":{"description":"Invalid or missing API key"},"403":{"description":"Not allowed"},"404":{"description":"Not found"},"409":{"description":"The process changed since that version"}}}},"/organizations/{org}/projects":{"get":{"summary":"Change projects","parameters":[{"name":"org","in":"path","required":true,"schema":{"type":"string"},"description":"The organization's slug."}],"responses":{"200":{"description":"OK"},"400":{"description":"Invalid request"},"401":{"description":"Invalid or missing API key"},"403":{"description":"Not allowed"},"404":{"description":"Not found"},"409":{"description":"The process changed since that version"}}},"post":{"summary":"Start a change project","x-requires":"An API key that can read and change","parameters":[{"name":"org","in":"path","required":true,"schema":{"type":"string"},"description":"The organization's slug."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"goal":{"type":"string","maxLength":2000},"owner":{"type":"string"},"targetGoLiveOn":{"description":"YYYY-MM-DD","type":"string"}},"required":["name"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK"},"400":{"description":"Invalid request"},"401":{"description":"Invalid or missing API key"},"403":{"description":"Not allowed"},"404":{"description":"Not found"},"409":{"description":"The process changed since that version"}}}},"/organizations/{org}/projects/{project}":{"get":{"summary":"A change project and what it changes","parameters":[{"name":"org","in":"path","required":true,"schema":{"type":"string"},"description":"The organization's slug."},{"name":"project","in":"path","required":true,"schema":{"type":"string"},"description":"The project's slug or name."}],"responses":{"200":{"description":"OK"},"400":{"description":"Invalid request"},"401":{"description":"Invalid or missing API key"},"403":{"description":"Not allowed"},"404":{"description":"Not found"},"409":{"description":"The process changed since that version"}}},"patch":{"summary":"Change a project, or cancel it","x-requires":"An API key that can read and change","parameters":[{"name":"org","in":"path","required":true,"schema":{"type":"string"},"description":"The organization's slug."},{"name":"project","in":"path","required":true,"schema":{"type":"string"},"description":"The project's slug or name."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"goal":{"nullable":true,"type":"string","maxLength":2000},"targetGoLiveOn":{"nullable":true,"type":"string"},"status":{"type":"string","enum":["planning","in_review","cancelled"]}},"additionalProperties":false}}}},"responses":{"200":{"description":"OK"},"400":{"description":"Invalid request"},"401":{"description":"Invalid or missing API key"},"403":{"description":"Not allowed"},"404":{"description":"Not found"},"409":{"description":"The process changed since that version"}}}},"/organizations/{org}/projects/{project}/processes":{"post":{"summary":"Add a process to a project","description":"A live process it changes (a to-be copy) or retires, or a new process (`newProcess`).","x-requires":"An API key that can read and change","parameters":[{"name":"org","in":"path","required":true,"schema":{"type":"string"},"description":"The organization's slug."},{"name":"project","in":"path","required":true,"schema":{"type":"string"},"description":"The project's slug or name."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"process":{"type":"string"},"change":{"type":"string","enum":["changed","retired"]},"newProcess":{"type":"string","minLength":1,"maxLength":200}},"additionalProperties":false}}}},"responses":{"200":{"description":"OK"},"400":{"description":"Invalid request"},"401":{"description":"Invalid or missing API key"},"403":{"description":"Not allowed"},"404":{"description":"Not found"},"409":{"description":"The process changed since that version"}}}},"/organizations/{org}/projects/{project}/as-is-reviewed":{"post":{"summary":"Confirm a to-be is up to date with its live process","description":"After the live process changed since the to-be was copied: the changes were copied in, or don't apply.","x-requires":"An API key that can read and change","parameters":[{"name":"org","in":"path","required":true,"schema":{"type":"string"},"description":"The organization's slug."},{"name":"project","in":"path","required":true,"schema":{"type":"string"},"description":"The project's slug or name."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"process":{"type":"string","description":"The live process, by slug or name."}},"required":["process"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK"},"400":{"description":"Invalid request"},"401":{"description":"Invalid or missing API key"},"403":{"description":"Not allowed"},"404":{"description":"Not found"},"409":{"description":"The process changed since that version"}}}},"/organizations/{org}/projects/{project}/findings":{"get":{"summary":"A project's impact findings","description":"What the project's changes break around them, with owners and statuses, the processes to read for a deeper analysis, and how many open warnings block go-live.","parameters":[{"name":"org","in":"path","required":true,"schema":{"type":"string"},"description":"The organization's slug."},{"name":"project","in":"path","required":true,"schema":{"type":"string"},"description":"The project's slug or name."}],"responses":{"200":{"description":"OK"},"400":{"description":"Invalid request"},"401":{"description":"Invalid or missing API key"},"403":{"description":"Not allowed"},"404":{"description":"Not found"},"409":{"description":"The process changed since that version"}}},"post":{"summary":"Add a finding to a project","x-requires":"An API key that can read and change","parameters":[{"name":"org","in":"path","required":true,"schema":{"type":"string"},"description":"The organization's slug."},{"name":"project","in":"path","required":true,"schema":{"type":"string"},"description":"The project's slug or name."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"process":{"type":"string"},"severity":{"type":"string","enum":["warning","info"]},"message":{"type":"string","minLength":1,"maxLength":2000}},"required":["severity","message"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK"},"400":{"description":"Invalid request"},"401":{"description":"Invalid or missing API key"},"403":{"description":"Not allowed"},"404":{"description":"Not found"},"409":{"description":"The process changed since that version"}}}},"/organizations/{org}/projects/{project}/findings/decision":{"post":{"summary":"Decide about a finding","description":"Accept it as a risk (with a note), reopen it, or resolve an added finding.","x-requires":"An API key that can read and change","parameters":[{"name":"org","in":"path","required":true,"schema":{"type":"string"},"description":"The organization's slug."},{"name":"project","in":"path","required":true,"schema":{"type":"string"},"description":"The project's slug or name."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"key":{"type":"string","minLength":1},"status":{"type":"string","enum":["open","resolved","accepted_risk"]},"note":{"type":"string","maxLength":2000}},"required":["key","status"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK"},"400":{"description":"Invalid request"},"401":{"description":"Invalid or missing API key"},"403":{"description":"Not allowed"},"404":{"description":"Not found"},"409":{"description":"The process changed since that version"}}}},"/organizations/{org}/processes/{process}/approval":{"get":{"summary":"Where a change stands in the approval chain","parameters":[{"name":"org","in":"path","required":true,"schema":{"type":"string"},"description":"The organization's slug."},{"name":"process","in":"path","required":true,"schema":{"type":"string"},"description":"The process's slug, number or exact name."}],"responses":{"200":{"description":"OK"},"400":{"description":"Invalid request"},"401":{"description":"Invalid or missing API key"},"403":{"description":"Not allowed"},"404":{"description":"Not found"},"409":{"description":"The process changed since that version"}}},"post":{"summary":"Ask for approval of a change","description":"The approvers approve in Steplane; an API key can't approve.","x-requires":"An API key that can read and change","parameters":[{"name":"org","in":"path","required":true,"schema":{"type":"string"},"description":"The organization's slug."},{"name":"process","in":"path","required":true,"schema":{"type":"string"},"description":"The process's slug, number or exact name."}],"responses":{"200":{"description":"OK"},"400":{"description":"Invalid request"},"401":{"description":"Invalid or missing API key"},"403":{"description":"Not allowed"},"404":{"description":"Not found"},"409":{"description":"The process changed since that version"}}}},"/organizations/{org}/projects/{project}/go-live":{"post":{"summary":"Take a project live","description":"Its to-be versions replace their live processes, new ones are published and retired ones retired, together. Refused with the reasons when the project isn't ready.","x-requires":"An API key that can read and change","parameters":[{"name":"org","in":"path","required":true,"schema":{"type":"string"},"description":"The organization's slug."},{"name":"project","in":"path","required":true,"schema":{"type":"string"},"description":"The project's slug or name."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"changeNote":{"type":"string","maxLength":500}},"additionalProperties":false}}}},"responses":{"200":{"description":"OK"},"400":{"description":"Invalid request"},"401":{"description":"Invalid or missing API key"},"403":{"description":"Not allowed"},"404":{"description":"Not found"},"409":{"description":"The process changed since that version"}}}},"/organizations/{org}/projects/{project}/revert":{"post":{"summary":"Revert a project that went live","x-requires":"An API key that can read and change","parameters":[{"name":"org","in":"path","required":true,"schema":{"type":"string"},"description":"The organization's slug."},{"name":"project","in":"path","required":true,"schema":{"type":"string"},"description":"The project's slug or name."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"changeNote":{"type":"string","maxLength":500}},"additionalProperties":false}}}},"responses":{"200":{"description":"OK"},"400":{"description":"Invalid request"},"401":{"description":"Invalid or missing API key"},"403":{"description":"Not allowed"},"404":{"description":"Not found"},"409":{"description":"The process changed since that version"}}}},"/organizations/{org}/documents":{"get":{"summary":"The document register","description":"Controlled documents with number, kind, version, owner, link, and the processes and steps that use each.","parameters":[{"name":"org","in":"path","required":true,"schema":{"type":"string"},"description":"The organization's slug."}],"responses":{"200":{"description":"OK"},"400":{"description":"Invalid request"},"401":{"description":"Invalid or missing API key"},"403":{"description":"Not allowed"},"404":{"description":"Not found"},"409":{"description":"The process changed since that version"}}},"post":{"summary":"Add a document to the register","x-requires":"An API key that can read and change","parameters":[{"name":"org","in":"path","required":true,"schema":{"type":"string"},"description":"The organization's slug."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"number":{"nullable":true,"type":"string","maxLength":20},"version":{"nullable":true,"type":"string","maxLength":40},"link":{"description":"https:// address of the file.","nullable":true,"type":"string","maxLength":2000},"owner":{"description":"Email or name of the member who owns the document.","nullable":true,"type":"string"},"kind":{"type":"string","enum":["procedure","work_instruction","form","template","record","policy","other"]}},"required":["name","kind"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK"},"400":{"description":"Invalid request"},"401":{"description":"Invalid or missing API key"},"403":{"description":"Not allowed"},"404":{"description":"Not found"},"409":{"description":"The process changed since that version"}}}},"/organizations/{org}/documents/{document}":{"patch":{"summary":"Change a document","description":"Also turns an input or output into a document (a kind) or takes it out of the register (kind null).","x-requires":"An API key that can read and change","parameters":[{"name":"org","in":"path","required":true,"schema":{"type":"string"},"description":"The organization's slug."},{"name":"document","in":"path","required":true,"schema":{"type":"string"},"description":"The document's name or number."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"number":{"nullable":true,"type":"string","maxLength":20},"version":{"nullable":true,"type":"string","maxLength":40},"link":{"description":"https:// address of the file.","nullable":true,"type":"string","maxLength":2000},"owner":{"description":"Email or name of the member who owns the document.","nullable":true,"type":"string"},"kind":{"nullable":true,"type":"string","enum":["procedure","work_instruction","form","template","record","policy","other"]}},"additionalProperties":false}}}},"responses":{"200":{"description":"OK"},"400":{"description":"Invalid request"},"401":{"description":"Invalid or missing API key"},"403":{"description":"Not allowed"},"404":{"description":"Not found"},"409":{"description":"The process changed since that version"}}}},"/organizations/{org}/roles":{"get":{"summary":"Roles and who holds them","description":"Swimlanes and positions such as Quality manager, who holds each, and how many processes each owns.","parameters":[{"name":"org","in":"path","required":true,"schema":{"type":"string"},"description":"The organization's slug."}],"responses":{"200":{"description":"OK"},"400":{"description":"Invalid request"},"401":{"description":"Invalid or missing API key"},"403":{"description":"Not allowed"},"404":{"description":"Not found"},"409":{"description":"The process changed since that version"}}}},"/organizations/{org}/roles/{role}":{"patch":{"summary":"Set who holds a role","description":"One member at a time; the processes the role owns become theirs. A new role name adds the role.","x-requires":"An API key that can read and change","parameters":[{"name":"org","in":"path","required":true,"schema":{"type":"string"},"description":"The organization's slug."},{"name":"role","in":"path","required":true,"schema":{"type":"string"},"description":"The role's name."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"holder":{"nullable":true,"description":"Email or name of a member; null: nobody holds it.","type":"string"}},"required":["holder"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK"},"400":{"description":"Invalid request"},"401":{"description":"Invalid or missing API key"},"403":{"description":"Not allowed"},"404":{"description":"Not found"},"409":{"description":"The process changed since that version"}}}},"/organizations/{org}/landscape":{"get":{"summary":"The process landscape","description":"The organization's landscape groups in order, with sub-groups, the processes in each, and the processes not placed in a group.","parameters":[{"name":"org","in":"path","required":true,"schema":{"type":"string"},"description":"The organization's slug."}],"responses":{"200":{"description":"OK"},"400":{"description":"Invalid request"},"401":{"description":"Invalid or missing API key"},"403":{"description":"Not allowed"},"404":{"description":"Not found"},"409":{"description":"The process changed since that version"}}}},"/organizations/{org}/landscape/groups":{"post":{"summary":"Add a landscape group","x-requires":"An API key that can read and change","parameters":[{"name":"org","in":"path","required":true,"schema":{"type":"string"},"description":"The organization's slug."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"description":{"nullable":true,"type":"string","maxLength":2000},"layout":{"description":"flow: a value chain drawn left to right; grid: cards in rows.","type":"string","enum":["flow","grid"]},"parent":{"description":"The top-level group it belongs under; null: top level.","nullable":true,"type":"string","minLength":1},"place":{"description":"Its place among its sibling groups, 1 being first.","type":"integer","minimum":1,"maximum":9007199254740991}},"required":["name"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK"},"400":{"description":"Invalid request"},"401":{"description":"Invalid or missing API key"},"403":{"description":"Not allowed"},"404":{"description":"Not found"},"409":{"description":"The process changed since that version"}}}},"/organizations/{org}/landscape/groups/{group}":{"patch":{"summary":"Change a landscape group","description":"Rename, describe, change the layout, nest under another group (one level deep) or move it among its siblings.","x-requires":"An API key that can read and change","parameters":[{"name":"org","in":"path","required":true,"schema":{"type":"string"},"description":"The organization's slug."},{"name":"group","in":"path","required":true,"schema":{"type":"string"},"description":"The group's name or id."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"description":{"nullable":true,"type":"string","maxLength":2000},"layout":{"description":"flow: a value chain drawn left to right; grid: cards in rows.","type":"string","enum":["flow","grid"]},"parent":{"description":"The top-level group it belongs under; null: top level.","nullable":true,"type":"string","minLength":1},"place":{"description":"Its place among its sibling groups, 1 being first.","type":"integer","minimum":1,"maximum":9007199254740991}},"additionalProperties":false}}}},"responses":{"200":{"description":"OK"},"400":{"description":"Invalid request"},"401":{"description":"Invalid or missing API key"},"403":{"description":"Not allowed"},"404":{"description":"Not found"},"409":{"description":"The process changed since that version"}}},"delete":{"summary":"Remove an empty landscape group","x-requires":"An API key that can read and change","parameters":[{"name":"org","in":"path","required":true,"schema":{"type":"string"},"description":"The organization's slug."},{"name":"group","in":"path","required":true,"schema":{"type":"string"},"description":"The group's name or id."}],"responses":{"200":{"description":"OK"},"400":{"description":"Invalid request"},"401":{"description":"Invalid or missing API key"},"403":{"description":"Not allowed"},"404":{"description":"Not found"},"409":{"description":"The process changed since that version"}}}},"/organizations/{org}/processes/{process}/publish":{"post":{"summary":"Publish a process's working copy","x-requires":"An API key that can read and change","parameters":[{"name":"org","in":"path","required":true,"schema":{"type":"string"},"description":"The organization's slug."},{"name":"process","in":"path","required":true,"schema":{"type":"string"},"description":"The process's slug, number or exact name."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"The process's version this change is based on (from GET)."},"changeNote":{"type":"string","minLength":1,"maxLength":500}},"required":["version","changeNote"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK"},"400":{"description":"Invalid request"},"401":{"description":"Invalid or missing API key"},"403":{"description":"Not allowed"},"404":{"description":"Not found"},"409":{"description":"The process changed since that version"}}}},"/organizations/{org}/processes/{process}/reviews":{"post":{"summary":"Record that a process was reviewed","x-requires":"An API key that can read and change","parameters":[{"name":"org","in":"path","required":true,"schema":{"type":"string"},"description":"The organization's slug."},{"name":"process","in":"path","required":true,"schema":{"type":"string"},"description":"The process's slug, number or exact name."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"The process's version this change is based on (from GET)."},"note":{"type":"string","minLength":1,"maxLength":500}},"required":["version","note"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK"},"400":{"description":"Invalid request"},"401":{"description":"Invalid or missing API key"},"403":{"description":"Not allowed"},"404":{"description":"Not found"},"409":{"description":"The process changed since that version"}}}}}}