TINAC API is running. Endpoints: GET /challenge : Get a random challenge. Request body: none needed Example response: {"id":"unique-id-urlsafe-base64", "challenge":["random_challenge1","2", ... ,"50"], "steps":50} GET /challenge_img: Get an image challenge.The image is a compressed bundle of all frames. See source code for format. Request body: none needed Example response: {"id":"unique-id-urlsafe-base64", "challenge":{"width":W,"height":H,"count":N,"data":"base64-encoded-compressed-binary-blob"}, "steps":50} Use the same /verify endpoint to verify the answer. To decode the image, see the example.html implementation in github.com/itzmetanjim/tinac GET /challenge_audio: Get an audio challenge.The audio is a base64 encoded mp3 file array. Request body: none needed Example response: {"id":"unique-id-urlsafe-base64", "challenge":["base64-encoded-mp3-audio-data1","2", ... ,"50"], "steps":50} Use the same /verify endpoint to verify the answer. POST /verify : Verify an answer (case sensitive). Example request body: {"id":"unique-id-urlsafe-base64","answer":"abcd"} or {"id":"unique-id-urlsafe-base64","answer":"abcd", "index": 2} Example response: {"answer": true} or: {"answer": true, "index": true} or: {"error": "Invalid or expired ID/id parameter required/answer parameter required"}