pk_test_…), checks whether the domains are usable, imports any domains the customer already owns, places the order, and listens for webhooks. Sandbox orders complete quickly and never bill.
Real partner smoke test
Use this three-call sequence first when you are wiring the API from your own app:POST /domains/availability- confirm the domains are valid and usable.POST /domains/import- attach customer-owned domains to your partner inventory.POST /orders- create or reuse the customer by email and start provisioning.
google_licenses or microsoft_licenses is usually faster.
Steps in detail
1. Create your bundles
1. Create your bundles
A bundle is a saved order size. Send
name and monthly_sending_volume; optionally add google_percent and microsoft_percent. Bundles default to weekday-only sending (send_on_weekends: false) and 2 Google inboxes/domain. Use the returned bun_… ID on orders. The response also tells you how many Google and Microsoft domains the customer must pick.cURL
201 Created
2. Check domain availability
2. Check domain availability
Generate domain candidates yourself, or let the customer search. Send up to 50 per call. Available rows include price, renewal price, and
usable_for; unavailable rows include a reason.cURL
200 OK
3. Submit the order
3. Submit the order
POST /orders provisions everything in one call. You pass:bundle_id- the bundle from step 1; resolves the license mix.user- an email to create/reuse, or an existingusr_…user ID.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.personas- names and requiredprofile_picture_urlkeys used to generate inbox names.
sequencer.login_email and sequencer.login_password; a Smartlead client ID or API key alone is not enough for Peeker to submit the provider work.Re-sending the exact same body returns the original order - no second charge, no duplicate provisioning. Orders dedupe for 24 hours.cURL
200 OK
4. Listen for the webhook
4. Listen for the webhook
Configure your endpoint in the Partner portal → Webhooks before placing the order. Events fire in this sequence:The
order.completed payload is the full order. Verify the signature before trusting any payload.Webhook · order.completed
Live orders return
order.in_progress immediately. Google and Microsoft orders typically complete within 24 hours - Google can take up to 48 hours when domains need to run through Peeker’s recovery flow. Sandbox completes in seconds.What’s next
Importing domains & ordering
The separate flow for domains the customer already owns - import, not availability check.
Buying domains & ordering
More detail on the registrar-sourced order path.
Best practices
Rate limits, errors, paging, idempotency, pending actions.