SendFrame for developers and agents
Make “send it” a call that is safe unattended.
SendFrame is a safe send layer for AI-generated work. A program or an agent uploads a
.pptx, a PDF or an HTML artifact; SendFrame scans it, redacts what should not reach a
customer from the bytes it serves, and gives each named recipient their own email-verified link with
engagement tracking. Works with output from Gamma, Claude, Copilot and other AI tools.
Connect from Claude
Add SendFrame as a connector in Claude or Claude Code and send with a sentence. OAuth, no key to paste. Setup, the tools, example prompts and limits.
Call the REST API
Every route, with the scope it needs. Upload, scan, send, and read back exactly what a recipient received.
Quick start: three calls to a safe send
Create a key at Settings → API keys in the app. Choose Read and send; a read-only key cannot upload, scan or mail anything, which is the point of it.
1. Upload. Multipart, a file part and an optional title. The
artifact comes back pending: nothing has been checked yet.
curl -X POST https://app.getsendframe.com/api/v1/artifacts \ -H "Authorization: Bearer sf_live_…" \ -F file=@q3-review.pptx -F title="Q3 review"
2. Scan and review. Asynchronous: it returns at once, and you poll the versions until the
newest one reads ready or failed.
curl -X POST https://app.getsendframe.com/api/v1/artifacts/{id}/process \
-H "Authorization: Bearer sf_live_…"
curl https://app.getsendframe.com/api/v1/artifacts/{id}/versions \
-H "Authorization: Bearer sf_live_…" # until "ready"
3. Send. Named recipients, one verified link each. Anything flagged high-severity is
redacted from what they receive before the link goes out, and the response says how many redactions there
are. Pass an idempotencyKey so a retry cannot send twice.
curl -X POST https://app.getsendframe.com/api/v1/artifacts/{id}/share \
-H "Authorization: Bearer sf_live_…" \
-H "content-type: application/json" \
-d '{"recipients":["jane@example.com"],"idempotencyKey":"q3-review-2026-09-03"}'
The response carries shareId, a links entry per recipient, the
redactions summary and a delivery report. GET /shares/{id}/delivered
returns exactly what a verified recipient receives, produced by the same function the viewer calls, so you can
confirm for yourself that the redacted content is absent from the served bytes.
Every plan, including free
The API and the MCP server are on every plan with the send scope included. The caps are the control: the free plan allows 10 sends a month to up to 5 recipients each, and 30 artifact operations a day (an upload and a scan are two). Paid plans have no monthly send cap and 200 operations a day. Every key is limited to 100 requests a minute across the API and the MCP server together.
Where things are
Base URL https://app.getsendframe.com/api/v1.
GET /api/v1returns the live route table, so a client never has to guess.MCP server https://app.getsendframe.com/mcp. OAuth from Claude, or the same API key as a bearer from anything else.
Keys and connections API keys are credentials you mint; Connected apps are applications you approved, and either can be revoked in one click, effective immediately.
Support support@getsendframe.com.