REST API
Described in OpenAPI, so you can generate a client in any language. Every pipeline run, SQL query, catalog entry, and policy decision is a resource with a stable URL.
Everything the console can do is reachable from code. An OpenAPI-described REST API drives pipelines, queries, and the catalog; the Python SDK wraps it for notebooks and jobs; the connector SDK adds sources the built-in connectors do not cover; and embeds put governed dashboards inside your own product. One set of API keys, the same policies as the console.
Described in OpenAPI, so you can generate a client in any language. Every pipeline run, SQL query, catalog entry, and policy decision is a resource with a stable URL.
A thin, typed wrapper over the REST API. Run pipelines, query Cortex SQL into pandas, and register datasets from a notebook or a scheduled job.
Write a source or sink in Python, declare its schema, and GeneFlow Connect handles scheduling, checkpoints, retries, and catalog registration for you.
The Cortex SQL editor and the Python SDK hit the same query service. The snippet below is illustrative — it shows the shape of the SDK, not a specific customer's data.
-- Incremental: only changed partitions recompute
CREATE MATERIALIZED VIEW gold.revenue_daily
PARTITIONED BY (order_date)
WITH (freshness = '5 minutes') AS
SELECT
o.order_date,
o.region,
SUM(o.amount) AS gross_revenue,
COUNT(DISTINCT o.customer_id) AS buyers
FROM silver.orders o
WHERE o.status = 'settled'
GROUP BY 1, 2;
-- Contract: halts publication on failure
ASSERT gross_revenue >= 0 ON VIOLATION FAIL;
| order_date | region | gross_revenue |
|---|---|---|
| 2026-08-01 | EMEA | 1,284,410 |
| 2026-08-01 | AMER | 2,910,338 |
| 2026-08-01 | APAC | 884,102 |
| 2026-07-31 | EMEA | 1,190,776 |
| 2026-07-31 | AMER | 2,744,015 |
from genedata import Client
gd = Client(api_key="gd_live_…") # keys are scoped per workspace
# Run a GeneFlow pipeline and wait for the run to finish
run = gd.pipelines.run("ops.restaurant_covers_daily")
run.wait() # raises on a failed assertion
# Query a governed table through Cortex SQL
rows = gd.sql.query(
"SELECT service_date, covers FROM gold.restaurant_covers_daily "
"WHERE service_date >= current_date - 7"
)
print(rows.to_pandas().head())API keys inherit the roles and data policies of the workspace that issued them. A query that would be masked in the console is masked through the SDK, and every call lands in the same audit log.
What engineers ask before wiring Genedata into their own code.
With API keys. Keys are issued per workspace from the console, carry the roles of the user or service account that created them, and can be rotated or revoked at any time. Pass the key as a bearer token on the REST API or to the SDK client.
Yes. Each key has a request budget per minute, and long-running work such as pipeline runs and large queries is queued rather than rejected. Limit headers come back on every response, and the SDK retries with backoff when it sees them.
Yes. Business Intelligence dashboards can be embedded with a signed, short-lived token that carries the viewer's identity, so row-level policies apply inside your app exactly as they do in the console.
At /resources/docs: the OpenAPI reference, Python SDK guides, the connector SDK walkthrough, and embed setup.