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

# Add prospects to a campaign

> Adds up to 20 prospects to a campaign's audience list. Each prospect must have at least one contact method (email, linkedinUrl, phone) or full identity (firstName, lastName, company). Rate limited to 10 requests per minute.

<Warning>
  Rate limited to 10 requests per minute. Each request can include up to 20 prospects.
  Every prospect must have at least one contact method (email, linkedinUrl, phone) or full identity (firstName, lastName, company).
</Warning>


## OpenAPI

````yaml POST /campaigns/{campaignId}/prospects
openapi: 3.1.0
info:
  title: Alta API
  description: >-
    The Alta public API allows you to programmatically access and manage your
    campaigns, prospects, companies, persons, email messages, LinkedIn messages,
    calls, reps, tags, and trigger assistant calls.
  version: 1.0.0
servers:
  - url: https://api.altahq.com/v1
    description: Production
security:
  - bearerAuth: []
paths:
  /campaigns/{campaignId}/prospects:
    post:
      tags:
        - Campaigns
      summary: Add prospects to a campaign
      description: >-
        Adds up to 20 prospects to a campaign's audience list. Each prospect
        must have at least one contact method (email, linkedinUrl, phone) or
        full identity (firstName, lastName, company). Rate limited to 10
        requests per minute.
      operationId: addProspectsToCampaign
      parameters:
        - name: campaignId
          in: path
          required: true
          description: The UUID of the campaign to add prospects to.
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddProspectsToCampaignRequest'
      responses:
        '200':
          description: Prospects added successfully
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  schemas:
    AddProspectsToCampaignRequest:
      type: object
      required:
        - data
      properties:
        data:
          type: array
          minItems: 1
          maxItems: 20
          description: >-
            Array of prospect records to add. Each must have at least one
            contact method (email, linkedinUrl, phone) or full identity
            (firstName, lastName, company).
          items:
            $ref: '#/components/schemas/ProspectRecord'
    ProspectRecord:
      type: object
      description: >-
        A prospect record with contact information. Must include at least one
        contact method or full identity.
      properties:
        firstName:
          type: string
          maxLength: 255
          description: The prospect's first name.
        lastName:
          type: string
          maxLength: 255
          description: The prospect's last name.
        company:
          type: string
          maxLength: 255
          description: The prospect's company name.
        jobTitle:
          type: string
          maxLength: 255
          description: The prospect's job title.
        email:
          type: string
          maxLength: 255
          description: The prospect's email address.
        linkedinUrl:
          type: string
          maxLength: 255
          description: The prospect's LinkedIn profile URL.
      additionalProperties: true
    Error:
      type: object
      required:
        - error
        - message
      properties:
        error:
          type: string
          description: Error type.
        message:
          type: string
          description: Human-readable error message.
  responses:
    BadRequest:
      description: The request body is invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: ValidationError
            message: Invalid request body
    Unauthorized:
      description: Authentication failed - invalid or missing API token.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: Unauthorized
            message: Invalid API token
    NotFound:
      description: The requested resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: NotFound
            message: Resource not found
    RateLimited:
      description: >-
        Too many requests - you've exceeded the rate limit of 100 requests per
        minute.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: TooManyRequests
            message: Rate limit exceeded. Please retry after 60 seconds.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        API token authentication. Generate a token from the Alta dashboard and
        pass it as a Bearer token in the Authorization header.

````