booklint
Checks an agent's trades, spend, bookings and offers against its owner's limits. Facts, not advice.
- 0.4.0
- Version
- remote
- Transport
- 8
- Tools
Security review
Review passedReviewed Jan 1, 2000.
- tools: 8 tools scanned
- metadata: scanned
No findings.
Tools (8)
get_sample
Returns a public sample, the same as GET /v1/sample. Start with name "booking" (sample 3, a hotel offer): passed to check_book as sample="booking", it returns real STOP results against the limits its owner wrote. "subscription" (sample 4, a subscription checkout) is the other Fine-Print Check request: an offer, limits, as_of and page text. name "trading" (the default) is sample 1, a trading agent's book (snapshot, rulebook, broker, journal), stamped now. name "spend" is sample 2, a purchasing and booking agent's actions and the limits its owner wrote. Edit it and pass it to check_book.
check_book
Deterministic rule checks of any agent's actions against the limits its owner wrote, the same as POST /v1/check. Send a trading book (snapshot and rulebook, optionally broker and journal) or an actions list with limits (per-transaction and daily spend caps, merchant allow and deny lists, refundability), or, BEFORE booking or subscribing, one offer with limits (Fine-Print Check: total price cap, mandatory fees over the headline price, refundability, free-cancellation window, auto-renewal, renewal price, trial length, and an optional page_text consistency scan; each rule answers MATCH, WARN, STOP or NOT_CHECKED with the figure found). Send plain text you already have. Do not send a URL; booklint will not fetch one. Returns verdict (FLAGGED, CLEAN, NOT_VERIFIED, REFUSED), coverage and flags. Each rule reports passed, failed or not checked; missing data is not checked, never assumed, and a result with zero flags is not a pass. Pass sample=true (sample 1, trading), sample="spend" (sample 2,
check_invoice
Send invoice or expense lines as JSON; returns flags for duplicate IDs, repeat vendor+amount+date, missing fields and currency mismatch. Math only. Process-and-discard: nothing is stored or logged after the run. A request containing a Luhn-valid card number or a valid IBAN is refused before accept with reason sensitive_data_refused (not counted as a check). Free plan: runs under the shared free check cap. Desk: volume use. Top-level verdict is CLEAN, FLAGGED or NOT_VERIFIED.
check_quote_math
Send quote or pricing sheet lines as JSON; returns flags for mismatched line totals, wrong discount amounts, subtotal and grand-total errors, and tier range conflicts (overlap and gap). Math only. Process-and-discard: nothing is stored or logged after the run. A request containing a Luhn-valid card number or a valid IBAN is refused before accept with reason sensitive_data_refused (not counted as a check). Free plan: runs under the shared free check cap. Desk: volume use. Top-level verdict is CLEAN, FLAGGED or NOT_VERIFIED.
check_budget_variance
Send budget and actual lines as JSON; returns MATCH/WARN/STOP per line (default 5%/20%, overridable per request, thresholds always echoed), ranked overruns (largest % overrun first). Overall = worst line status. Math only. Process-and-discard: nothing is stored or logged after the run. A request containing a Luhn-valid card number or a valid IBAN is refused before accept with reason sensitive_data_refused (not counted as a check). Free plan: runs under the shared free check cap. Desk: volume use. Top-level verdict is CLEAN, FLAGGED or NOT_VERIFIED. Per-line and overall status stay MATCH, WARN or STOP; those are not the top-level verdict.
check_accounts_tieout
Send one or more balance-sheet periods as JSON; checks that assets equal liabilities plus equity (tolerance 0.01), that any stated subtotals sum correctly, that net income less dividends agrees with the change in retained earnings (tolerance ±1, per terms), and that consecutive periods (when start/end dates are supplied) have no gaps or overlaps. Process-and-discard: nothing is stored or logged after the run. A request containing a Luhn-valid card number or a valid IBAN is refused before accept with reason sensitive_data_refused (not counted as a check). Free plan: runs under the shared free check cap. Desk: volume use. Top-level verdict is CLEAN, FLAGGED or NOT_VERIFIED. NOT_VERIFIED when tieout fields are absent for any period or fewer than two periods carry parseable dates (period_sequence NOT_CHECKED).
check_data_quality
Send a dataset as a list of row dicts (JSON) or a CSV string; checks null rate per field (flagged when above max_null_rate, default 0.2), type inconsistencies within a field (number / bool / string, nulls excluded), exact duplicate rows, and numeric outliers (values beyond Q1 − 3×IQR or Q3 + 3×IQR, requires ≥ 4 non-null values per field). Schema-drift excluded from v1. Process-and-discard: nothing is stored or logged after the run. A request containing a Luhn-valid card number or a valid IBAN is refused before accept with reason sensitive_data_refused (not counted as a check). Free plan: runs under the shared free check cap. Desk: volume use. Top-level verdict is CLEAN or FLAGGED.
get_free_key
Returns a free key at once, the same as POST /v1/keys {"plan": "free"}: no card, no e-mail, and the same daily limits on new keys per client and across the service. The key is shown once in this result and is not stored or logged; pass it as api_key to check_book. A free key runs more own checks a day than the keyless plan; the result lists its limits. Optional label: 1 to 40 letters, digits, '.', '_' or '-'.