Developers
Optikos exposes 47 REST endpoints + a thin Python SDK. Every response carries citations to primary sources; every value resolves to a row you can verify.
Python SDK
Thin client over the REST API. Typed objects, no magic methods.
pip install optikos-sdk
PyPI: optikos-sdk · Python ≥ 3.10
REST API
Base URL for all 47 endpoints:
https://euoptikos.com/api/v1/optikos
JSON envelopes ({ data, meta, error? }), tier-gated, RLS-isolated.
Authentication
Generate an API key at /account/api-keys (Professional tier or higher). Pass it as a Bearer token:
Authorization: Bearer sk_optikos_xxxxxxxxxxxxxxxx
- Professional: 1 key, 10,000 calls/day
- Institutional: 10 keys, 100,000 calls/day
- Anonymous (no key): public-shared data only, rate-limited per IP
curl examples
curl -H "Authorization: Bearer $OPTIKOS_API_KEY" \ https://euoptikos.com/api/v1/optikos/regions/DE300/profile
curl -H "Authorization: Bearer $OPTIKOS_API_KEY" \ 'https://euoptikos.com/api/v1/optikos/compare?regions=ES,PL&dataset=frontex_eastern_borders_pl'
curl -X POST -H "Authorization: Bearer $OPTIKOS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"region_nuts_code":"DE300","briefing_type":"profile_summary"}' \
https://euoptikos.com/api/v1/optikos/briefingscurl -H "Authorization: Bearer $OPTIKOS_API_KEY" \ https://euoptikos.com/api/v1/optikos/export/bulk/demo_r_pjangrp3.csv -o berlin_pop.csv
Python SDK example
from optikos_sdk import OptikosClient
client = OptikosClient(
base_url="https://euoptikos.com",
api_key="sk_optikos_..." # Generate at /account/api-keys
)
# Pull V-DEM liberal democracy for DE, FR, PL across all years
data = client.indicators.get(
dataset_code="vdem_liberal_democracy",
nuts_codes=["DE", "FR", "PL"],
)
for row in data.values:
print(f"{row.period} {row.dimensions} = {row.value}")OpenAPI specification
The backend auto-generates an OpenAPI 3 spec for all 47 endpoints. Public exposure is tracked for a follow-up release — for now, the canonical reference is this page plus the SDK source. Email admin@society-intelligence.com if you need a copy of the spec for an internal client generator (R / Stata / Go / etc.).
Higher tier, higher throughput
The API surface is the same on every tier. What changes is rate-limit + access to AI products + bulk export.