> ## Documentation Index
> Fetch the complete documentation index at: https://developer.instantly.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Initialize microsoft oauth

> Creates an OAuth session and returns the Microsoft authorization URL. The user should be redirected to auth_url to complete the OAuth flow. Poll the status endpoint to check for completion.

**Special rate limits (stricter than the standard API rate limit) to comply with upstream Microsoft rate limits:**
- 75 requests per minute per workspace
- 150 requests per minute per IP

If Microsoft's upstream OAuth service is temporarily unavailable, requests may return 503.



## OpenAPI

````yaml https://api.instantly.ai/openapi/api_v2.json post /api/v2/oauth/microsoft/init
openapi: 3.1.0
info:
  title: API Explorer
  description: >-
    The entire API V2 documentation is interactive and can be tested here. To
    the right side of every endpoint you will see a box with an example request.
    You can click on the "Try it" button to send a request to the server right
    from the docs. You will need to provide an API key by clicking the
    `ApiKeyAuth_token` blue text.
  version: 2.0.0
servers:
  - url: https://api.instantly.ai
    description: Instantly API Server
security:
  - ApiKeyAuth: []
tags:
  - name: Analytics
    description: Endpoints related to analytics
    x-displayName: Analytics
  - name: OAuth
    description: >-
      OAuth authentication endpoints for connecting Google and Microsoft email
      accounts
    x-displayName: OAuth
  - name: Account
    description: An email account that can be used to send campaigns
    x-displayName: Account
  - name: Campaign
    description: A campaign that can be sent to a list of recipients
    x-displayName: Campaign
  - name: Email
    description: >-
      A campaign email, a reply, a manually sent email, or any other email
      that's visible in the Unibox
    x-displayName: Email
  - name: EmailVerification
    description: A single email verification
    x-displayName: Email Verification
  - name: LeadList
    description: A list used to store leads
    x-displayName: Lead List
  - name: InboxPlacementTest
    description: An inbox placement test
    x-displayName: Inbox Placement Test
  - name: InboxPlacementAnalytics
    description: Analytics data for individual emails in inbox placement tests
    x-displayName: Inbox Placement Analytics
  - name: InboxPlacementBlacklist&SpamAssassinReport
    description: Report data for an inbox placement test
    x-displayName: Inbox Placement Blacklist & SpamAssassin Report
  - name: APIKey
    description: API Key
    x-displayName: API Key
  - name: AccountCampaignMapping
    description: Account Campaign Mapping
    x-displayName: Account Campaign Mapping
  - name: Lead
    description: A lead entity representing an individual lead
    x-displayName: Lead
  - name: BackgroundJob
    description: A background job that can be used to perform long-running tasks
    x-displayName: Background Job
  - name: CustomTag
    description: >-
      A custom tag for organizing and categorizing accounts and campaigns. You
      can use them as filters in apis that list accounts and campaigns.
    x-displayName: Custom Tag
  - name: CustomTagMapping
    description: >-
      This entity represents a tag being assigned to a specific campaign or
      email account. When an email account is assigned a tag, a new custom tag
      mapping entry is created, which connects the tag (`tag_id` field) with the
      email account (`resource_id` field). You can use it to see which tag si
      connected to which resource.
    x-displayName: Custom Tag Mapping
  - name: BlockListEntry
    description: A blocked email or domain
    x-displayName: Block List Entry
  - name: LeadLabel
    description: A custom label for categorizing and managing leads
    x-displayName: Lead Label
  - name: Workspace
    description: A workspace entity representing a workspace
    x-displayName: Workspace
  - name: SuperSearchEnrichment
    description: >-
      An enrichment can take different forms, such as email enrichment or
      LinkedIn enrichment. Leads may be imported from SuperSearch using the
      dedicated endpoint, or enriched directly within a list or campaign by
      attaching an enrichment to it.
    x-displayName: SuperSearch Enrichment
  - name: WorkspaceGroupMember
    description: >-
      A member of a workspace group. You can use the endpoints within this
      entity to manage the members of a workspace group.
    x-displayName: Workspace Group Member
  - name: WorkspaceMember
    description: A member of a workspace with associated user details
    x-displayName: Workspace Member
  - name: CampaignSubsequence
    description: A subsequence entity representing a follow-up sequence
    x-displayName: Campaign Subsequence
  - name: AuditLog
    description: Audit log records for tracking system activities
    x-displayName: Audit Log
  - name: Webhook
    description: A webhook subscription for receiving event notifications
    x-displayName: Webhook
  - name: WebhookEvent
    description: A webhook event that was sent or attempted to be sent
    x-displayName: Webhook Event
  - name: DFYEmailAccountOrder
    description: A Done-For-You email account order
    x-displayName: DFY Email Account Order
  - name: CustomPromptTemplate
    description: Custom prompt templates for creating custom prompts
    x-displayName: Custom Prompt Template
  - name: SalesFlow
    description: >-
      Manages how sales users view and interact with campaign and lead lists
      within the sales flow.
    x-displayName: Sales Flow
  - name: EmailTemplate
    description: A campaign email template
    x-displayName: Email Template
  - name: WorkspaceBilling
    description: Workspace Billing
    x-displayName: Workspace Billing
  - name: CRMActions
    description: CRM related actions
    x-displayName: CRM Actions
paths:
  /api/v2/oauth/microsoft/init:
    post:
      tags:
        - OAuth
      summary: Initialize microsoft oauth
      description: >-
        Creates an OAuth session and returns the Microsoft authorization URL.
        The user should be redirected to auth_url to complete the OAuth flow.
        Poll the status endpoint to check for completion.


        **Special rate limits (stricter than the standard API rate limit) to
        comply with upstream Microsoft rate limits:**

        - 75 requests per minute per workspace

        - 150 requests per minute per IP


        If Microsoft's upstream OAuth service is temporarily unavailable,
        requests may return 503.
      operationId: initMicrosoftOAuth
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  session_id:
                    type: string
                    description: Session ID for polling status
                    example: abc123def456
                  auth_url:
                    type: string
                    description: Microsoft authorization URL to redirect user to
                    example: >-
                      https://login.microsoftonline.com/common/oauth2/v2.0/authorize?...
                  expires_at:
                    type: string
                    format: date-time
                    description: Session expiry time (10 minutes from creation)
                    example: '2026-01-14T12:30:00.000Z'
        '429':
          description: >-
            Rate limit exceeded — 75 requests per minute per workspace or 150
            requests per minute per IP
          content:
            application/json:
              schema:
                type: object
                description: >-
                  Rate limit exceeded — 75 requests per minute per workspace or
                  150 requests per minute per IP
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 429
                    example: 429
                  error:
                    type: string
                    enum:
                      - Too Many Requests
                    example: Too Many Requests
                  message:
                    type: string
                    example: Rate limit exceeded for OAuth session creation
                required:
                  - statusCode
                  - error
                  - message
        '503':
          description: >-
            Upstream provider temporarily unavailable — the provider is
            rate-limiting Instantly. Retry after a short delay.
          content:
            application/json:
              schema:
                type: object
                description: >-
                  Upstream provider temporarily unavailable — the provider is
                  rate-limiting Instantly. Retry after a short delay.
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 503
                    example: 503
                  error:
                    type: string
                    enum:
                      - Service Unavailable
                    example: Service Unavailable
                  message:
                    type: string
                    example: OAuth is temporarily unavailable, please retry shortly
                required:
                  - statusCode
                  - error
                  - message
components:
  securitySchemes:
    ApiKeyAuth:
      type: http
      scheme: bearer

````