The default flow for selling email infrastructure: set up a bundle once, then for each customer check domain availability, place an order, and listen for webhooks. Peeker buys the domains from a partner registrar, runs DNS on our Cloudflare, and provisions the inboxes — the customer never touches a registrar or sets a nameserver.Documentation Index
Fetch the complete documentation index at: https://docs.peeker.ai/llms.txt
Use this file to discover all available pages before exploring further.
Steps in detail
1. Create your bundles
1. Create your bundles
A bundle is a saved order template sized by monthly sending volume. Create the bundles you want to offer customers once —
POST /bundles needs a name and monthly_sending_volume. Optionally set a google_percent / microsoft_percent split; skip it to inherit Peeker’s recommended mix.You reference the returned bun_… ID on every order — the bundle resolves the Google/Microsoft license counts and the domain split for you.cURL
201 Created
2. Check domain availability
2. Check domain availability
Generate domain candidates yourself, or let the customer type them in a search box. Send up to 25 per call to
POST /domains/availability. Each available: true row returns the domain name, price_cents (first-year registration cost), renewal_price_cents (yearly renewal cost), and usable_for (Google, Microsoft, or both). Unavailable rows return available: false with a reason.cURL
200 OK
3. Submit the order
3. Submit the order
POST /orders provisions everything in one call — Peeker buys the domains, runs DNS, and creates the inboxes. It accepts either a user object or an existing user_id, plus Smartlead routing and credentials in sequencer. You pass:bundle_id— the bundle from step 1; resolves the license mix and domain split.useroruser_id— create/reuse the customer by email, or attach the order to an existing Peeker user.sequencer— Smartlead routing plus the login credentials Peeker uses internally for provider submission.forwarding_url— the default redirect for every domain in the order.domains— the available domains you picked, selected to satisfy the bundle’s Microsoft split.users— the personas (first/last names) used to generate inbox names.
cURL
200 OK
domain_already_in_active_order or internal_error. You won’t be charged.4. Listen for the webhooks
4. Listen for the webhooks
Configure your endpoint in the Partner portal → Webhooks before placing the order. Registrar-sourced domains skip the nameserver step (Peeker controls DNS), so events fire in this sequence:The
order.completed payload is the full provisioned order — drop it straight into your UI. Verify the signature before trusting any payload.Webhook · order.completed
What’s next
Importing customer domains
The separate flow for domains the customer already owns at another registrar.
Change forwarding URLs in bulk
Repoint many domains at a new URL after the order is live.