Python CLI
import requests
import time
import webbrowser
def device_flow_auth(): # Step 1: Request device code
response = requests.post(
'https://api.superbox.ai/v1/auth/device-flow/request',
json={'client_id': 'superbox-cli', 'scope': 'read write'}
)
data = response.json()
device_code = data['device_code']
user_code = data['user_code']
verification_uri = data['verification_uri_complete']
interval = data['interval']
# Step 2: Display code and open browser
print(f"\nVisit: {data['verification_uri']}")
print(f"Enter code: {user_code}\n")
webbrowser.open(verification_uri)
# Step 3: Poll for token
while True:
time.sleep(interval)
response = requests.post(
'https://api.superbox.ai/v1/auth/device-flow/token',
json={
'device_code': device_code,
'client_id': 'superbox-cli'
}
)
if response.status_code == 200:
token_data = response.json()
print("✓ Authentication successful!")
return token_data['access_token']
elif response.status_code == 428:
print("Waiting for authorization...")
elif response.status_code == 429:
# Slow down polling
interval += 5
else:
print(f"Error: {response.json()['message']}")
return None
# Usage
token = device_flow_auth()