Managed Postgres with instant branching
Branch your production database for every pull request. Free tier available.
Your product asks Genesis for a sponsored card at a moment you choose. Genesis returns one clearly labeled card, or nothing. The request contract Picasso uses refuses prompts, source code and file paths. Brands use the same network to reach developers inside AI tools.
Create a free account and get test keys. Genesis staff approve each app before it serves live.
Branch your production database for every pull request. Free tier available.
Returned with the card
Every card Genesis returns carries disclosure: "sponsored". The publisher has to show the label. Genesis cannot render it for them.
Title up to 120 characters, description up to 500, call to action up to 60, plus the brand. Fields outside the contract are dropped, so your UI renders a known shape.
Impression and click URLs are hosted by Genesis as encrypted, signed tokens that expire (30 minutes by default). Redirects refuse localhost and private addresses.
Picasso is an AI coding agent. Genesis serves sponsored cards into it through the same typed, disclosure-first API a new publisher would use.
Picasso is our featured publisher, serving Genesis cards today. Read how the Picasso integration works or visit Picasso.
For publishers
Call Genesis only where your product allows it. Set category controls, get a typed card back with its disclosure and signed tracking, and fall back quietly when there is no fill. Production serving is approved per app, and third-party publisher payouts are not switched on yet.
For advertisers
Create an Offer Unit with copy, destination, budget and goals. After review, it competes in a quality-weighted auction inside AI tools. Bids are CPM or CPC, and each campaign is activated by Genesis staff.
A typed sponsored card with its disclosure, and tracking links that Genesis signs. The publisher decides where and how to render it.
Branch your production database for every pull request. Free tier available.
Returned with the card
Every card Genesis returns carries disclosure: "sponsored". The publisher has to show the label. Genesis cannot render it for them.
Title up to 120 characters, description up to 500, call to action up to 60, plus the brand. Fields outside the contract are dropped, so your UI renders a known shape.
Impression and click URLs are hosted by Genesis as encrypted, signed tokens that expire (30 minutes by default). Redirects refuse localhost and private addresses.
Every offer request passes the same stages. Each one leaves something you can check in the API contract or the audit trail.
Your product sends one request with a placement, locale, product details and a consent state. Context is capped at 2,048 bytes.
POST /v1/offers
Requests that carry private fields are rejected before anything is matched. A user who has opted out is blocked before serving, and the check fails closed.
20 private fields rejected
Offers are filtered by the publisher's category allow and block lists, review state and placement. Sensitive categories are blocked by default.
Controls applied before ranking
Each bid is multiplied by relevance, trust and quality, then cleared at a weighted second price. Every score and every exclusion reason is logged.
Audit trail per decision
A billable card needs a budget hold before it is returned. If a batch fails, every hold is released.
No hold, no card
The card comes back with hosted impression and click URLs, signed and encrypted, with the clearing price fixed in the decision.
gtrk1 tokens, 30 min default
Bounded by a deadline. The demand lookup is raced against a time limit (250 ms in production). A late answer becomes no fill, so your product never waits on an ad. The response carries a per-stage Server-Timing header.
Money counts, and so does the offer. Relevance, trust and quality each multiply the bid, so a useful card from a trusted advertiser can outrank a larger bid for a poor one. Every candidate's score and every exclusion reason is stored in an auction log.
rank = bid value × relevance × trust × quality
// the winner pays a weighted second price,
// signed into the decision so it cannot changeLive pricing is CPM and CPC. For click bids, the expected click-through rate is a fixed default today, not a rate learned per publisher.
Review state, budget, the publisher's category controls and placement fit.
Bid value multiplied by relevance, trust and quality.
Disclosure, signed tracking links and the fixed clearing price.
Genesis enforces data minimization at the API. A request that breaks the rules is rejected, and every card that comes back is labeled. There are no third-party cookies and no cross-site profiles.
Genesis has been in production since 2 November 2026 and is still in beta. This is the line between what runs today and what is built but switched off.
Picasso, an AI coding agent, is our featured publisher. Genesis serves sponsored cards into Picasso through the typed offers API, including house campaigns for Picasso's own promos. Any AI product can join: sign up, build in test mode and go live once your app is approved.
Not yet. Third-party publisher payouts are not switched on and the revenue-share terms are not published. You can sign up, get test keys and build the integration; Genesis staff approve each app before it serves live.
Under the contract Picasso uses: a placement, locale, product details, a consent state and up to 2,048 bytes of context. Prompts, source code, file paths, terminal output, repo URLs and secrets are rejected. On every request, plaintext email addresses and phone numbers are rejected, and a frequency key is accepted only with granted consent. Other integrations use the standard offers request, where context is optional: send categories, not conversations.
Genesis returns no fill and your product carries on. The demand lookup is also raced against a deadline (250 ms in production), so a slow answer becomes no fill instead of a delay.
Every card Genesis returns is typed as sponsored. The publisher has to render the label; Genesis cannot force that, so the publisher policy requires it.
No. Requests are initiated by the publisher, identifiers are consent-gated, and there is no cross-site profile.
Any advertiser can create an account and submit an Offer Unit. Genesis reviews it before it can serve. Bids are CPM or CPC; pay-per-conversion models are built but not switched on. Funding is by manual deposit confirmed by Genesis.
Create a free account, get test keys, and send your first offer request. You can move to production once Genesis has approved your app.