# Program

A versioned JSON definition of a web automation: its inputs, steps, extraction and policies.

Programs are written by hand, recorded, or produced by an agent. Each published version is kept; jobs run a named version or an alias such as production, and proposed fixes become new versions you can diff.

```
{
  "kaab": "1",
  "name": "acme-report",
  "inputs": {
    "report_id": {
      "type": "string",
      "pattern": "^[0-9]+$"
    }
  },
  "steps": [
    {
      "goto": "https://portal.example.com/reports/{{inputs.report_id}}"
    },
    {
      "extract": {
        "title": "h1",
        "total": {
          "selector": ".total",
          "type": "money"
        }
      }
    }
  ]
}
```

## Related

- [Built by your coding agent](/product/mcp)
- [Self-healing locators](/product/self-healing)
- [Turn a website into an API](/use-cases/website-to-api)
- [MCP (Model Context Protocol)](/glossary/mcp)
- [Proposal](/glossary/proposal)
