Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 6 additions & 7 deletions api.py
Original file line number Diff line number Diff line change
Expand Up @@ -488,7 +488,7 @@ def _mask_tail(value, keep: int = 4) -> str:

_NAV = '<nav><div class="logo">agent<span>mail</span></div><div class="links"><a href="/">Home</a><a href="/teardown">How It Works</a><a href="/dashboard">Dashboard</a><a href="/faq">FAQ</a><a href="/docs">Docs</a><a href="/tools/wallet-checker">Free Checker</a><a href="/blog/ofac-for-agents">Blog</a><a href="/pricing">Pricing</a><a href="/checkout/dev" class="btn btn-primary">Get API key</a></div></nav>'

_FOOTER = '<footer><div class="links" style="display:flex;flex-wrap:wrap;gap:12px 28px;justify-content:center;max-width:900px;margin:0 auto 16px"><div style="min-width:140px"><strong style="color:#888;font-size:.75em;text-transform:uppercase;letter-spacing:.05em">Product</strong><br><a href="/">Home</a><br><a href="/teardown">How It Works</a><br><a href="/pricing">Pricing</a><br><a href="/docs">Docs</a><br><a href="/tools">Free Tools</a><br><a href="/llms.txt">llms.txt (AI docs)</a></div><div style="min-width:140px"><strong style="color:#888;font-size:.75em;text-transform:uppercase;letter-spacing:.05em"><a href="/for" style="color:#888;text-decoration:none">By Industry</a></strong><br><a href="/for/fintech">Fintech</a><br><a href="/for/crypto">Crypto</a><br><a href="/for/defi">DeFi</a><br><a href="/for/payments">Payments</a><br><a href="/for/ai-agents">AI Agents</a><br><a href="/for/developers">Developers</a></div><div style="min-width:140px"><strong style="color:#888;font-size:.75em;text-transform:uppercase;letter-spacing:.05em"><a href="/vs" style="color:#888;text-decoration:none">Compare</a></strong><br><a href="/vs/chainalysis">vs Chainalysis</a><br><a href="/vs/elliptic">vs Elliptic</a><br><a href="/vs/comply-advantage">vs ComplyAdvantage</a><br><a href="/compare/sumsub">vs SumSub</a><br><a href="/compare/world-check">vs World-Check</a></div><div style="min-width:140px"><strong style="color:#888;font-size:.75em;text-transform:uppercase;letter-spacing:.05em">Resources</strong><br><a href="/blog">Blog</a><br><a href="/guides">Guides</a><br><a href="/penalties">Penalties</a><br><a href="/how-to">How-To</a><br><a href="/glossary">Glossary</a><br><a href="/cost">Costs</a><br><a href="/integrations">Integrations</a><br><a href="/vs">Vs</a><br><a href="/stats">Stats</a><br><a href="/content-strategy">Content Strategy</a><br><a href="/partners/jv">JV Partners (50%)</a><br><a href="/dream100">Dream 100</a><br><a href="https://x.com/sipiteno" style="color:inherit">X / Twitter</a><br><a href="/agent">For Agents</a><br><a href="/leaderboard">Leaderboard</a><br><a href="/about">About</a><br><a href="/contact">Contact</a><br><a href="/privacy">Privacy</a><br><a href="/terms">Terms</a><br><a href="/countries">Countries</a><br><a href="/checklists">Checklists</a><br><a href="/answers">Answers</a><br><a href="/best">Best-Of</a><br><a href="/alternatives-to">Alternatives</a></div></div><section class="subscribe-footer" style="max-width:900px;margin:16px auto 0;padding:16px 0 0;border-top:1px solid #333;text-align:center"><p style="color:#ccc;font-size:.85rem;margin:0 0 8px">Get OFAC enforcement alerts and agent compliance tips. No spam.</p><form action="/subscribe" method="post" style="display:flex;gap:8px;justify-content:center;flex-wrap:wrap;max-width:400px;margin:0 auto"><input type="email" name="email" placeholder="your@email.com" required style="flex:1;min-width:180px;padding:8px 12px;border:1px solid #444;border-radius:6px;background:#111;color:#e0e0e0;font-size:.85rem"><button type="submit" style="padding:8px 16px;border:none;border-radius:6px;background:#00d4aa;color:#0a0a0a;font-weight:600;cursor:pointer;font-size:.85rem">Subscribe</button></form></section><p style="text-align:center;color:#666">agentmail - OFAC sanctions screening for AI agents · MIT licensed · Data from US Treasury &amp; vile/ofac-sdn-list</p></footer>'
_FOOTER = '<footer><div class="links" style="display:flex;flex-wrap:wrap;gap:12px 28px;justify-content:center;max-width:900px;margin:0 auto 16px"><div style="min-width:140px"><strong style="color:#888;font-size:.75em;text-transform:uppercase;letter-spacing:.05em">Product</strong><br><a href="/">Home</a><br><a href="/teardown">How It Works</a><br><a href="/pricing">Pricing</a><br><a href="/docs">Docs</a><br><a href="/tools">Free Tools</a><br><a href="/llms.txt">llms.txt (AI docs)</a></div><div style="min-width:140px"><strong style="color:#888;font-size:.75em;text-transform:uppercase;letter-spacing:.05em"><a href="/for" style="color:#888;text-decoration:none">By Industry</a></strong><br><a href="/for/fintech">Fintech</a><br><a href="/for/crypto">Crypto</a><br><a href="/for/defi">DeFi</a><br><a href="/for/payments">Payments</a><br><a href="/for/ai-agents">AI Agents</a><br><a href="/for/developers">Developers</a></div><div style="min-width:140px"><strong style="color:#888;font-size:.75em;text-transform:uppercase;letter-spacing:.05em"><a href="/vs" style="color:#888;text-decoration:none">Compare</a></strong><br><a href="/vs/chainalysis">vs Chainalysis</a><br><a href="/vs/elliptic">vs Elliptic</a><br><a href="/vs/comply-advantage">vs ComplyAdvantage</a><br><a href="/compare/sumsub">vs SumSub</a><br><a href="/compare/world-check">vs World-Check</a></div><div style="min-width:140px"><strong style="color:#888;font-size:.75em;text-transform:uppercase;letter-spacing:.05em">Resources</strong><br><a href="/blog">Blog</a><br><a href="/guides">Guides</a><br><a href="/penalties">Penalties</a><br><a href="/how-to">How-To</a><br><a href="/glossary">Glossary</a><br><a href="/cost">Costs</a><br><a href="/integrations">Integrations</a><br><a href="/vs">Vs</a><br><a href="/stats">Stats</a><br><a href="/content-strategy">Content Strategy</a><br><a href="/partners/jv">JV Partners (50%)</a><br><a href="/dream100">Dream 100</a><br><a href="https://x.com/sipiteno" style="color:inherit">X / Twitter</a><br><a href="/agent">For Agents</a><br><a href="/leaderboard">Leaderboard</a><br><a href="/about">About</a><br><a href="/contact">Contact</a><br><a href="/privacy">Privacy</a><br><a href="/terms">Terms</a><br><a href="/countries">Countries</a><br><a href="/checklists">Checklists</a><br><a href="/answers">Answers</a><br><a href="/best">Best-Of</a><br><a href="/alternatives-to">Alternatives</a></div></div><section class="subscribe-footer" style="max-width:900px;margin:16px auto 0;padding:16px 0 0;border-top:1px solid #333;text-align:center"><p style="color:#ccc;font-size:.85rem;margin:0 0 8px">Get OFAC enforcement alerts and agent compliance tips. No spam.</p><form action="/subscribe" method="post" style="display:flex;gap:8px;justify-content:center;flex-wrap:wrap;max-width:400px;margin:0 auto"><input type="email" name="email" placeholder="your@email.com" required aria-label="Email address" autocomplete="email" style="flex:1;min-width:180px;padding:8px 12px;border:1px solid #444;border-radius:6px;background:#111;color:#e0e0e0;font-size:.85rem"><button type="submit" style="padding:8px 16px;border:none;border-radius:6px;background:#00d4aa;color:#0a0a0a;font-weight:600;cursor:pointer;font-size:.85rem">Subscribe</button></form></section><p style="text-align:center;color:#666">agentmail - OFAC sanctions screening for AI agents · MIT licensed · Data from US Treasury &amp; vile/ofac-sdn-list</p></footer>'

_VERTICALS = {
"fintech": {
Expand Down Expand Up @@ -4710,9 +4710,9 @@ def _landing_page(self):
<li><b style="color:var(--text)">Day 4:</b> Wire it into your agent before production (copy-paste)</li>
<li><b style="color:var(--text)">Day 5:</b> The deployment checklist + the first real fine prediction</li>
</ol>
<form class="form" id="free-tier-capture">
<form class="form" id="free-tier-capture" method="post">
<div class="row">
<input type="email" id="free-email" inputmode="email" autocomplete="email" placeholder="you@example.com (optional &mdash; for the compliance series)" aria-label="Email address (optional)">
<input type="email" name="email" id="free-email" inputmode="email" autocomplete="email" placeholder="you@example.com (optional &mdash; for the compliance series)" aria-label="Email address (optional)">
<button type="submit" class="btn btn-primary btn-lg" id="free-submit">Get the curl + 5-day series &rarr;</button>
</div>
</form>
Expand Down Expand Up @@ -6866,7 +6866,7 @@ def _blog_page(self, slug):
'<h3 style="font-size:1.05rem;color:#fff;margin:0 0 8px">📋 Free: Agent Compliance Checklist (PDF)</h3>'
'<p style="color:var(--t2);font-size:.9rem;margin:0 0 14px;line-height:1.5">A 1-page compliance audit for your payment agent. Check your setup against the 7-point framework. Enter your email — we send it instantly.</p>'
'<form onsubmit="var e=this.querySelector(\'input\').value;if(e&&e.indexOf(\'@\')>0){fetch(\'/subscribe\',{method:\'POST\',headers:{\'Content-Type\':\'application/json\'},body:JSON.stringify({email:e,source:\'blog-' + slug + '-upgrade\'})}).catch(function(){});this.innerHTML=\'<p style=color:var(--teal2);font-size:.9rem>✓ Checklist is on its way. Check your inbox in 2 minutes.</p>\'}else{this.innerHTML=\'<p style=color:var(--teal2);font-size:.9rem>✓ No email needed — <a href=/tools/wallet-checker style=color:var(--teal2)>try the free checker now →</a></p>\'}return false" style="display:flex;gap:8px;flex-wrap:wrap">'
'<input type="email" placeholder="you@example.com (optional)" style="flex:1;min-width:180px;padding:10px 14px;border-radius:8px;border:1px solid var(--line2);background:rgba(255,255,255,.02);color:var(--text);font-size:.88rem">'
'<input type="email" name="email" placeholder="you@example.com (optional)" aria-label="Email address (optional)" autocomplete="email" style="flex:1;min-width:180px;padding:10px 14px;border-radius:8px;border:1px solid var(--line2);background:rgba(255,255,255,.02);color:var(--text);font-size:.88rem">'
'<button type="submit" style="padding:10px 20px;border-radius:8px;background:var(--tealg,linear-gradient(135deg,#00d4aa,#2deec0));color:#04130e;font-weight:700;font-size:.88rem;border:none;cursor:pointer">Get checklist →</button>'
'</form></div>'
)
Expand Down Expand Up @@ -10670,11 +10670,10 @@ def _tripwire_page(handler):
<div class="text"><strong>60-Day Guarantee:</strong> If the kit does not save you at least one hour of compliance research, I will refund your $7. You keep everything.</div>
</div>
<div style="text-align:center;margin:30px 0">
<a href="https://buy.stripe.com/REPLACE_WITH_TRIPWIRE_LINK" class="btn">Get the Quick-Start Kit - $7</a>
<p class="secondary">One-time payment. Instant access. <a href="/">No thanks, I will risk the fine</a></p>
<a href="mailto:hello@sanctionsai.dev?subject=OFAC%20Compliance%20Quick-Start%20Kit" class="btn">Email to get the Quick-Start Kit - $7</a>
<p class="secondary">Checkout is not automated yet — email and we send payment details and the kit by hand. <a href="/">No thanks, I will risk the fine</a></p>
</div>
<div class="testimonial">
<div class="quote">"I was about to deploy my x402 agent without any OFAC screening. The kit curl snippet took 30 seconds. Now every payment is screened before it moves."</div>
<div class="attr">- Agent Framework Author, San Francisco</div>
</div>
<div class="faq">
Expand Down
Loading