1. Client ID Requests
InboxKit
  • Introduction
  • Order
    • Place Order
      POST
  • Webhook
    • Events: OAuth Consent & Client ID Changes
      POST
    • Event: Mailbox Status Changed
      POST
    • Webhook Integration & Signature Verification
      POST
    • Event: Domain Status Changed
      POST
  • Account
    • Get account details
      GET
  • Workspaces
    • List workspaces
      GET
    • Create workspace
      POST
    • Invite Member to Workspace
      POST
    • Get workspace details
      GET
    • Update workspace
      PUT
    • Delete workspace
      DELETE
    • Update workspace webhook
      POST
  • Domains
    • Domain Renewals
    • List Client ID Requests
      GET
    • Check if domain is banned from registration
      GET
    • Check domain availability
      GET
    • Register domains
      POST
    • List domains
      POST
    • List assignable domains
      GET
    • Remove domains
      POST
    • Set domain forwarding
      POST
    • Set catch-all email
      POST
    • Remove catch-all email
      DELETE
    • Get nameservers for domain connection
      POST
    • Check nameservers propagation
      POST
    • Check Workspace Availability
      POST
    • Set DMARC Configuration
      POST
    • Remove DMARC Configuration
      DELETE
    • Regenerate Domain Nameservers
      POST
    • Request Domain Renewal
      POST
    • Check Renewal Status
      GET
    • Update Domain Privacy
      POST
    • Update Domain Contact Details
      POST
  • Cloudflare Domains
    • Connect Cloudflare Domains
    • List Connected Cloudflare Domains
    • Get Domain Details
    • Disconnect Cloudflare Domains
    • List Cloudflare Zones
  • Mailboxes
    • List mailboxes
    • Add or update signature for mailboxes
    • Delete signature for mailboxes
    • Show mailbox credentials
    • Get mailbox details
    • Buy mailboxes
    • Check mailbox status
    • Cancel mailboxes
    • Update mailbox
    • Update mailbox profile picture
    • Generate TOTP
    • Change username
    • Change password
    • Check mailbox availability
    • Get Failure Reason
    • Uncancel mailboxes
    • Resetup mailboxes
    • Get resetup status
  • DNS
    • Get DNS records
    • Add DNS records
    • Update DNS records
    • Delete DNS records
    • Verify DNS records
    • Repair DNS records
  • Sequencers
    • Export mailboxes status
    • List sequencer platforms
    • Get sequencer tags
    • List sequencers
    • Export mailboxes
    • Add sequencer
    • Update sequencer
    • Delete sequencers
    • Verify Lemlist OTP
  • Billing
    • Get pricing plans
    • Add Credits to Wallet
    • Check Payment Status
    • Get subscription details
    • Change subscription plan
    • Cancel subscription
    • Get wallet details
    • Update auto top-up settings
    • Get billing portal link
    • Get Wallet Logs
  • Warmup
    • List Warmup Subscriptions
    • Get Warmup Subscription Details
    • Add Warmup to Mailboxes
    • Pause Warmup for Mailboxes
    • Resume Warmup for Mailboxes
    • Cancel Warmup for Mailboxes
    • Get Warmup Statistics
    • Get Warmup Pricing
  • Client ID Requests
    • Initiate Client ID Request
      POST
    • Get Client ID Request Status
      GET
    • List Client ID Requests
      GET
  • Mailbox Forwarding
    • Setup Email Forwarding
    • Update Email Forwarding
    • Remove Email Forwarding
    • List Forwarding Jobs
  • Consent Request
    • Initiate Consent Request
    • Get Consent Request Status
    • List Consent Requests
  • Tags
    • Assign tags to domains or mailboxes
    • Get all tags
    • Create a new tag
    • Delete a tag
  • Prewarm
    • Search Domains
    • Search Mailboxes
    • Buy Prewarmed Mailboxes
    • Check Order Status
    • Check Availability
  • Inbox Placement
    • Tests
      • Create Test
      • List Tests
      • Get Test Results
    • Scheduled Tests
      • List Scheduled Tests
      • Get Scheduled Test
      • Pause Scheduled Test
      • Resume Scheduled Test
      • Delete Scheduled Test
  • InfraGuard
    • InfraGuard - Subscriptions
      • List protected domains
      • Get subscription details
      • Enable InfraGuard for domains
      • Cancel InfraGuard for domains
      • Get workspace statistics
      • Get pricing info
    • InfraGuard - Monitoring
      • Get blacklist check history
      • Get DNS check history
      • Get current bounce metrics
      • Get bounce check history
    • InfraGuard - Settings
      • Update subscription settings
      • Trigger manual check
    • InfraGuard - Alerts
      • List alerts
      • Acknowledge an alert
      • Resolve an alert
    • InfraGuard - Action Items
      • List action items
      • Get action item statistics
      • Resolve an action item
      • Dismiss an action item
  • Email Insight
    • Email Insights - Workspace
      • Get Workspace Overview
      • Get Mailboxes Health
      • Get High Bounce Mailboxes
      • Get Workspace Activity
      • Get Workspace Daily Stats
      • Get Workspace Campaign Reply Rate
    • Email Insights - Mailbox
      • Get Mailbox Stats
      • Get Mailbox Deliverability
      • Get Mailbox Health
      • Get Mailbox Trends
      • Get Mailbox Activity
      • Get Mailbox Bounce Events
      • Get Mailbox Top Recipients
      • Get Mailbox Top Recipient Domains
      • Get Mailbox Message Breakdown
      • Get Mailbox Subject Analysis
      • Get Mailbox Reply Time Heatmap
      • Get Mailbox Reply Rate By Domain
      • Get Mailbox Velocity Overlay
      • Get Mailbox First Touch Funnel
      • Get Mailbox Warmup Stats
      • Get Mailbox Auth Failures
      • Get Mailbox Sending IP Breakdown
      • Get Mailbox Recipient ESP Breakdown
      • Get Mailbox Body Templates
  • Domain Renewals
  • Schemas
    • Schemas
      • WebhookPayload
      • DomainStatusWebhook
      • Tag
      • DomainEventData
      • MailboxStatusWebhook
      • MailboxEventData
      • Domain
      • Mailbox
      • ChangeDetails
      • WebhookResponse
      • ErrorResponse
  1. Client ID Requests

Initiate Client ID Request

POST
https://api.inboxkit.com/v1/api/mailboxes/client-id-request/initiate
Maintainer:Not configured
Queues a client ID authorization request for a domain. The domain must exist in the workspace and have an admin mailbox.
The platform is taken from that admin mailbox, and the two platforms authorize an app differently:
GOOGLE - the client ID is marked as a trusted app in Google Admin. Set delegated to true to register it under domain-wide delegation with explicit OAuth scopes, which must be full https:// Google scope URLs.
MICROSOFT / AZURE - the app is granted tenant-wide admin consent. client_id must be a GUID (an Entra application id), scopes are always applied, and delegated is rejected because there is only one grant mechanism. Scopes are permission names (Mail.Send) or resource-qualified (https://outlook.office365.com/SMTP.Send).

Delegated scopes vs application permissions#

Microsoft has two kinds of permission, and they are not interchangeable:
scopes grants delegated permissions, which apply when a signed-in user acts through the app.
app_roles grants application permissions, which apply when the app acts as itself using a client-credentials (app-only) token.
If your integration authenticates as the application rather than as a user, you need app_roles. A token issued through the client-credentials flow carries only application permissions, so an app that was granted delegated scopes alone has an empty roles claim and its calls are refused with ErrorAccessDenied.
Send both when the same permission is used from both flows:
{
  "domain": "example.com",
  "client_id": "11111111-2222-3333-4444-555555555555",
  "scopes": ["Mail.Send"],
  "app_roles": ["Mail.Send"]
}
app_roles is rejected for GOOGLE domains, which have no equivalent - domain-wide delegation grants delegated scopes only.
Microsoft grants are asynchronous - they need a tenant admin sign-in - so the request stays processing for minutes and completes once the grant has been applied. Poll the status endpoint rather than assuming a fast result. While it is waiting the status endpoint reports processing, never errored.
A domain may hold admin mailboxes on more than one platform; pass platform to be explicit in that case.

Request

Authorization
Provide your bearer token in the
Authorization
header when making requests to protected resources.
Example:
Authorization: Bearer ********************
Header Params

Body Params application/json

Examples

Responses

🟢200Client ID Request Initiated Successfully
application/json
Bodyapplication/json

🟠400Bad Request - Invalid Input
🟠404Domain Not Found
🟠401Unauthorized
Request Request Example
Shell
JavaScript
Java
Swift
curl --location 'https://api.inboxkit.com/v1/api/mailboxes/client-id-request/initiate' \
--header 'X-Workspace-Id: a1b2c3d4-e5f6-7890-abcd-ef1234567890' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
    "domain": "example.com",
    "client_id": "123456789-abcdefghijklmnop.apps.googleusercontent.com",
    "platform": "GOOGLE",
    "delegated": false,
    "scopes": [
        "Mail.Send",
        "Mail.ReadWrite"
    ],
    "app_roles": [
        "Mail.Send"
    ],
    "request_data": {}
}'
Response Response Example
200 - Example 1
{
    "error": false,
    "message": "Client ID request initiated successfully",
    "data": {
        "uid": "req-a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        "status": "queued",
        "domain_name": "example.com",
        "client_id": "123456789-abcdefghijklmnop.apps.googleusercontent.com",
        "platform": "GOOGLE",
        "delegated": true,
        "scopes": [
            "https://www.googleapis.com/auth/gmail.modify",
            "https://www.googleapis.com/auth/admin.directory.user"
        ],
        "app_roles": [
            "Mail.Send"
        ],
        "created_at": "2025-01-15T10:00:00.000Z"
    }
}
Modified at 2026-09-01 10:09:25
Previous
Get Warmup Pricing
Next
Get Client ID Request Status
Built with