api: return 409 when key already exists

Fix #61.
user: simplify string formatting