DevelopersGENEDATA / 01

Build on Genedata

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.

Shared context · Lineage · Governance
Connected
Your sources
Data sources
Business context
Policy & access
Connected intelligenceGenedata
Governance
Business impactDecisions & action
Shared contextLineageGovernance
+Illustrative workflow01 / 03
1 / 3
01

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.

02

Python SDK

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.

03

Connector SDK

Write a source or sink in Python, declare its schema, and GeneFlow Connect handles scheduling, checkpoints, retries, and catalog registration for you.

The same engine, two entry points

Write SQL in the console, or call it from code

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.

Develop / revenue_daily.sqlFormatRun
-- 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;
Succeeded1,284 rows · 340ms · 2 partitions rebuilt
order_dateregiongross_revenue
2026-08-01EMEA1,284,410
2026-08-01AMER2,910,338
2026-08-01APAC884,102
2026-07-31EMEA1,190,776
2026-07-31AMER2,744,015
Python SDKexample.py
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())
33 live · 84 cataloguedConnectors
The next step

Code and console, one perimeter.

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.

FAQ

Developers, answered.

What engineers ask before wiring Genedata into their own code.

How do I authenticate?

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.

Are there rate limits?

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.

Can I embed dashboards in my own product?

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.

Where do the docs live?

At /resources/docs: the OpenAPI reference, Python SDK guides, the connector SDK walkthrough, and embed setup.