Use it with curl
Over Tor, through our onion. It saves your keys to decuff-account.json. On clearnet, set API=https://api.decuff.ai and drop --socks5-hostname.
Account and first request
API=http://vplomjjsd3hicadr6inrzu2uyykrqw4yc7wxjnjooj5smctmmpbhnkad.onion
decuff() { curl -s --socks5-hostname 127.0.0.1:9050 "$@"; }
TERMS=$(decuff $API/v1/service | sed 's/.*"termsVersion":"\([^"]*\)".*/\1/')
(umask 077; decuff $API/v1/accounts -H "Content-Type: application/json" \
-d "{\"acceptedTerms\":\"$TERMS\"}" > decuff-account.json)
KEY=$(sed 's/.*"key":"\([^"]*\)".*/\1/' decuff-account.json)
decuff $API/v1/chat/completions -H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-d '{"model":"decuffed-flash","messages":[{"role":"user","content":"Hello"}]}'
New accounts get only the free trial GET /v1/service lists as allowances.freeUnverifiedTokens (0 means none). A verified phone adds the free allowance (POST /v1/auth/phone/send-code, then /v1/auth/phone/verify with the file’s accessKey and "linkToCurrentAccount":true). GET /v1/service also shows which payment methods are open.