Build on top of Trinsfer
Automate file delivery from your CI/CD pipeline, embed speed tests into your dashboards, manage user storage in bulk. Our REST API is JSON, predictable, and works with curl, Postman or any HTTP client.
Free
For developers and indie hackers experimenting with the API.
- 2 API keys
- 60 req/min · 5 000 req/month free
- Max transfer expiration: 7 days
- $0.001 / request beyond quota
Pro Monthly
For teams shipping production workloads with growing volumes.
- 10 API keys
- 600 req/min · 50 000 req/month free
- Max transfer expiration: 30 days
- $0.0005 / request beyond quota
Pro Annual
For power users who need long retention and the cheapest per-request price.
- 100 API keys
- 3 000 req/min · 500 000 req/month free
- Max transfer expiration: 395 days
- $0.0002 / request beyond quota
Authentication
All requests must be authenticated with a Bearer token (Authorization: Bearer tk_xxxxxxxx_…). Generate keys at /profile#api-keys. Every reply carries X-RateLimit-* and X-Quota-* headers so SDKs can self-throttle.
Transfers
transfers:readList your transfers (most recent first). Supports ?limit=20&offset=0.
transfers:writeCreate a transfer envelope. Returns token, upload_url (use the standard /upload.php flow with chunked TUS) and download_url.
Retrieve transfer metadata + files list + signed per-file download URLs.
Update title, message, recipient_email, expires_days.
Soft-delete a transfer (files purged after the grace period).
Speed tests
speed:readList your stored speed test results.
speed:writeSubmit a result: ping_ms, jitter_ms, download_mbps, upload_mbps, public?, display_name?.
Retrieve one of your speed test results.
Delete a single result from your history.
Account & usage
Returns current plan, requests-per-minute ceiling, monthly free quota and any overage you owe.
Example: list transfers with curl
# Token generated at /profile#api-keys curl https://trinsfer.com/api/v1/transfers \ -H "Authorization: Bearer tk_a1b2c3d4_…" # 200 OK — every response includes throttling headers X-RateLimit-Limit: 60 X-RateLimit-Remaining: 59 X-Quota-Limit-Month: 5000 X-Quota-Used-Month: 1217 X-Quota-Overage: 0 { "data": [ ... ], "pagination": { "limit": 20, "offset": 0, "total": 87 } } # Detail / update / delete using path params curl https://trinsfer.com/api/v1/transfers/a3k9zd -H "Authorization: Bearer tk_…" curl -X PATCH https://trinsfer.com/api/v1/transfers/a3k9zd -H "Authorization: Bearer tk_…" -d '{"title":"Updated"}' curl -X DELETE https://trinsfer.com/api/v1/transfers/a3k9zd -H "Authorization: Bearer tk_…"
Pay-per-use billing
Each plan includes a free monthly request quota. Past that, every request adds a tiny pay-per-use charge that you can settle on demand from /profile#api-keys: Free $0.001 / req · Pro Monthly $0.0005 / req · Pro Annual $0.0002 / req. Unpaid overage above $20 returns 402 Payment Required with a pay_url pointing to your profile.
Transfer expiration policy
Trinsfer enforces a maximum retention based on your active plan. Requesting expires_days beyond your limit returns 422 expiry_too_long with the maximum allowed:
- Free → up to 7 days
- Pro Monthly → up to 30 days
- Pro Annual → up to 395 days
Webhooks
Subscribe to events on Pro plans: transfer.created, transfer.downloaded, transfer.expired, transfer.password_failed, speed_test.submitted. Payloads are signed with HMAC-SHA256 using your webhook secret — verify the X-Trinsfer-Signature header on every request.
Generate your first API key
Sign in and head to your profile to generate keys and read the full developer guide with code samples in cURL, JavaScript, Python and PHP.