{"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`, `/api/tables`, `/api/fields`, `/api/schema`, `/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 /schema":"Public web UI: browse the dataset schema (no sign-in)","GET /api-key":"API-key sign-in page (web UI: sign in to get a key)","POST /api/auth/google":"Sign in with a Google ID token (FedCM/GIS) → session key","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: restore a revoked account","POST /api/admin/registrations/{email}/revoke":"Admin: revoke an account","POST /api/query":"Submit a structured query — single-table (`table`) or composite (`legs`+`join_on`+`derived`) — 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":"Public: list the queryable DSA report tables","GET /api/fields?table=…":"Public: fields and operations for a table","GET /api/schema/{table}":"Public: 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","gr_removals","apple_requests","apple_national_security","github_metrics","snap_metrics","india_metrics","korea_metrics","ny_tos_stats","taiwan_metrics","turkey_metrics","tco_metrics","regional_metrics","ciirc_metrics","china12321_metrics","ovhcloud_metrics","ai_training_metrics","cser_metrics","singapore_metrics","esafety_bose_metrics","korea_network_act_metrics","japan_metrics","tiktok_cger_metrics","google_userdata_metrics","microsoft_metrics","linkedin_metrics","tiktok_metrics","discord_metrics","android_metrics","dsa_tdb_metrics"],"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}}