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-..."
}
"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-..."}'
-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
}
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
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.