Sendbl
by @antonefremov
Create sendbl file-exchange links — request files from someone, send a file, check link status, list files in a link, or delete a link. Use when the user wan...
clawhub install sendbl📖 About This Skill
name: sendbl description: Create sendbl file-exchange links — request files from someone, send a file, check link status, list files in a link, or delete a link. Use when the user wants to share a file or collect files from a counterparty over a link. homepage: https://sendbl.com metadata: openclaw: primaryEnv: SENDBL_API_KEY requires: env: [SENDBL_API_KEY] emoji: "📎"
sendbl
Create and manage sendbl file-exchange links from the assistant. sendbl is a file-transfer API for LLM agents: links to collect files from someone, or to send a file to someone, with quotas and expiry.
Setup (one-time)
1. Sign in at
export SENDBL_API_KEY="sk_pat_..."
The skill will not work without SENDBL_API_KEY.
API base URL
All endpoints below are relative to:
https://api.sendbl.com/v1
All API key calls send the key as the x-api-key header.
Capabilities
1. Request files from someone
When the user wants someone else to upload files to them.
curl -sS -X POST "https://api.sendbl.com/v1/requestFiles" \
-H "x-api-key: $SENDBL_API_KEY" \
-H "content-type: application/json" \
-d '{
"expires_in_hours": 72,
"max_files": 10,
"purpose": "",
"message": ""
}'
Returns upload_url (share with the counterparty), download_url (for retrieval), owner_token (keep — required for delete and list-files), and upload_link_id.
After calling, tell the user to save owner_token and upload_link_id — they cannot be recovered later.
2. Send a file to someone
When the user wants to share a single file. This is the convenience wrapper.
curl -sS -X POST "https://api.sendbl.com/v1/sendFile" \
-H "x-api-key: $SENDBL_API_KEY" \
-H "content-type: application/json" \
-d '{
"recipient_name": "",
"filename": "",
"purpose": "",
"message": ""
}'
Returns presigned_upload_url (PUT the actual bytes there), download_url (share with recipient — null until upload completes), owner_token, and file_id.
The skill itself does not upload bytes. Instruct the user to PUT the file:
curl -X PUT --data-binary @ ""
3. Check link status (no auth)
curl -sS "https://api.sendbl.com/v1/uploadLinkStatus?upload_link_id="
Returns status (open / closed / expired), expires_at, file_count. Use when the user pastes a link and wants to know if it's still valid.
4. List files in a link
Requires the owner_token from step 1 (or 2).
curl -sS "https://api.sendbl.com/v1/uploadedFiles?token=&limit=50"
Returns the array of files with file_id and filename. To get a download URL for one of them:
curl -sS "https://api.sendbl.com/v1/fileDownloadLink?token=&file_id="
5. Delete a link
Requires the owner_token. Removes the link and all uploaded files.
curl -sS -X DELETE "https://api.sendbl.com/v1/uploadLink?token="
Confirm with the user before calling — this is irreversible.
Errors
401 unauthorized — missing or invalid x-api-key / owner_token. If the skill worked previously and now returns 401, the token has likely been revoked — instruct the user to issue a new one at 403 forbidden — token role mismatch (e.g., uploader token used for owner action).429 quota_exceeded — API key has hit the monthly link limit. Surface this verbatim; do not retry.404 link_not_found — link expired or was deleted.Conventions
owner_token and upload_link_id after creating a link — they're not retrievable later.download_url and upload_url as different audiences: upload URL goes to the sender, download URL goes to the recipient.expires_in_hours to 72 unless the user specifies otherwise.