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.

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