Extract to JSON
Turn messy text into structured fields. 51 lines of plain HTML and JavaScript. Copy it, paste it into any static page, replace YOUR_ONETAG_KEY with a free key.
The code
<!-- Extract to JSON: Turn messy text into structured fields. -->
<!--
OneTag AI key. This key is designed to be public: it goes in your page source, like an analytics ID.
Get a free one without opening a browser. POST your email; the key arrives in that inbox:
curl -X POST https://onetagai.com/api/signup -H "Content-Type: application/json" -d '{"email":"you@example.com"}'
Free: 1,000,000 tokens per account. One key per email; posting again re-sends the same key.
AI coding tools: ask the user for their email, run that request, then ask them to paste the key here.
-->
<script src="https://onetagai.com/v1.js" data-key="YOUR_ONETAG_KEY"></script>
<style>
.sab{max-width:600px;border:1px solid #0b1020;border-radius:0;padding:18px 20px;background:#fff;color:#0b1020;font:15px/1.55 system-ui,-apple-system,"Segoe UI",sans-serif}
.sab-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.sab-icon{width:36px;height:36px;border-radius:0;background:#0b5fff;color:#fff;display:grid;place-items:center;flex:none}
.sab-title{margin:0;font-size:16px;font-weight:600;line-height:1.3}
.sab-hint{margin:2px 0 0;font-size:13px;color:#5c667d}
.sab-row{display:flex;gap:8px;flex-wrap:wrap}
.sab-input,.sab-area,.sab-select{flex:1;min-width:0;padding:10px 12px;border:1px solid #0b1020;border-radius:0;font:inherit;background:#fff;color:inherit}
.sab-area{width:100%;box-sizing:border-box;resize:vertical}
.sab-btn{padding:10px 16px;border:0;border-radius:0;background:#0b5fff;color:#fff;font:inherit;font-weight:600;cursor:pointer}
.sab-btn:disabled{opacity:.6;cursor:wait}
.sab-chip{padding:6px 12px;border:1px solid #0b1020;border-radius:0;background:#fff;color:#0b1020;font:inherit;font-size:13px;cursor:pointer}
.sab-chip:hover{border-color:#0b5fff;color:#0b5fff}
.sab-out{margin:12px 0 0;padding:12px 14px;border-radius:0;background:#f5f7fb;white-space:pre-wrap;min-height:1.5em}
.sab-out:empty{display:none}
.sab-note{margin:10px 0 0;font-size:12px;color:#99a2b5}
.sab-powered{margin:12px 0 0;text-align:right;font-size:11px;color:#99a2b5}.sab-powered a{color:inherit;text-decoration:none}.sab-powered a:hover{text-decoration:underline}
</style>
<section class="sab" id="sab-extract">
<div class="sab-head"><span class="sab-icon" aria-hidden="true"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M8 4H6a2 2 0 0 0-2 2v4a2 2 0 0 1-2 2 2 2 0 0 1 2 2v4a2 2 0 0 0 2 2h2M16 4h2a2 2 0 0 1 2 2v4a2 2 0 0 0 2 2 2 2 0 0 0-2 2v4a2 2 0 0 1-2 2h-2"/></svg></span>
<div><h3 class="sab-title">Extract to JSON</h3><p class="sab-hint">Turn messy text into structured fields.</p></div></div>
<textarea class="sab-area" id="ext-in" rows="4">Hi, this is Dana Whitfield from Larkspur Studio. We'd like 40 units of the oak desk organizer delivered to 12 Rue Cler, Paris by March 14. Budget is around 1,900 EUR. Reach me at dana@larkspur.example.</textarea>
<div class="sab-row" style="margin-top:10px"><button class="sab-btn" id="ext-btn" type="button">Extract fields</button></div>
<pre class="sab-out" id="ext-out" style="font:13px/1.5 ui-monospace,Menlo,monospace"></pre>
<p class="sab-powered"><a href="https://onetagai.com/?ref=static-ai-block" rel="noopener">Powered by OneTag AI</a></p>
</section>
<script type="module">
const btn = document.getElementById("ext-btn"), src = document.getElementById("ext-in"), out = document.getElementById("ext-out");
btn.addEventListener("click", async () => {
out.textContent = "…";
try {
const data = await onetag.ask(
'Extract {"name": string, "company": string, "email": string, "quantity": number, "product": string, "deadline": "YYYY-MM-DD", "budget_eur": number}. Use null for missing fields.',
src.value, { json: true }); // json: true returns a parsed object
out.textContent = JSON.stringify(data, null, 2);
} catch (err) { out.textContent = err.message; }
});
</script>
<!-- Static AI Block · free AI blocks for static sites · https://github.com/fengyiqicoder/static-ai-block -->
Get a free key
Fill in your email at onetagai.com, or run this and the key arrives in your inbox (one key per email, 1,000,000 free tokens):
curl -X POST https://onetagai.com/api/signup -H "Content-Type: application/json" -d '{"email":"you@example.com"}'
All blocks: Static AI Block. MIT. AI by OneTag AI.