{"endpoints":[{"path":"/","method":"GET","description":"Returns a list of all available endpoints","parameters":null,"request_body":null,"response":{"type":"application/json","schema":{"endpoints":"array of endpoint objects"}}},{"path":"/encode-secret","method":"POST","description":"Encode a secret into an image using LSB steganography","parameters":null,"request_body":{"type":"application/json","schema":{"secret":"string (required) - The secret message to encode","cover_image_path":"string (optional) - Path to cover image (currently not used, generates gradient)"}},"response":{"type":"image/png","description":"PNG image file with encoded secret"}},{"path":"/decode-secret","method":"POST","description":"Decode a secret from an image using LSB steganography","parameters":null,"request_body":{"type":"multipart/form-data","schema":{"image":"file (required) - PNG image file containing encoded secret"}},"response":{"type":"application/json","schema":{"secret":"string - The decoded secret message"}}},{"path":"/encrypt-file","method":"POST","description":"Encrypt a file and encode it into a steganography image","parameters":null,"request_body":{"type":"multipart/form-data","schema":{"file":"file (required) - File to encrypt and encode"}},"response":{"type":"application/json","schema":{"url":"string - URL to retrieve the decryption key (valid for 48 hours)","encoded_image":"string - Base64-encoded PNG image (600x600) with encrypted file encoded using LSB steganography"}}},{"path":"/encrypt-password","method":"POST","description":"Encrypt a password with Fernet and embed the key + ciphertext into a steganography image","parameters":null,"request_body":{"type":"application/json","schema":{"password":"string (required) - The password to encrypt"}},"response":{"type":"image/png","description":"PNG image file with the encrypted password embedded via LSB"}},{"path":"/decode-password","method":"POST","description":"Decode and decrypt a password image produced by /encrypt-password; falls back to raw decode for /encode-secret images","parameters":null,"request_body":{"type":"multipart/form-data","schema":{"image":"file (required) - PNG image file containing an encrypted password"}},"response":{"type":"application/json","schema":{"password":"string - The decrypted password","format":"string - 'password' for /encrypt-password images, 'secret' for /encode-secret images"}}},{"path":"/keys/{key_id}","method":"GET","description":"Retrieve a decryption key file by its ID","parameters":{"key_id":"string (required) - The key identifier (UUID)"},"request_body":null,"response":{"type":"application/octet-stream","description":"Key file as binary download"}},{"path":"/decrypt-image","method":"POST","description":"Decrypt an image file that contains an encrypted file encoded using LSB steganography","parameters":null,"request_body":{"type":"multipart/form-data","schema":{"image":"file (required) - PNG image file containing encrypted content encoded using LSB steganography","key_id":"string (required) - The key identifier (UUID) to retrieve the decryption key"}},"response":{"type":"application/octet-stream","description":"Decrypted file as binary download"}},{"path":"/health","method":"GET","description":"Health check endpoint","parameters":null,"request_body":null,"response":{"type":"application/json","schema":{"status":"string - Health status (e.g., 'healthy')"}}}]}