Generate, evaluate and recover automatically.
RenderProof orchestrates generation through Genblaze, evaluates each candidate, repairs documented failures and retries within hard limits.
POST /v1/generationsRenderProof evaluates generated media against explicit requirements, diagnoses failures, repairs prompts and retries generation before returning an approved asset with verified provenance.
Automated preflight and recovery for generative media.gen_6cc9039393ff2 linked attempts21 B2 objects$0.07 estimated
CONTRACT-COMPOSITIONComposition is below threshold.
9e443e90-d6b1-4153-b63e-9cbfbd714709
bc9abb6f-e41b-4a2f-8d96-f368626de331Media APIs normally return the first completed result. Production applications are left to detect incorrect composition, missing requirements, broken branding, invalid dimensions and unreadable text.
RenderProof converts those expectations into machine-testable quality gates and resolves recoverable failures before an asset reaches users, campaigns or downstream systems.
Every decision is bounded by explicit quality, attempt and budget policies.
Define explicit requirements and acceptance thresholds.
Run media generation through Genblaze.
Perform deterministic and multimodal checks.
Diagnose failures, repair the prompt and retry within budget.
Return the strongest passing asset with evidence.
RenderProof orchestrates generation through Genblaze, evaluates each candidate, repairs documented failures and retries within hard limits.
POST /v1/generationsKeep your current generation stack. Submit an existing asset for deterministic and multimodal checks without paying RenderProof for generation.
POST /v1/verificationsGenblaze provides generation orchestration, linked retries and canonical manifests. Backblaze B2 durably stores source inputs, every candidate, evaluations, repaired prompts, final reports and provenance.
gen_6cc9039393ffThe playground, run inspector and audit dashboard call the same versioned REST API available to product teams. Asynchronous status URLs and stable identifiers make the workflow straightforward to integrate.
Open the integration quickstartPOST /v1/generationscurl -X POST "https://api-production-9267.up.railway.app/v1/generations" \
-H "Content-Type: application/json" \
-H "X-Workspace-Id: ws_demo" \
-H "Idempotency-Key: launch-creative-042" \
-d '{
"contract": {
"version": "1.0",
"original_brief": "Premium product image for a cobalt-blue bottle.",
"prompt": "One cobalt-blue bottle on a warm cream pedestal.",
"output": {
"type": "image",
"format": "png",
"aspect_ratio": "1:1",
"width": 1024,
"height": 1024
},
"must_include": ["exactly one cobalt-blue reusable bottle"],
"must_avoid": ["people", "unauthorized generated words"],
"thresholds": {
"minimum_score": 0.86,
"prompt_adherence": 0.82,
"composition": 0.95,
"brand_match": 0.75,
"readability": 0.85
},
"execution": {
"maximum_attempts": 2,
"candidates_per_attempt": 1,
"fallback_providers": false,
"enabled_providers": ["gmicloud"],
"budget_ceiling_usd": 0.07
}
}
}'202HTTP/1.1 202 Accepted
Location: /v1/generations/gen_6cc9039393ff
Retry-After: 2
{
"id": "gen_6cc9039393ff",
"status": "queued",
"status_url": "/v1/generations/gen_6cc9039393ff",
"idempotent_replay": false
}Define what passing means. Let the pipeline handle the recovery.