← All posts

Validation as a Pipeline Step: The Synthos API and Python SDK

July 4, 2026 · 5 min read

By Chiebidolu “Chiboy”, Engineering Lead at Genovo Technologies

The dashboard is where you learn Synthos; the API is where you actually use it. A validation habit only sticks when it lives inside the pipeline that produces the data — triggered by the export job, gating the training job, with nobody remembering to click anything.

The REST surface mirrors the platform one-to-one: initiate an upload, create a validation, poll status or ride the progress endpoint, fetch the report, request a warranty. Everything the UI does goes through the same API, which is the only reliable way to keep an API honest — we are our own heaviest client.

Keys, scopes, and knowing who did what

Programmatic access uses named API keys with scopes: your CI pipeline’s key is not your staging key, each shows its prefix, creation date, and last use, and each revokes independently. Full keys appear exactly once, at creation — a delivery pattern that removes the temptation to store retrievable secrets server-side.

For the return path, webhooks announce validation completions and failures with a delivery log you can actually inspect, so “did the event fire” is a lookup instead of an investigation. Polling works too; the progress endpoint exposes real pipeline stages rather than a synthetic percentage.

pip install synthos

The Python SDK wraps all of it in the shape ML engineers expect: upload a file or folder, kick a validation, block or async-poll for the verdict, and fail the pipeline when risk crosses your threshold. A validation gate should cost one line in a training script and a key in your secrets manager — anything more is friction, and friction is how data quality checks quietly stop happening.