OIO AUTH

Login with OIO.SO

Zero-KYC identity verification. No passwords. No email. No data shared.

Allow your users to authenticate using their OIO ID and OIO KEY. Your site receives only: verified status and username. No personal data. No keys. No tracking.

HOW IT WORKS
01 User enters their OIO ID and OIO KEY on your site
02 Your server sends them to POST /auth/verify
03 OIO.SO verifies and returns verified: true/false + username
04 You store the username — never the key
RULES FOR DEVELOPERS
✓ Never store the OIO KEY — verify and discard it immediately
✓ Never transmit OIO KEY over unencrypted connections (use HTTPS)
✓ Never share verification results with third parties
✓ Inform users you are using OIO Auth before asking for credentials
✓ Store only the username — not the OIO ID or any other credential
Misuse of OIO Auth violates platform terms and will result in account suspension.
API REFERENCE
ENDPOINT
POST https://oio.so/auth/verify
REQUEST BODY (JSON)
{
  "oio_id": "OIO-xxxxxxxx",
  "oio_key": "OIO-KEY-xxxx-xxxx-..."
}
RESPONSE — SUCCESS
{"verified": true, "username": "btc", "oio_id": "OIO-xxxxxxxx"}
RESPONSE — FAILURE
{"verified": false, "error": "invalid credentials"}
CODE EXAMPLES
cURL
curl -X POST https://oio.so/auth/verify \
  -H "Content-Type: application/json" \
  -d '{"oio_id":"OIO-xxxxxxxx","oio_key":"OIO-KEY-..."}'
JavaScript / Node.js
const res = await fetch('https://oio.so/auth/verify', {
  method: 'POST',
  headers: {'Content-Type': 'application/json'},
  body: JSON.stringify({ oio_id, oio_key })
});
const { verified, username } = await res.json();
if (verified) {
  // login user with username only — discard oio_key
}
Python
import requests
r = requests.post('https://oio.so/auth/verify',
  json={'oio_id': oio_id, 'oio_key': oio_key})
data = r.json()
if data['verified']:
  username = data['username'] # store only this
LIVE DEMO
This demo calls POST /auth/verify directly from your browser. Your credentials are not stored.
API Docs API Reference Create Account →