{"name":"DSA VLOP Transparency Query API","dataset":"EU Digital Services Act VLOP/VLOSE transparency reports (tables 3–11)","period":"2025-07-01/2025-12-31","pattern":"async-job","query_style":"TikTok-Research-API-style structured parameters (no SQL accepted); pick a `table` (GET /api/tables)","auth":"X-API-Key header required for the job API; public: `/`, `/api`, `/api/overview`, `/api/explore`, `/docs`, `/openapi.json`","endpoints":{"GET /":"Public VLOP transparency dashboard (web UI)","GET /api/overview":"Public headline aggregates powering the dashboard (no auth)","GET /api/explore/options":"Public: tables + their dimensions/measures for the query builder","POST /api/explore":"Public: run a bounded structured query inline (no auth, row-capped, rate-limited)","POST /api/ask":"Ask in natural language (requires an API key) — an LLM writes the structured query (if enabled)","GET /portal":"Researcher portal (web UI: sign in, get a key, browse the schema)","POST /api/auth/google":"Sign in with a Google ID token (FedCM/GIS) → session key, or pending approval","POST /api/portal/register":"Issue an API key without sign-in (disabled when ALLOW_DEMO_KEYS=0)","DELETE /api/portal/key":"Revoke your session / portal-issued key","GET /api/admin/registrations":"Admin: list researcher registrations","POST /api/admin/registrations/{email}/approve":"Admin: approve an account","POST /api/admin/registrations/{email}/revoke":"Admin: revoke an account","POST /api/query":"Submit a structured query over a `table` (optional callback_url webhook), returns 202 + job_id","GET /api/jobs":"List your jobs","GET /api/jobs/{job_id}":"Job status (your jobs only)","GET /api/jobs/{job_id}/result?format=json|csv":"Result (only when status=done)","GET /api/jobs/{job_id}/download?...":"Secure result download via a signed, expiring URL (no key)","DELETE /api/jobs/{job_id}":"Cancel a queued/running job, or remove a finished one","GET /api/tables":"List the queryable DSA report tables","GET /api/fields?table=…":"Fields and operations for a table","GET /api/schema/{table}":"Field registry for a report table","GET /healthz":"Liveness probe","GET /readyz":"Readiness probe (checks DB connection)","GET /version":"Deployed build identifier (commit SHA)","GET /metrics":"Prometheus metrics (no auth)","GET /docs":"Interactive Swagger UI"},"tables":["t3_member_state_orders","t4_notices","t5_own_initiative_illegal","t6_own_initiative_tos","t7_appeals_recidivism","t8_automated_means","t9_human_resources","t10_amar","t11_qualitative"],"row_limit":100000,"worker_threads":4,"store":"redis","auth_config":{"google_signin":true,"google_client_id":"694282548149-5ro3pokkjgp8d4ht5n8jmm8o9gqug961.apps.googleusercontent.com","demo_keys":false},"features":{"nl_query":true}}