Document recognition on a client site — in an evening
A client wants visitors to upload a photo of a slip, form, or note and see text back. Drop-in widget, a two-line iframe, or one REST call. The client pays from their own account — you do not resell or reconcile usage.
Client pays on their account · No card — 40 requests to test · Domain allowlist on widgets
Sound familiar?
- The client wants document OCR on their site but the budget is contact-form money.
- Wrapping a third-party OCR for one project does not pay back.
- Enterprise vendors start with “talk to sales” — you need it this week.
- You do not want to be the middleman for someone else’s subscription.
Documents we handle
| You upload | You get |
|---|---|
| Widget | Domain-locked iframe, recognition types from the dashboard |
| API | One POST to /api/v1/ocr, multipart or base64, JSON back |
| Billing | Client pays by card from their own account |
| Your job | Create the widget, paste the snippet, hand off access |
How to connect
Widget on your site
Create a widget in your account, copy the iframe — visitors upload photos on your page.
<iframe src="https://toolsy.tools/embed/YOUR_ID" style="width:100%;height:480px;border:0" loading="lazy" ></iframe>WordPress, Webflow, Shopify →
API from your app
One POST — file plus recognition type. Response is JSON with text.
curl -X POST https://toolsy.tools/api/v1/ocr \ -H "Authorization: Bearer KEY" \ -F "tool=screenshot-to-code" \ -F "file=@doc.jpg"PHP, Python, Node, and more →
Install on your platform
Short guides for common site builders. For code calls, see API snippets.
WordPress
- Create a widget in Toolsy with your site domain on the allowlist.
- In the block editor, add a Custom HTML block and paste the iframe.
- In the classic editor, use the Text tab — not Visual.
- If you use a cache plugin, exclude the page with the widget or allow iframes.
<iframe src="https://toolsy.tools/embed/YOUR_ID" width="100%" height="520" style="border:0" title="Recognition" loading="lazy"></iframe>
Webflow
- Create a widget and add your Webflow publish domain (and custom domain).
- Add an Embed element to the page.
- Paste the iframe code and publish.
- Test from the live URL — preview domains may differ from production.
<iframe src="https://toolsy.tools/embed/YOUR_ID" width="100%" height="520" style="border:0;border-radius:8px" title="Recognition" loading="lazy"></iframe>
Shopify
- Create a widget with your myshopify.com and custom store domain.
- Online Store → Pages → add a section with Custom Liquid or HTML.
- Paste the iframe and save.
- Open the page on the live store to confirm uploads work.
Squarespace
- Add a Code block on the page (not a simple embed URL field).
- Paste the full iframe from your account.
- Add both squarespace.com preview and your custom domain to the widget allowlist.
Wix / other builders
- Find an HTML / Embed / Code block on the page.
- Paste the widget iframe; list the builder domain in your Toolsy account.
- Publish and test from the production URL, not only the editor preview.
Preview domains often differ — add both preview and live domains to the allowlist.
Plain HTML
- Create a widget and copy the embed code.
- Paste the iframe anywhere. The page domain must be on the widget allowlist.
<iframe src="https://toolsy.tools/embed/YOUR_ID" width="100%" height="520" style="border:0;border-radius:8px" title="Recognition" loading="lazy"></iframe>
Backend (PHP, Python, Node)
- Sign up and copy your API key from the account.
- POST multipart to /api/v1/ocr with tool and file fields.
- Ready-made snippets are on the API docs page.
See /api-docs#snippets
n8n / Make / Zapier
- HTTP Request: POST to https://toolsy.tools/api/v1/ocr
- Header: Authorization: Bearer YOUR_KEY
- Body: multipart — field tool (text) and file (binary from previous step).
- Parse JSON → text. For receipts, parse CSV from text.
In Make: HTTP module → multipart/form-data body.
Try the tools
Time saved
| Scenario | Docs / month | Plan | Manual entry | Per document |
|---|---|---|---|---|
| Client pilot | up to 500 | API Starter$19/mo | — | $0.04 |
| Site with upload form | up to 3,000 | API Growth$49/mo | — | $0.02 |
| Several projects / steady flow | up to 15,000 | API Scale$119/mo | — | $0.01 |
API plans
Same plans for every scenario. One quota for API calls and embed widgets on your site.
- · Client picks their own plan — no reselling on your invoice
- · Quota is shared between widget and API on one key
- · “Powered by Toolsy” badge on the widget for now
Common questions
Who pays — me or the client?
Whichever is easier. Usually the client on their account: you create the widget and stay out of billing.
Can I remove the Toolsy badge?
Not yet. The block is neutral and stays out of the way of client branding.
Multiple domains?
Yes — list staging and production when you create the widget.
Can I try without a card?
Yes. After sign-up you get an API key with 40 recognitions per month. For steady volume, pick a plan in your account.
Is there an SDK?
No separate SDK — one endpoint. Snippets live on /api-docs; platform guides on the widget page.
Ready to try on your documents?
Start with one file in the tool — no card. For your site or app, set up the API in your account: instant key, 40 free recognitions/month after sign-up.