{"name": "Renovara SQL API", "description": "Read-only SQL over Australian National Electricity Market (NEM) and east coast gas market data from AEMO, five-minute dispatch intervals since 2019. You send DuckDB SQL; a quick query answers in the same call, a slow one returns a statement id to poll.", "dialect": "DuckDB 1.5.6", "time_zone": "Market timestamps carry no time zone: plain TIMESTAMPs holding AEST wall-clock (Australia/Brisbane, UTC+10, no daylight saving). Columns ending _UTC are TIMESTAMP WITH TIME ZONE, real moments. The session runs in UTC, so now() is UTC.", "authentication": {"type": "oauth2_client_credentials", "token_url": "https://auth.api.renovara.co/oauth2/token", "scope": "renovara-sql/query", "token_request": "POST token_url, form body grant_type=client_credentials&scope=renovara-sql/query, with the client id and secret as HTTP Basic auth. Keep the token for its hour (expires_in); each one issued is billed.", "get_credentials": "https://renovara.co/sql-api", "agent_sign_up": "An agent can ask for a trial or credentials for its person: POST https://sql.api.renovara.co/v1/trial/requests {\"email\", \"agent\"}, show the person the link it returns, and poll GET /trial/requests/{device_code}. The person signs in and approves; nothing happens without them."}, "trial": {"days": 30, "query_hours": 10, "statements_per_day": 2000, "concurrent_statements": 5}, "links": {"openapi": "https://sql.api.renovara.co/v1/openapi.json", "guide": "https://sql.api.renovara.co/v1/guide?domain=nem", "gas_guide": "https://sql.api.renovara.co/v1/guide?domain=gas", "tables": "https://sql.api.renovara.co/v1/tables", "docs": "https://renovara.co/how-renovara-sql-works", "llms_txt": "https://renovara.co/llms.txt", "python_client": "https://pypi.org/project/renovara-sql/"}, "start_here": "Read the guide, list the tables, read a table's columns, then POST /statements. The knowledge routes need no credentials.", "statements": {"submit": "POST https://sql.api.renovara.co/v1/statements {\"sql\": \"SELECT ...\", \"wait_seconds\": 20}", "poll": "GET https://sql.api.renovara.co/v1/statements/{statement_id} until state is SUCCEEDED or FAILED", "cancel": "POST https://sql.api.renovara.co/v1/statements/{statement_id}/cancel", "retry_safely": "send an Idempotency-Key header on submit"}}