Docs
API 1.39
Status
Objects

Proposal

The Proposal object of the Kaabist API.

FieldTypeRequiredDescription
idstringyespattern ^prp_[0-9a-hjkmnp-tv-z]{26}$
object"proposal"yes
kind"relocate", "dismiss", "insert_steps", "parser_config", "api_discovery"yes
status"pending", "approved", "rejected", "expired"yes
programobjectyes
program.idstringyespattern ^prg_[0-9a-hjkmnp-tv-z]{26}$
program.namestringyes
program.versionintegeryes≥ 1
program.version_idstringyespattern ^pv_[0-9a-hjkmnp-tv-z]{26}$
job_idstring or nullyespattern ^job_[0-9a-hjkmnp-tv-z]{26}$
targetstringyes
confidencenumber or nullyes≥ 0 · ≤ 1
source"heuristic", "llm", "takeover", "canary"yes
payloadobjectyes
payload.oldmap of any
payload.newmap of any
payload.samplesmap of any
payload.fingerprintsmap of any
payload.bboxesmap of any
payload.evidencemap of any
payload.screenshotsobject
payload.screenshots.oldstring or null
payload.screenshots.newstring or null
payload.obstaclemap of any
payload.actionmap of any
payload.hostnamestring
payload.stepsmap of any
payload.recording_keystring
payload.live_idstring
created_atstring (date-time)yes
expires_atstring (date-time)yes
decided_atstring or null (date-time)yes
decisionobject or nullyes
decision.promotebooleanyes
decision.remember"none", "site"yes
decision.bystringyes
decision.notesstring or nullmax length 1000

#Example

{
  "id": "prp_01j9zqk3q7m4n5p6r7s8t9v0wx",
  "object": "proposal",
  "kind": "relocate",
  "status": "pending",
  "program": {
    "id": "prg_01j9zqk3q7m4n5p6r7s8t9v0wx",
    "name": "acme-report",
    "version": 3,
    "version_id": "pv_01j9zqk3q7m4n5p6r7s8t9v0wx"
  },
  "job_id": "job_01j9zqk3q7m4n5p6r7s8t9v0wx",
  "target": "extract.rows[].amount",
  "confidence": 0.91,
  "source": "heuristic",
  "payload": {
    "old": {
      "selector": "td:nth-child(3)"
    },
    "new": {
      "candidates": [
        {
          "css": "td[data-col=amount]"
        }
      ]
    },
    "samples": {
      "old": "1.250,00",
      "new": "1.250,00"
    }
  },
  "created_at": "2026-09-18T10:00:00Z",
  "expires_at": "2026-09-25T10:00:00Z",
  "decided_at": null,
  "decision": null
}

Was this page helpful?