# Peeker Partner API > White-label Peeker's email infrastructure — Google Workspace and Microsoft 365 inboxes, deliverability monitoring, and self-healing domain swaps — from your own app. ## Docs - [Authenticating with an API key](https://docs.peeker.ai/api-reference/account/authenticating-with-an-api-key.md): Confirm an API key is valid. The response includes the key's environment (live or sandbox), the permission preset, and the partner record. Use this as your first request to verify your integration is wired up. - [Creating a bundle](https://docs.peeker.ai/api-reference/bundles/creating-a-bundle.md): Save an order template for reuse. Set the monthly sending volume and optionally a Google/Microsoft split. Skip the split to inherit Peeker's recommended values. - [Deleting a bundle](https://docs.peeker.ai/api-reference/bundles/deleting-a-bundle.md): If no order has ever used the bundle, it's removed. If any order has used it, it's archived instead so old orders still link correctly. - [Listing bundles](https://docs.peeker.ai/api-reference/bundles/listing-bundles.md) - [Retrieving a bundle](https://docs.peeker.ai/api-reference/bundles/retrieving-a-bundle.md) - [Updating a bundle](https://docs.peeker.ai/api-reference/bundles/updating-a-bundle.md) - [Changing user names](https://docs.peeker.ai/api-reference/domain-swaps/changing-user-names.md): Rename the First Name, Last Name, or email username (for example, name@domain.com -> fnamelname@domain.com) on an active order domain. The domain stays; only the inbox names change. Use this when the user's names are wrong or need to be changed. - [Creating a domain swap](https://docs.peeker.ai/api-reference/domain-swaps/creating-a-domain-swap.md): Replace one domain with another inside an existing order. `standard` retires the old domain immediately. `premium` keeps the old domain warm for 14 days alongside the new one. - [Listing domain swaps](https://docs.peeker.ai/api-reference/domain-swaps/listing-domain-swaps.md) - [Retrieving a domain swap](https://docs.peeker.ai/api-reference/domain-swaps/retrieving-a-domain-swap.md) - [Checking domain availability](https://docs.peeker.ai/api-reference/domains/checking-domain-availability.md): Submit up to 200 domains. The response indicates which are free to register and which are taken or premium. Premium, invalid, and errored domains return `available: false` with a `reason`. - [Importing a domain to Cloudflare](https://docs.peeker.ai/api-reference/domains/importing-a-domain-to-cloudflare.md): Bring in domains your customer registered elsewhere. This endpoint is capped at 25 domains per request. It returns the nameserver groups the customer must set before those domains can be used on an order. - [Listing domains](https://docs.peeker.ai/api-reference/domains/listing-domains.md): Returns the domains in your partner account. Use `category=inventory` for domains not yet on an order, or `category=connected` for domains in use. - [Retrieving a Cloudflare import](https://docs.peeker.ai/api-reference/domains/retrieving-a-cloudflare-import.md) - [Retrieving a domain](https://docs.peeker.ai/api-reference/domains/retrieving-a-domain.md) - [Retrieving a forwarding job](https://docs.peeker.ai/api-reference/domains/retrieving-a-forwarding-job.md) - [Setting domain forwarding](https://docs.peeker.ai/api-reference/domains/setting-domain-forwarding.md): Point a list of domains at one URL. The response starts an async job that returns per-domain success/fail results when complete. - [Cancelling an order](https://docs.peeker.ai/api-reference/orders/cancelling-an-order.md): Cancel the whole order, or just some of its domains. The order's status moves to `cancel_scheduled` until the cancellation finishes. - [Listing orders](https://docs.peeker.ai/api-reference/orders/listing-orders.md): Returns all orders, newest first. Filter by customer, bundle, or status. - [Retrieving an order](https://docs.peeker.ai/api-reference/orders/retrieving-an-order.md) - [Creating a user](https://docs.peeker.ai/api-reference/users/creating-a-user.md): Create a user record. Use this the first time you sell to a new person. `sequencer.client_id` chooses the Smartlead client route for future orders; send `null` or `""` to use your configured default/admin route. - [Deleting a user](https://docs.peeker.ai/api-reference/users/deleting-a-user.md): Mark the user as deleted. Their past orders, domains, and swaps stay attached for your records — nothing real is removed. - [Listing users](https://docs.peeker.ai/api-reference/users/listing-users.md): Returns a page of users. Filter by email or status. - [Retrieving a user](https://docs.peeker.ai/api-reference/users/retrieving-a-user.md) - [Updating a user's routing](https://docs.peeker.ai/api-reference/users/updating-a-users-routing.md): Change the user's email, name, or sequencer routing for future orders. Only the fields you send are changed. - [Authentication](https://docs.peeker.ai/authentication.md): Bearer keys, sandbox vs live, key rotation, and what an unauthorized response looks like. - [Best practices](https://docs.peeker.ai/best-practices.md): Seven things every Partner API integrator should know — sandbox, request IDs, errors, paging, idempotent orders, pending actions, webhook hygiene. - [Changelog](https://docs.peeker.ai/changelog.md): What shipped, when, and what changed for partners. - [Buying domains & ordering](https://docs.peeker.ai/guides/buying-domains.md): The default workflow — create a bundle, check domain availability, place an order, and listen for webhooks. Peeker buys the domains and runs DNS. - [How to implement domain swaps](https://docs.peeker.ai/guides/domain-swaps.md): Replace a degrading domain inside an active order — standard cuts over immediately, premium keeps the old one warm 14 days alongside the new one. - [Change forwarding URLs in bulk](https://docs.peeker.ai/guides/forwarding.md): Repoint many domains at a new forwarding URL in one call. Async per-domain job with completed and failed results. - [Importing domains & ordering](https://docs.peeker.ai/guides/importing-domains.md): A foundational workflow that automates the entire process of provisioning email infrastructure on a customer's existing domains — from search to import to order to fulfillment webhooks. - [Quickstart](https://docs.peeker.ai/guides/quickstart.md): The default integration flow — create a bundle, check domain availability, place an order, and listen for the webhook stream. - [Changing user names on active orders](https://docs.peeker.ai/guides/user-name-swaps.md): Rename the First Name, Last Name, or email username (for example, name@domain.com -> fnamelname@domain.com) on an active order domain. The domain stays; only the inbox names change. - [Email infrastructure, white-labeled.](https://docs.peeker.ai/index.md): Provision Google Workspace and Microsoft 365 inboxes for your customers without owning a single inbox. One POST /orders creates or reuses the user, routes to your provider, sets up domains, licenses, forwarding, and emits webhooks at every step. - [Creating an order & user](https://docs.peeker.ai/orders/create-order.md): Place an order for one customer. Pass either `user_id` or a `user` object, Smartlead routing and login credentials in `sequencer`, domains, and personas. Pick a saved bundle OR set custom Google/Microsoft license counts — not both. - [Rate limits](https://docs.peeker.ai/rate-limits.md): One flat 600/min lane per API key, with a clean 429 backoff path. - [Webhooks](https://docs.peeker.ai/webhooks.md): Signed JSON events for every async job — orders, domains, imports, and swaps. ## OpenAPI Specs - [openapi](https://docs.peeker.ai/openapi.yaml)