{
 "openapi": "3.1.0",
 "info": {
  "title": "sebbi.pro - proof, compliance and agent safety API",
  "version": "2026.10.25",
  "description": "Every check free; sealed certificates, compliance file, State Root, gate, firewall and Plan Lock with the sebbi engine (50p a month). Guide: https://sebbi.pro/law",
  "contact": {
   "email": "justin@monopcontent.com",
   "url": "https://sebbi.pro"
  }
 },
 "servers": [
  {
   "url": "https://sebbi.pro"
  }
 ],
 "components": {
  "securitySchemes": {
   "bearer": {
    "type": "http",
    "scheme": "bearer",
    "description": "Your sebbi.pro key (al_live_...)"
   }
  }
 },
 "paths": {
  "/x/proofpath/run": {
   "post": {
    "summary": "Run one compliance control. Free result; a sealed certificate with the engine.",
    "responses": {
     "200": {
      "description": "OK"
     },
     "402": {
      "description": "Needs the sebbi engine (paid plan, 50p a month)"
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "check": {
          "type": "string",
          "description": "control id, e.g. sebbi_euaiact_014"
         },
         "value": {
          "type": "string",
          "description": "the evidence value"
         },
         "ask": {
          "type": "string",
          "description": "Ask for Proof code, optional"
         }
        }
       }
      }
     }
    }
   }
  },
  "/x/proofpath/prove_once": {
   "post": {
    "summary": "Prove one obligation once across every law that asks for it.",
    "responses": {
     "200": {
      "description": "OK"
     },
     "402": {
      "description": "Needs the sebbi engine (paid plan, 50p a month)"
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "obligation": {
          "type": "string",
          "description": "e.g. oversight"
         },
         "evidence": {
          "type": "string",
          "description": ""
         },
         "confirm": {
          "type": "boolean",
          "description": ""
         }
        }
       }
      }
     }
    }
   }
  },
  "/x/proofpath/file": {
   "get": {
    "summary": "Your compliance file across every law.",
    "responses": {
     "200": {
      "description": "OK"
     },
     "402": {
      "description": "Needs the sebbi engine (paid plan, 50p a month)"
     }
    },
    "security": [
     {
      "bearer": []
     }
    ]
   }
  },
  "/x/proofpath/push": {
   "post": {
    "summary": "Push live records; matching controls re-checked and sealed; regressions alerted.",
    "responses": {
     "200": {
      "description": "OK"
     },
     "402": {
      "description": "Needs the sebbi engine (paid plan, 50p a month)"
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "record": {
          "type": "object",
          "description": "field -> value"
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "bearer": []
     }
    ]
   }
  },
  "/x/proofpath/pack": {
   "post": {
    "summary": "Issue a sealed audit or insurer pack.",
    "responses": {
     "200": {
      "description": "OK"
     },
     "402": {
      "description": "Needs the sebbi engine (paid plan, 50p a month)"
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "kind": {
          "type": "string",
          "description": "audit|insurer"
         },
         "framework": {
          "type": "string",
          "description": ""
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "bearer": []
     }
    ]
   }
  },
  "/x/proofpath/ask": {
   "post": {
    "summary": "Ask a supplier to prove controls; returns their link and your live status link.",
    "responses": {
     "200": {
      "description": "OK"
     },
     "402": {
      "description": "Needs the sebbi engine (paid plan, 50p a month)"
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "req_name": {
          "type": "string",
          "description": ""
         },
         "req_org": {
          "type": "string",
          "description": ""
         },
         "sup_name": {
          "type": "string",
          "description": ""
         },
         "preset": {
          "type": "string",
          "description": ""
         },
         "framework": {
          "type": "string",
          "description": ""
         },
         "obligation": {
          "type": "string",
          "description": ""
         },
         "checks": {
          "type": "array",
          "description": ""
         }
        }
       }
      }
     }
    }
   }
  },
  "/x/stateroot/gate": {
   "post": {
    "summary": "Compliance gate: ALLOW or HOLD an action against the live compliance file, sealed.",
    "responses": {
     "200": {
      "description": "OK"
     },
     "402": {
      "description": "Needs the sebbi engine (paid plan, 50p a month)"
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "action": {
          "type": "string",
          "description": ""
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "bearer": []
     }
    ]
   }
  },
  "/x/stateroot/prove": {
   "post": {
    "summary": "Prove one control's status at a moment.",
    "responses": {
     "200": {
      "description": "OK"
     },
     "402": {
      "description": "Needs the sebbi engine (paid plan, 50p a month)"
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "check": {
          "type": "string",
          "description": ""
         },
         "at": {
          "type": "string",
          "description": "UTC date/time"
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "bearer": []
     }
    ]
   }
  },
  "/x/stateroot/prove_period": {
   "post": {
    "summary": "Prove a control held across a period.",
    "responses": {
     "200": {
      "description": "OK"
     },
     "402": {
      "description": "Needs the sebbi engine (paid plan, 50p a month)"
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "check": {
          "type": "string",
          "description": ""
         },
         "from": {
          "type": "string",
          "description": ""
         },
         "to": {
          "type": "string",
          "description": ""
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "bearer": []
     }
    ]
   }
  },
  "/x/stateroot/prove_decision": {
   "post": {
    "summary": "Prove the compliance state behind one engine decision.",
    "responses": {
     "200": {
      "description": "OK"
     },
     "402": {
      "description": "Needs the sebbi engine (paid plan, 50p a month)"
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "decision": {
          "type": "string",
          "description": "block or receipt"
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "bearer": []
     }
    ]
   }
  },
  "/x/frontier/act": {
   "post": {
    "summary": "Consequence firewall: taint receipt and ALLOW/HOLD for an agent action.",
    "responses": {
     "200": {
      "description": "OK"
     },
     "402": {
      "description": "Needs the sebbi engine (paid plan, 50p a month)"
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "action": {
          "type": "string",
          "description": ""
         },
         "amount": {
          "type": "number",
          "description": ""
         },
         "inputs": {
          "type": "array",
          "description": "[{source, trust, text|sha256}]"
         },
         "human_confirmed": {
          "type": "boolean",
          "description": ""
         },
         "authorised_by": {
          "type": "object",
          "description": ""
         },
         "compliance_gate": {
          "type": "string",
          "description": ""
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "bearer": []
     }
    ]
   }
  },
  "/x/frontier/memory": {
   "post": {
    "summary": "Seal an agent memory or summary into its chain; flags instruction-like text.",
    "responses": {
     "200": {
      "description": "OK"
     },
     "402": {
      "description": "Needs the sebbi engine (paid plan, 50p a month)"
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "agent": {
          "type": "string",
          "description": ""
         },
         "kind": {
          "type": "string",
          "description": ""
         },
         "text": {
          "type": "string",
          "description": ""
         },
         "sha256": {
          "type": "string",
          "description": ""
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "bearer": []
     }
    ]
   }
  },
  "/x/frontier/dispute": {
   "post": {
    "summary": "Agent dispute pack: action compared with mandate, sealed.",
    "responses": {
     "200": {
      "description": "OK"
     },
     "402": {
      "description": "Needs the sebbi engine (paid plan, 50p a month)"
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "mandate": {
          "type": "object",
          "description": ""
         },
         "action": {
          "type": "object",
          "description": ""
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "bearer": []
     }
    ]
   }
  },
  "/x/frontier/reasoning": {
   "post": {
    "summary": "Seal the fingerprint of the reasoning behind a decision.",
    "responses": {
     "200": {
      "description": "OK"
     },
     "402": {
      "description": "Needs the sebbi engine (paid plan, 50p a month)"
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "decision": {
          "type": "string",
          "description": ""
         },
         "text": {
          "type": "string",
          "description": ""
         },
         "sha256": {
          "type": "string",
          "description": ""
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "bearer": []
     }
    ]
   }
  },
  "/x/frontier/scan": {
   "post": {
    "summary": "Free injection-phrasing scan.",
    "responses": {
     "200": {
      "description": "OK"
     },
     "402": {
      "description": "Needs the sebbi engine (paid plan, 50p a month)"
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "text": {
          "type": "string",
          "description": ""
         }
        }
       }
      }
     }
    }
   }
  },
  "/x/planlock/commit": {
   "post": {
    "summary": "Lock an agent's plan before it reads untrusted data.",
    "responses": {
     "200": {
      "description": "OK"
     },
     "402": {
      "description": "Needs the sebbi engine (paid plan, 50p a month)"
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "task": {
          "type": "string",
          "description": ""
         },
         "user_values": {
          "type": "array",
          "description": ""
         },
         "steps": {
          "type": "array",
          "description": "[{tool, max_calls, args:{name: rule}}]"
         },
         "ttl_minutes": {
          "type": "integer",
          "description": ""
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "bearer": []
     }
    ]
   }
  },
  "/x/planlock/check": {
   "post": {
    "summary": "Check a tool call against the locked plan: ALLOW or BLOCK, sealed.",
    "responses": {
     "200": {
      "description": "OK"
     },
     "402": {
      "description": "Needs the sebbi engine (paid plan, 50p a month)"
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "plan_id": {
          "type": "string",
          "description": ""
         },
         "token": {
          "type": "string",
          "description": ""
         },
         "tool": {
          "type": "string",
          "description": ""
         },
         "args": {
          "type": "object",
          "description": ""
         },
         "sources": {
          "type": "object",
          "description": ""
         }
        }
       }
      }
     }
    },
    "security": [
     {
      "bearer": []
     }
    ]
   }
  },
  "/x/planlock/demo": {
   "post": {
    "summary": "Free scripted injection attack against a locked plan.",
    "responses": {
     "200": {
      "description": "OK"
     },
     "402": {
      "description": "Needs the sebbi engine (paid plan, 50p a month)"
     }
    }
   }
  }
 }
}