{"name":"Kudo","description":"Send someone a short note of gratitude or affection as a link they open like a little gift.","base_url":"https://kudo.xcelens.club","for_agents":{"mcp":"https://kudo.xcelens.club/mcp","openapi":"https://kudo.xcelens.club/openapi.json","llms_txt":"https://kudo.xcelens.club/llms.txt","guide":"https://kudo.xcelens.club/agents","prefilled_compose_link":"https://kudo.xcelens.club/#to=NAME&message=TEXT&feelings=grateful,love&from=YOUR_NAME"},"privacy":"Kudos are end-to-end encrypted. Links carry their key after the #. Plaintext sent by agents is sealed on arrival and never stored readable. Send x-kudo-key to read a sealed kudo in plain words.","endpoints":{"create":{"method":"POST","path":"/api/kudos","body":{"to":"string","message":"string","from":"string?","feelings":"string[] | comma string","paper":"string?","unlockAt":"ISO date?","wallId":"string?","wallUrl":"string? full wall link, for walls made after encryption"}},"read":{"method":"GET","path":"/api/kudos/{id}"},"read_with_key":{"method":"GET","path":"/api/kudos/{id}","header":"x-kudo-key"},"status":{"method":"GET","path":"/api/kudos/{id}/status","header":"x-kudo-token"},"lines":{"method":"POST","path":"/api/kudos/{id}/lines","body":{"from":"string?","line":"string"}},"reaction":{"method":"POST","path":"/api/kudos/{id}/reaction","body":{"reaction":"love | grateful | joy | hug | cheer"}},"hearts":{"method":"POST","path":"/api/kudos/{id}/hearts","body":{"count":"1..12"}},"voice":{"method":"PUT","path":"/api/kudos/{id}/voice","header":"x-kudo-token, plus x-kudo-key for a sealed kudo","body":"audio bytes, content-type audio/*"},"walls":{"method":"POST","path":"/api/walls","body":{"title":"string"}},"wall":{"method":"GET","path":"/api/walls/{id}"}},"feelings":["grateful","love","proud","joy","warmth","hug","missing","cheer","calm","lucky"],"papers":["cream","peach","rose","butter","sage","sky","lilac","midnight"],"reactions":["love","grateful","joy","hug","cheer"],"limits":{"nameMin":1,"nameMax":40,"messageMin":2,"messageMax":3000,"feelingsMin":1,"feelingsMax":4,"heartsPerTap":12,"lineMax":200,"linesMax":12,"wallTitleMax":60,"wallKudosMax":200,"voiceMaxBytes":750000,"voiceMaxSeconds":45,"unlockMaxDays":366,"sealedHeadMax":2000,"sealedBodyMax":64000,"sealedLineMax":4000,"sealedTitleMax":2000,"sealedVoiceOverhead":28}}