API
Everything you can do in the browser, you can do with curl. Authenticate with a bearer token from your keys page.
Authentication
curl -H "Authorization: Bearer dd_live_..." https://dashdrop.dev/api/pastes/ID
Your key identifies you as the owner, so private and password-protected pastes work without a password in the URL.
Create a paste
curl -X POST https://dashdrop.dev/api/pastes \ -H "Authorization: Bearer dd_live_..." \ --data-binary @notes.txt
Or with options as a form:
curl -X POST https://dashdrop.dev/api/pastes \ -H "Authorization: Bearer dd_live_..." \ -F "file=@list.txt" -F "visibility=private" -F "name=suppression-list" -F "expiry=1w"
Read metadata
curl -H "Authorization: Bearer dd_live_..." https://dashdrop.dev/api/pastes/ID curl -H "Authorization: Bearer dd_live_..." "https://dashdrop.dev/api/pastes/ID?content=true"
Download the raw file
curl -H "Authorization: Bearer dd_live_..." https://dashdrop.dev/r/ID -o file.txt
Supports ETag / If-None-Match — poll cheaply and only download when the file changed:
curl -H "Authorization: Bearer dd_live_..." \ -H 'If-None-Match: "abc123"' https://dashdrop.dev/r/ID # 304 Not Modified when unchanged
Update, rename, change visibility
curl -X PATCH https://dashdrop.dev/api/pastes/ID \
-H "Authorization: Bearer dd_live_..." \
-H "content-type: application/json" \
-d '{"content":"new content","name":"new-name","visibility":"private"}'
Delete
curl -X DELETE https://dashdrop.dev/api/pastes/ID -H "Authorization: Bearer dd_live_..."
Export everything
curl -H "Authorization: Bearer dd_live_..." https://dashdrop.dev/api/export -o backup.json
Rate limits
Requests are limited per minute by tier: anonymous 10/min, free account 30/min, Pro 120/min. Over the limit returns 429 with a Retry-After header — back off and retry. Use conditional requests (ETag / If-None-Match) when polling so unchanged files return 304 cheaply.
Errors
JSON with an error code and message. Common: 401 unauthorized, 403 forbidden, 404 not found, 413 too large, 429 rate limited.