Every Tarkle Send file request has a public URL that can be loaded inside an <iframe> on your own website. Clients upload files without leaving your page. The iframe auto-resizes to fit the form content.
How the embed works
When the file request page loads inside an iframe, it sends postMessage events to the parent window with the type sb-height. This tells the parent page the current height of the form so the iframe can resize dynamically as content changes. No fixed height is needed. The resize observer fires whenever the document body dimensions change.
Getting the embed URL
Your file request has a public URL structured like:
text
https://files.your-domain.com/r/REQUEST_SLUG
To embed it, use that URL as the src of an iframe.
Basic embed code
xml
<iframe id="tarkle-request" src="https://your-domain.com/r/YOUR_REQUEST_SLUG" width="100%" frameborder="0" scrolling="no" style="border: none; width: 100%; min-height: 400px;" ></iframe> <script> window.addEventListener("message", function (e) { if (e.data && e.data.type === "sb-height") { var iframe = document.getElementById("tarkle-request"); if (iframe && e.data.height) { iframe.style.height = e.data.height + "px"; } } }); </script>
The id field in the message matches the request slug so you can safely embed multiple requests on the same page without conflicts.
Embedding multiple requests on the same page
If you have more than one request on a page, match by the e.data.id field:
xml
<iframe id="request-logos" src="https://your-domain.com/r/SLUG-A" width="100%" frameborder="0" style="border: none; width: 100%;" ></iframe> <iframe id="request-copy" src="https://your-domain.com/r/SLUG-B" width="100%" frameborder="0" style="border: none; width: 100%;" ></iframe> <script> window.addEventListener("message", function (e) { if (e.data && e.data.type === "sb-height") { var iframe = document.getElementById(e.data.id); if (iframe && e.data.height) { iframe.style.height = e.data.height + "px"; } } }); </script>
Each iframe receives its own height messages keyed by request ID.
Use cases for embedded file requests
Agency website intake page: Embed a file request on your client onboarding page. New clients upload briefs, brand assets, or signed agreements without leaving your site.
Freelancer portfolio site: Add an upload form directly on your contact or hire page. Clients drop files when they first reach out.
Studio project portal: Embed a per-project request on a project status page so collaborators always know where to drop deliverables.
Law firm client portal: Place a document submission form directly on your client-facing web page with your firm's branding. No third-party upload service shows.
Access settings and embeds
If you set the file request to Specific organization, the embed will prompt organization members to authenticate before uploading. A Public link request embeds cleanly with no login required. Choose based on whether you want open submissions or gated delivery.
