Remote API
Limits and safetyBeta
What Fluffer enforces for every Remote API request: consent, time limits, the user’s power caps, Stop and Resume, and rate limits.
The Remote API moves a device on someone’s body. These rules hold for every request, whatever a caller sends.
#Consent stays with the user
- Nothing happens unless the user has turned on Remote control in the Fluffer app. Off means no command reaches their toy.
- Each key belongs to one user, controls only their toy, and can be revoked by them at any time.
- While the API is driving the toy, the app shows a banner. Stop ends it immediately and pauses remote control: motion commands are ignored until the user taps Resume.
#Everything stops by itself
- Every motion command has a duration, at most 15 minutes. Vibrate and rotate default to 5 seconds if you don’t say.
- When the time is up, the toy stops. Nothing can leave a toy running indefinitely.
#The user’s limits apply
- Strength is 0–1 (rotation −1–1) and is scaled by the power limits the user set in the app. You can’t go above them.
- The user can switch any motor off with its power button in the app. Commands for a motor that’s off don’t play it; their result is
partlyorrefusedwith reasonmotor_off. - Pattern parameters are kept within their ranges (see the reference).
#Rate limits
| Limit | Value |
|---|---|
| Requests per key | 900 a minute (429 with Retry-After beyond that) |
| Active keys per user | 10 |
| Request body | 8 KB |
#Keys
- Keys are shown once when created; Fluffer keeps only a fingerprint, so a lost key can’t be recovered: create a new one.
- Keys never expire on their own. Rotate by creating a new key and revoking the old one.
- Keep keys out of public code, browser pages and screenshots.
#Your responsibilities
- Only control a toy whose owner has given you their key and wants you to.
- Don’t build features that pressure people to share keys, or that keep going after someone says stop.
- Fluffer is for adults 18+. Follow the laws where you and your users are.