> ## 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.

# Create an AI Sales Agent

> Create a new AI Sales Agent. Provide `type` and `input` to extract business details from a website or pitch deck, or skip the scrape by setting `memory_from_workspace` to true to copy the workspace business details, or `is_duplicate` with `source_ai_sdr_id` to copy an existing agent.


Requires one of the following scopes: `ai_sdr:create`, `ai_sdr:all`, `all:create`, `all:all`



## OpenAPI

````yaml https://api.instantly.ai/openapi/api_v2.json post /api/v2/ai-agents/sales
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-group: Analytics
  - name: OAuth
    description: >-
      OAuth authentication endpoints for connecting Google and Microsoft email
      accounts
    x-group: OAuth
  - name: Account
    description: An email account that can be used to send campaigns
    x-group: Account
  - name: Campaign
    description: A campaign that can be sent to a list of recipients
    x-group: Campaign
  - name: Email
    description: >-
      A campaign email, a reply, a manually sent email, or any other email
      that's visible in the Unibox
    x-group: Email
  - name: EmailVerification
    description: A single email verification
    x-group: Email Verification
  - name: LeadList
    description: A list used to store leads
    x-group: Lead List
  - name: InboxPlacementTest
    description: An inbox placement test
    x-group: Inbox Placement Test
  - name: InboxPlacementAnalytics
    description: Analytics data for individual emails in inbox placement tests
    x-group: Inbox Placement Analytics
  - name: InboxPlacementBlacklistAndSpamAssassinReport
    description: Report data for an inbox placement test
    x-group: Inbox Placement Blacklist And SpamAssassin Report
  - name: AIInboxManager
    description: An AI Inbox Manager agent
    x-group: AI Inbox Manager
  - name: AIDeliverabilityAgent
    description: An AI Deliverability Agent
    x-group: AI Deliverability Agent
  - name: AILeadFinderAgent
    description: An AI Lead Finder Agent
    x-group: AI Lead Finder Agent
  - name: APIKey
    description: API Key
    x-group: API Key
  - name: AccountCampaignMapping
    description: Account Campaign Mapping
    x-group: Account Campaign Mapping
  - name: Lead
    description: A lead entity representing an individual lead
    x-group: Lead
  - name: BackgroundJob
    description: A background job that can be used to perform long-running tasks
    x-group: 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-group: 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-group: Custom Tag Mapping
  - name: BlockListEntry
    description: A blocked email or domain
    x-group: Block List Entry
  - name: LeadLabel
    description: A custom label for categorizing and managing leads
    x-group: Lead Label
  - name: Workspace
    description: A workspace entity representing a workspace
    x-group: 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-group: 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-group: Workspace Group Member
  - name: WorkspaceMember
    description: A member of a workspace with associated user details
    x-group: Workspace Member
  - name: CampaignSubsequence
    description: A subsequence entity representing a follow-up sequence
    x-group: Campaign Subsequence
  - name: AuditLog
    description: Audit log records for tracking system activities
    x-group: Audit Log
  - name: AISalesAgent
    description: >-
      An AI Sales Development Representative that autonomously manages outreach
      campaigns
    x-group: AI Sales Agent
  - name: Webhook
    description: A webhook subscription for receiving event notifications
    x-group: Webhook
  - name: WebhookEvent
    description: A webhook event that was sent or attempted to be sent
    x-group: Webhook Event
  - name: DFYEmailAccountOrder
    description: A Done-For-You email account order
    x-group: DFY Email Account Order
  - name: DomainForwarding
    description: Web forwarding configuration for a domain ordered through Instantly
    x-group: Domain Forwarding
  - name: CustomPromptTemplate
    description: Custom prompt templates for creating custom prompts
    x-group: Custom Prompt Template
  - name: SalesFlow
    description: >-
      Manages how sales users view and interact with campaign and lead lists
      within the sales flow.
    x-group: Sales Flow
  - name: EmailTemplate
    description: A campaign email template
    x-group: Email Template
  - name: WorkspaceBilling
    description: Workspace Billing
    x-group: Workspace Billing
  - name: CRMActions
    description: CRM related actions
    x-group: CRM Actions
  - name: EngageItem
    description: >-
      A unified Engage item representing a campaign, AI agent, automation
      workflow, broadcast, or journey.
    x-group: Engage Item
paths:
  /api/v2/ai-agents/sales:
    post:
      tags:
        - AISalesAgent
      summary: Create an AI Sales Agent
      description: >-
        Create a new AI Sales Agent. Provide `type` and `input` to extract
        business details from a website or pitch deck, or skip the scrape by
        setting `memory_from_workspace` to true to copy the workspace business
        details, or `is_duplicate` with `source_ai_sdr_id` to copy an existing
        agent.



        Requires one of the following scopes: `ai_sdr:create`, `ai_sdr:all`,
        `all:create`, `all:all`
      operationId: createSalesAgent
      requestBody:
        content:
          application/json:
            schema:
              title: CreateAI Sales Agent
              description: The AI Sales Agent to create
              type: object
              properties:
                name:
                  type: string
                  description: Name of the AI Sales Agent
                  example: Enterprise Outreach Agent
                description:
                  type:
                    - string
                    - 'null'
                  description: Description of the AI Sales Agent
                  example: Targets enterprise companies in tech sector
                type:
                  type: string
                  description: >-
                    The type of business details extraction method used (website
                    scraping or pitch deck). Required unless
                    memory_from_workspace is true.
                  enum:
                    - website
                    - pitch_deck
                  x-enumDescriptions:
                    website: >-
                      Website scraping - extracts business information from a
                      website URL
                    pitch_deck: >-
                      Pitch deck - extracts business information from pitch deck
                      text content
                  example: website
                input:
                  type:
                    - string
                    - 'null'
                  description: >-
                    The input used for creation: URL for website scraping or
                    text content for pitch deck extraction. Required unless
                    memory_from_workspace is true.
                  example: https://example.com
                config:
                  type: object
                  description: >-
                    Configuration for the AI Sales Agent including memory,
                    enrichment settings, outreach settings, and autonomy
                    settings. If not provided, default configuration will be
                    used.
                  properties:
                    memory:
                      type: object
                      description: >-
                        Business context and memory for the AI Sales Agent.
                        Updates are merged key by key: keys omitted from the
                        request keep their stored value.
                      properties:
                        company:
                          type: string
                          description: Company name
                          example: Acme Inc.
                        business_description:
                          type: string
                          description: Description of the business and what it sells
                          example: >-
                            Acme sells a B2B SaaS platform for managing sales
                            pipelines.
                        icps:
                          type: array
                          description: Ideal customer profiles the agent targets
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                                example: Mid-market SaaS founders
                              problems_solved:
                                type: array
                                items:
                                  type: string
                                  example: Manual prospecting takes too long
                              benefits:
                                type: array
                                items:
                                  type: string
                                  example: Books more meetings with less effort
                              usp:
                                type: string
                                example: Only platform with built-in AI outreach agents
                              customer_goals:
                                type: array
                                items:
                                  type: string
                                  example: Grow outbound pipeline
                              success_stories:
                                type: string
                                example: >-
                                  Helped a customer double reply rates in 3
                                  months
                              keywords:
                                type: object
                                properties:
                                  include:
                                    type:
                                      - string
                                      - 'null'
                                    example: saas, b2b
                                  exclude:
                                    type:
                                      - string
                                      - 'null'
                                    example: agency
                              company_size:
                                type: array
                                items:
                                  type: string
                                  example: 51-200
                              industry:
                                type: array
                                items:
                                  type: string
                                  example: Software
                              job_title:
                                type: object
                                properties:
                                  include:
                                    type: array
                                    items:
                                      type: string
                                      example: Founder
                                  exclude:
                                    type: array
                                    items:
                                      type: string
                                      example: Intern
                        active_icps_indexes:
                          type: array
                          description: >-
                            Indexes of the entries in `icps` that are currently
                            active
                          items:
                            type: integer
                            example: 0
                        business_offers:
                          type: array
                          description: Offers the agent can pitch
                          items:
                            type: string
                            example: Free 14-day trial
                        active_business_offers_indexes:
                          type: array
                          description: >-
                            Indexes of the entries in `business_offers` that are
                            currently active
                          items:
                            type: integer
                            example: 0
                        custom_fields:
                          type: array
                          maxItems: 10
                          description: >-
                            Raw storage for the agent guidance rules, at most 10
                            entries. Prefer the
                            `/ai-agents/sales/{id}/guidance-rules` endpoints
                            over editing this array directly.
                          items:
                            type: string
                            example: |-
                              Tone of voice

                              Always write in a friendly, casual tone.
                    position_details:
                      type: string
                      description: >-
                        Position details for recruiting agents, describing the
                        role, responsibilities, and requirements
                      example: >-
                        Senior Software Engineer - Full-stack development with
                        React and Node.js
                    investment_details:
                      type: string
                      description: >-
                        Investment details for investment agents, describing the
                        investment thesis and target companies
                      example: >-
                        Seed-stage B2B SaaS companies in fintech with strong
                        recurring revenue
                    research_details:
                      type: string
                      description: >-
                        Research details for user research agents, describing
                        the research goals and target participants
                      example: >-
                        Interviewing product managers at mid-size tech companies
                        about onboarding workflows
                    partnership_details:
                      type: string
                      description: >-
                        Partnership details for partnership agents, describing
                        the partnership goals and target partners
                      example: >-
                        Looking for B2B companies from pharma for a partnership
                        in distributing our product
                    enrichment_settings:
                      type: object
                      description: Settings for lead enrichment
                      properties:
                        enrichment_limit_per_run:
                          type: number
                          description: Maximum number of leads to enrich per run
                          example: 30
                        signal_targeting_enabled:
                          type: boolean
                          description: >-
                            Whether the agent puts leads with recent buying
                            signals first. AI Sales Agents only; other agent
                            types ignore it. Defaults to true when omitted.
                            Signals rank rather than filter: when fewer
                            signal-carrying leads are available than the agent's
                            daily target, the remainder is filled with other
                            leads matching the ICP, so this never reduces the
                            number of leads sourced. Set to false to stop
                            prioritizing signals; the stored categories are kept
                            for when it is turned back on.
                          example: true
                        signal_targeting_categories:
                          type: array
                          uniqueItems: true
                          maxItems: 26
                          description: >-
                            Signal categories the agent prioritizes while signal
                            targeting is on (AI Sales Agents only), each with a
                            90-day freshness window. Omit to use the default
                            high-intent set (recent funding or acquisition,
                            executive leadership change, pricing change, product
                            launch, company expansion, buying intent on Reddit).
                            An empty array prioritizes nothing; a non-empty
                            array targets exactly those categories.
                          items:
                            type: string
                            enum:
                              - linkedin_post_company
                              - linkedin_post_contact
                              - linkedin_comment
                              - twitter_post_company
                              - twitter_post_contact
                              - youtube_company
                              - youtube_contact
                              - reddit_buying_intent
                              - reddit_pain_point
                              - reddit_churn_risk
                              - reddit_competitor_mention
                              - glassdoor_negative
                              - glassdoor_positive
                              - website_product_launch
                              - website_pricing_change
                              - website_expansion
                              - website_executive_change
                              - website_funding
                              - website_partnership
                              - website_compliance
                              - website_technology_adoption
                              - job_change
                              - promotion
                              - work_anniversary
                              - traffic_surge
                              - traffic_decline
                            example: website_funding
                    outreach_settings:
                      type: object
                      description: >-
                        Settings for email outreach. Changes are propagated to
                        the agent's campaigns.
                      properties:
                        campaign_schedule:
                          type: object
                          properties:
                            start_date:
                              type:
                                - string
                                - 'null'
                              format: date
                              description: >-
                                Start date in YYYY-MM-DD format. Uses the
                                campaign's timezone.
                              example: '2025-09-25'
                            end_date:
                              type:
                                - string
                                - 'null'
                              format: date
                              description: >-
                                End date in YYYY-MM-DD format. Uses the
                                campaign's timezone.
                              example: '2025-09-25'
                            schedules:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                    example: My Schedule
                                  timing:
                                    type: object
                                    properties:
                                      from:
                                        type: string
                                        pattern: ^([01][0-9]|2[0-3]):([0-5][0-9])$
                                        example: '09:00'
                                      to:
                                        type: string
                                        pattern: ^([01][0-9]|2[0-3]):([0-5][0-9])$
                                        example: '17:00'
                                    required:
                                      - from
                                      - to
                                  days:
                                    type: object
                                    minProperties: 1
                                    properties:
                                      '0':
                                        type: boolean
                                        example: true
                                      '1':
                                        type: boolean
                                        example: true
                                      '2':
                                        type: boolean
                                        example: true
                                      '3':
                                        type: boolean
                                        example: true
                                      '4':
                                        type: boolean
                                        example: true
                                      '5':
                                        type: boolean
                                        example: false
                                      '6':
                                        type: boolean
                                        example: false
                                  timezone:
                                    type: string
                                    enum:
                                      - Etc/GMT+12
                                      - Etc/GMT+11
                                      - Etc/GMT+10
                                      - America/Anchorage
                                      - America/Dawson
                                      - America/Creston
                                      - America/Chihuahua
                                      - America/Boise
                                      - America/Belize
                                      - America/Chicago
                                      - America/Bahia_Banderas
                                      - America/Regina
                                      - America/Bogota
                                      - America/Detroit
                                      - America/Indiana/Marengo
                                      - America/Caracas
                                      - America/Asuncion
                                      - America/Glace_Bay
                                      - America/Campo_Grande
                                      - America/Anguilla
                                      - America/Santiago
                                      - America/St_Johns
                                      - America/Sao_Paulo
                                      - America/Argentina/La_Rioja
                                      - America/Araguaina
                                      - America/Godthab
                                      - America/Montevideo
                                      - America/Bahia
                                      - America/Noronha
                                      - America/Scoresbysund
                                      - Atlantic/Cape_Verde
                                      - Africa/Casablanca
                                      - America/Danmarkshavn
                                      - Europe/Isle_of_Man
                                      - Atlantic/Canary
                                      - Africa/Abidjan
                                      - Arctic/Longyearbyen
                                      - Europe/Belgrade
                                      - Africa/Ceuta
                                      - Europe/Sarajevo
                                      - Africa/Algiers
                                      - Africa/Windhoek
                                      - Asia/Nicosia
                                      - Asia/Beirut
                                      - Africa/Cairo
                                      - Asia/Damascus
                                      - Europe/Bucharest
                                      - Africa/Blantyre
                                      - Europe/Helsinki
                                      - Europe/Istanbul
                                      - Asia/Jerusalem
                                      - Africa/Tripoli
                                      - Asia/Amman
                                      - Asia/Baghdad
                                      - Europe/Kaliningrad
                                      - Asia/Aden
                                      - Africa/Addis_Ababa
                                      - Europe/Kirov
                                      - Europe/Astrakhan
                                      - Asia/Tehran
                                      - Asia/Dubai
                                      - Asia/Baku
                                      - Indian/Mahe
                                      - Asia/Tbilisi
                                      - Asia/Yerevan
                                      - Asia/Kabul
                                      - Antarctica/Mawson
                                      - Asia/Yekaterinburg
                                      - Asia/Karachi
                                      - Asia/Kolkata
                                      - Asia/Colombo
                                      - Asia/Kathmandu
                                      - Antarctica/Vostok
                                      - Asia/Dhaka
                                      - Asia/Rangoon
                                      - Antarctica/Davis
                                      - Asia/Novokuznetsk
                                      - Asia/Hong_Kong
                                      - Asia/Krasnoyarsk
                                      - Asia/Brunei
                                      - Australia/Perth
                                      - Asia/Taipei
                                      - Asia/Choibalsan
                                      - Asia/Irkutsk
                                      - Asia/Dili
                                      - Asia/Pyongyang
                                      - Australia/Adelaide
                                      - Australia/Darwin
                                      - Australia/Brisbane
                                      - Australia/Melbourne
                                      - Antarctica/DumontDUrville
                                      - Australia/Currie
                                      - Asia/Chita
                                      - Antarctica/Macquarie
                                      - Asia/Sakhalin
                                      - Pacific/Auckland
                                      - Etc/GMT-12
                                      - Pacific/Fiji
                                      - Asia/Anadyr
                                      - Asia/Kamchatka
                                      - Etc/GMT-13
                                      - Pacific/Apia
                                    example: Etc/GMT+12
                                required:
                                  - name
                                  - timing
                                  - days
                                  - timezone
                              minItems: 1
                          required:
                            - schedules
                        email_list:
                          type: array
                          description: Sending account emails the agent's campaigns use
                          items:
                            type: string
                            example: sender@example.com
                        email_tag_list:
                          type: array
                          description: Account tag ids used to select sending accounts
                          items:
                            type: string
                            format: uuid
                            example: 01a08b36-b277-7624-9f8a-2901b2d5cec8
                        daily_limit:
                          type: number
                          description: Daily email sending limit per campaign
                          example: 100
                        stop_on_reply:
                          type: boolean
                          description: Stop contacting a lead after they reply
                          example: true
                        open_tracking:
                          type: boolean
                          description: Track email opens
                          example: true
                        first_email_text_only:
                          type: boolean
                          description: Send the first email as plain text
                          example: false
                        prioritize_new_leads:
                          type: boolean
                          description: Prioritize new leads over follow-ups
                          example: false
                        match_lead_esp:
                          type: boolean
                          description: >-
                            Match the sending account's email provider to the
                            lead's provider
                          example: false
                        opt_out_settings:
                          type: object
                          description: Opt-out settings appended to outgoing emails
                          properties:
                            text_opt_out_enabled:
                              type: boolean
                              description: Append a plain-text opt-out line to every email
                              default: true
                              example: true
                    autonomy_settings:
                      type: object
                      description: Settings for AI Sales Agent autonomy
                      properties:
                        autopilot_mode:
                          type: boolean
                          description: Enable autopilot mode for autonomous decision-making
                          example: false
                        auto_reply_to_responses:
                          type: boolean
                          description: >-
                            Automatically respond to prospect replies with
                            contextual messages
                          example: false
                        manual_leads_mode:
                          type: boolean
                          description: >-
                            When true, automatic lead discovery is disabled and
                            the user uploads leads manually
                          example: false
                    slack_connection_id:
                      type:
                        - string
                        - 'null'
                      description: >-
                        App connection id of the Slack workspace used for daily
                        reports. `null` disconnects Slack.
                      example: 01a08b36-b277-7624-9f8a-290258c92793
                agent_type:
                  type: number
                  enum:
                    - 2
                    - 4
                    - 7
                    - 8
                    - 9
                    - 10
                  x-enumDescriptions:
                    '2': Sales
                    '7': Recruiting
                    '8': Investment
                    '9': User Research
                    '10': Partnership
                  description: >-
                    The outbound agent type to create; preserved on every read.
                    2 = Sales, 7 = Recruiting, 8 = Investment, 9 = User
                    Research, 10 = Partnership. Required unless `is_duplicate`
                    is true, in which case the type is inherited from the
                    duplicated agent.
                  example: 2
                self_improvement:
                  type:
                    - boolean
                    - 'null'
                  description: >-
                    When enabled, the agent learns from past campaign
                    performance to iteratively improve its outreach strategy.
                  example: false
                status:
                  type: number
                  enum:
                    - -1
                    - 0
                    - 1
                  x-enumDescriptions:
                    '0': Inactive
                    '1': Active
                    '-1': Trial Expired
                  description: >-
                    Optional initial status for the AI Sales Agent. Defaults to
                    0 (inactive).
                  example: 1
                memory_from_workspace:
                  type: boolean
                  description: >-
                    When true, skips the initial scrape and copies memory from
                    the workspace business details, then creates an initial
                    setup activity. When set, `type` and `input` are not
                    required.
                  example: true
                master_lead_list_id:
                  type: string
                  format: uuid
                  description: Master lead list ID for the AI Sales Agent.
                  example: 01a08b36-c010-7742-a515-2788e8c6568a
                initial_scrape_ready:
                  type: boolean
                  description: Whether the initial scrape is ready.
                  example: false
                is_duplicate:
                  type: boolean
                  description: >-
                    When true, duplicates an existing AI Sales Agent in this
                    workspace. Must be sent together with source_ai_sdr_id.
                  example: true
                source_ai_sdr_id:
                  type: string
                  format: uuid
                  description: >-
                    Required when is_duplicate is true: the id of the AI Sales
                    Agent to copy from. Must exist in the current workspace.
                  example: 01a08b36-c010-7742-a515-27895f514524
              required:
                - name
              additionalProperties: false
              allOf:
                - if:
                    anyOf:
                      - properties:
                          memory_from_workspace:
                            enum:
                              - true
                        required:
                          - memory_from_workspace
                      - properties:
                          is_duplicate:
                            enum:
                              - true
                        required:
                          - is_duplicate
                  else:
                    required:
                      - type
                      - input
                - if:
                    properties:
                      is_duplicate:
                        enum:
                          - true
                    required:
                      - is_duplicate
                  then:
                    required:
                      - source_ai_sdr_id
                  else:
                    required:
                      - agent_type
        required: true
        description: The AI Sales Agent to create
      responses:
        '200':
          description: The AI Sales Agent
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AISalesAgent'
        '400':
          description: >-
            Invalid request body (e.g. missing required fields, or invalid field
            values)
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 400
                    examples:
                      - 400
                    example: 400
                  error:
                    type: string
                    enum:
                      - Bad Request
                    examples:
                      - Bad Request
                    example: Bad Request
                  message:
                    type: string
                    examples:
                      - body must have required property 'name'
                    example: body must have required property 'name'
                required:
                  - statusCode
                  - error
                  - message
        '401':
          description: >-
            This request is unauthorized (either the Authorization header is
            missing or invalid, or the API key has been revoked)
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 401
                    examples:
                      - 401
                    example: 401
                  error:
                    type: string
                    enum:
                      - Unauthorized
                    examples:
                      - Unauthorized
                    example: Unauthorized
                  message:
                    type: string
                    examples:
                      - Missing Authorization header
                    example: Missing Authorization header
                required:
                  - statusCode
                  - error
                  - message
        '402':
          description: >-
            This request cannot be fulfilled because the workspace does not have
            an active paid plan
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 402
                    examples:
                      - 402
                    example: 402
                  error:
                    type: string
                    enum:
                      - Payment Required
                    examples:
                      - Payment Required
                    example: Payment Required
                  message:
                    type: string
                    examples:
                      - Workspace does not have an active paid plan
                    example: Workspace does not have an active paid plan
                required:
                  - statusCode
                  - error
                  - message
        '404':
          description: The requested resource was not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 404
                    examples:
                      - 404
                    example: 404
                  error:
                    type: string
                    enum:
                      - Not Found
                    examples:
                      - Not Found
                    example: Not Found
                  message:
                    type: string
                    examples:
                      - Resource not found
                    example: Resource not found
                required:
                  - statusCode
                  - error
                  - message
        '429':
          description: >-
            You have exceeded the rate limit. Please check the rate limit docs
            for more information.
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 429
                    examples:
                      - 429
                    example: 429
                  error:
                    type: string
                    enum:
                      - Too Many Requests
                    examples:
                      - Too Many Requests
                    example: Too Many Requests
                  message:
                    type: string
                    examples:
                      - Rate limit exceeded
                    example: Rate limit exceeded
                required:
                  - statusCode
                  - error
                  - message
components:
  schemas:
    AISalesAgent:
      title: AI Sales Agent
      description: >-
        An AI Sales Development Representative that autonomously manages
        outreach campaigns
      x-tags:
        - Schemas
        - AISalesAgent
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the AI Sales Agent
          readOnly: true
          format: uuid
          example: 01a08b36-6a33-7573-bd0d-5b9c39f2e0b9
        workspace_id:
          type: string
          description: Workspace ID that owns this AI Sales Agent
          readOnly: true
          format: uuid
          example: 01a08b36-6a33-7573-bd0d-5b9ddfdd515b
        name:
          type: string
          description: Name of the AI Sales Agent
          example: Enterprise Outreach Agent
        description:
          type:
            - 'null'
            - string
          description: Description of the AI Sales Agent
          example: Targets enterprise companies in tech sector
        type:
          type: string
          description: >-
            The type of business details extraction method used (website
            scraping or pitch deck). Required unless memory_from_workspace is
            true.
          enum:
            - website
            - pitch_deck
          x-enumDescriptions:
            website: >-
              Website scraping - extracts business information from a website
              URL
            pitch_deck: >-
              Pitch deck - extracts business information from pitch deck text
              content
          example: website
        input:
          type:
            - 'null'
            - string
          description: >-
            The input used for creation: URL for website scraping or text
            content for pitch deck extraction. Required unless
            memory_from_workspace is true.
          example: https://example.com
        status:
          type: number
          description: Status of the AI Sales Agent
          readOnly: true
          enum:
            - -1
            - 0
            - 1
          x-enumDescriptions:
            '0': Inactive
            '1': Active
            '-1': Trial Expired
          example: 1
        config:
          type: object
          description: >-
            Configuration for the AI Sales Agent including memory, enrichment
            settings, outreach settings, and autonomy settings. If not provided,
            default configuration will be used.
          additionalProperties: true
          properties:
            memory:
              type: object
              additionalProperties: true
              description: Business context and memory for the AI Sales Agent
            position_details:
              type: string
              description: >-
                Position details for recruiting agents, describing the role,
                responsibilities, and requirements
              example: >-
                Senior Software Engineer - Full-stack development with React and
                Node.js
            investment_details:
              type: string
              description: >-
                Investment details for investment agents, describing the
                investment thesis and target companies
              example: >-
                Seed-stage B2B SaaS companies in fintech with strong recurring
                revenue
            research_details:
              type: string
              description: >-
                Research details for user research agents, describing the
                research goals and target participants
              example: >-
                Interviewing product managers at mid-size tech companies about
                onboarding workflows
            partnership_details:
              type: string
              description: >-
                Partnership details for partnership agents, describing the
                partnership goals and target partners
              example: >-
                Looking for B2B companies from pharma for a partnership in
                distributing our product
            enrichment_settings:
              type: object
              description: Settings for lead enrichment
              properties:
                enrichment_limit_per_run:
                  type: number
                  description: Maximum number of leads to enrich per run
                  example: 30
                signal_targeting_enabled:
                  type: boolean
                  description: >-
                    Whether the agent puts leads with recent buying signals
                    first. AI Sales Agents only; other agent types ignore it.
                    Defaults to true when omitted. Signals rank rather than
                    filter: when fewer signal-carrying leads are available than
                    the agent's daily target, the remainder is filled with other
                    leads matching the ICP, so this never reduces the number of
                    leads sourced. Set to false to stop prioritizing signals;
                    the stored categories are kept for when it is turned back
                    on.
                  example: true
                signal_targeting_categories:
                  type: array
                  uniqueItems: true
                  maxItems: 26
                  description: >-
                    Signal categories the agent prioritizes while signal
                    targeting is on (AI Sales Agents only), each with a 90-day
                    freshness window. Omit to use the default high-intent set
                    (recent funding or acquisition, executive leadership change,
                    pricing change, product launch, company expansion, buying
                    intent on Reddit). An empty array prioritizes nothing; a
                    non-empty array targets exactly those categories.
                  items:
                    type: string
                    enum:
                      - linkedin_post_company
                      - linkedin_post_contact
                      - linkedin_comment
                      - twitter_post_company
                      - twitter_post_contact
                      - youtube_company
                      - youtube_contact
                      - reddit_buying_intent
                      - reddit_pain_point
                      - reddit_churn_risk
                      - reddit_competitor_mention
                      - glassdoor_negative
                      - glassdoor_positive
                      - website_product_launch
                      - website_pricing_change
                      - website_expansion
                      - website_executive_change
                      - website_funding
                      - website_partnership
                      - website_compliance
                      - website_technology_adoption
                      - job_change
                      - promotion
                      - work_anniversary
                      - traffic_surge
                      - traffic_decline
                    example: website_funding
            outreach_settings:
              type: object
              additionalProperties: true
              description: >-
                Settings for email outreach including campaign_schedule,
                email_list, email_tag_list, daily_limit, stop_on_reply,
                open_tracking, first_email_text_only, prioritize_new_leads,
                match_lead_esp
              properties:
                opt_out_settings:
                  type: object
                  description: Opt-out settings appended to outgoing emails
                  properties:
                    text_opt_out_enabled:
                      type: boolean
                      description: Append a plain-text opt-out line to every email
                      default: true
                      example: true
            autonomy_settings:
              type: object
              additionalProperties: true
              description: >-
                Settings for AI Sales Agent autonomy including autopilot_mode,
                auto_reply_to_responses, and manual_leads_mode
              properties:
                autopilot_mode:
                  type: boolean
                  description: Enable autopilot mode for autonomous decision-making
                  example: false
                auto_reply_to_responses:
                  type: boolean
                  description: >-
                    Automatically respond to prospect replies with contextual
                    messages
                  example: false
                manual_leads_mode:
                  type: boolean
                  description: >-
                    When true, automatic lead discovery is disabled and the user
                    uploads leads manually
                  example: false
        created_by:
          type:
            - 'null'
            - string
          description: User ID who created the AI Sales Agent
          readOnly: true
          format: uuid
          example: 01a08b36-6a33-7573-bd0d-5b9e845f1e69
        master_lead_list_id:
          type:
            - 'null'
            - string
          description: ID of the master lead list associated with this AI Sales Agent
          readOnly: true
          format: uuid
          example: 01a08b36-6a33-7573-bd0d-5b9f3782d39f
        initial_scrape_ready:
          type: boolean
          description: Indicates whether the initial website scrape has been completed
          readOnly: true
          example: false
        agent_type:
          type: number
          description: >-
            The agent type. 2 = Sales Agent, 4 = Affiliate Agent, 7 = Recruiting
            Agent, 8 = Investment Agent, 9 = User Research Agent, 10 =
            Partnership Agent. Defaults to 2 (Sales Agent) if not provided.
          enum:
            - 2
            - 4
            - 7
            - 8
            - 9
            - 10
          example: 2
        self_improvement:
          type:
            - 'null'
            - boolean
          description: >-
            When enabled, the agent learns from past campaign performance to
            iteratively improve its outreach strategy.
          example: false
        timestamp_created:
          type: string
          description: Timestamp when the AI Sales Agent was created
          readOnly: true
          format: date-time
          example: '2026-09-10T12:06:34.291Z'
        timestamp_updated:
          type: string
          description: Timestamp when the AI Sales Agent was last updated
          readOnly: true
          format: date-time
          example: '2026-09-10T12:06:34.291Z'
        timestamp_last_action:
          type:
            - 'null'
            - string
          description: Timestamp of the last action taken by the AI Sales Agent
          readOnly: true
          format: date-time
          example: '2026-09-10T12:06:34.291Z'
        timestamp_last_decision:
          type:
            - 'null'
            - string
          description: Timestamp of the last decision made by the AI Sales Agent
          readOnly: true
          format: date-time
          example: '2026-09-10T12:06:34.291Z'
        next_decision_time:
          type:
            - 'null'
            - string
          description: Timestamp of the next scheduled decision time
          readOnly: true
          format: date-time
          example: '2026-09-10T12:06:34.291Z'
      required:
        - id
        - workspace_id
        - name
        - status
        - initial_scrape_ready
        - timestamp_created
        - timestamp_updated
      additionalProperties: false
  securitySchemes:
    ApiKeyAuth:
      type: http
      scheme: bearer

````