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

# Get campaign

> Fetch full campaign details including workflow JSON and stats.



## OpenAPI

````yaml /openapi.json get /api/v1/public/campaigns/{campaign_id}
openapi: 3.1.0
info:
  description: >-
    Customer-facing API for managing outreach, leads, conversations, voice
    agents, knowledge bases, analytics, and webhooks.
  title: Sendora Public API
  version: 1.0.0
servers:
  - description: Production
    url: https://api.sendora.ai
security: []
tags:
  - description: Build, launch, pause and stop campaigns, and enroll leads.
    name: Campaigns
  - description: Create, update, tag, enrich and import leads.
    name: Leads
  - description: Group leads into reusable lists.
    name: Lead lists
  - description: Find new prospects and research existing leads.
    name: Prospecting
  - description: Read conversations and send messages to leads.
    name: Inbox
  - description: Manage workspace-wide suppressions.
    name: Do not contact
  - description: Manage the content your agents answer from.
    name: Knowledge bases
  - description: Create, configure, test and publish voice agents.
    name: Voice agents
  - description: Give agents actions such as booking, lookups and transfers.
    name: Agent tools
  - description: Embed a voice agent on your website.
    name: Voice widgets
  - description: Start voice calls and read call results.
    name: Calls
  - description: Browse and preview the voices an agent can use.
    name: Voices
  - description: List numbers, bring your own, and route calls.
    name: Phone numbers
  - description: List the channel accounts connected to the workspace.
    name: Connected accounts
  - description: Register endpoints and review deliveries.
    name: Webhooks
  - description: Drive the workspace assistant programmatically.
    name: Copilot
  - description: Read workspace and campaign performance.
    name: Analytics
  - description: Track asynchronous operations.
    name: Jobs
  - description: Manage client workspaces, plans and branding.
    name: Agency
paths:
  /api/v1/public/campaigns/{campaign_id}:
    get:
      tags:
        - Campaigns
      summary: Get campaign
      description: Fetch full campaign details including workflow JSON and stats.
      operationId: public_get_campaign_api_v1_public_campaigns__campaign_id__get
      parameters:
        - description: >-
            The campaign's id: the `id` from List campaigns. It is also the last
            part of that page's address in the app.
          in: path
          name: campaign_id
          required: true
          schema:
            title: Campaign Id
            type: string
        - in: header
          name: X-API-Key
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: X-Api-Key
        - in: header
          name: Authorization
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Authorization
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CampaignResponse'
          description: Successful Response
        '401':
          description: The X-API-Key header is missing, invalid, expired, or revoked.
        '402':
          description: >-
            The workspace is suspended for billing, or the request would exceed
            a plan or usage limit.
        '403':
          description: >-
            The key is valid but lacks the required scope, or the workspace has
            no active plan, lacks the entitlement, or has this feature turned
            off or view-only.
        '404':
          description: >-
            The resource does not exist or is not owned by the authenticated
            workspace.
        '410':
          description: The workspace behind this key has been deleted.
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
        '500':
          description: >-
            An unexpected Sendora error occurred. Retry only if the operation is
            safe to repeat.
        '503':
          description: >-
            An entitlement or billing check is temporarily unavailable. Retry
            after the Retry-After interval.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - label: cURL
          lang: bash
          source: >-
            curl -X GET 'https://api.sendora.ai/api/v1/public/campaigns/YOUR_ID'
            -H "X-API-Key: $SENDORA_API_KEY"
        - label: Python
          lang: python
          source: |-
            import requests

            url = 'https://api.sendora.ai/api/v1/public/campaigns/YOUR_ID'
            headers = {'X-API-Key': '$SENDORA_API_KEY'}
            response = requests.get(url, headers=headers)
            response.raise_for_status()
            print(response.json())
        - label: JavaScript
          lang: javascript
          source: >-
            const response = await
            fetch("https://api.sendora.ai/api/v1/public/campaigns/YOUR_ID", {
              method: "GET",
              headers: { 'X-API-Key': process.env.SENDORA_API_KEY },
            });

            if (!response.ok) throw new Error(await response.text());

            console.log(await response.json());
        - label: Go
          lang: go
          source: >-
            req, err := http.NewRequest("GET",
            "https://api.sendora.ai/api/v1/public/campaigns/YOUR_ID", nil)

            if err != nil { log.Fatal(err) }

            req.Header.Set("X-API-Key", os.Getenv("SENDORA_API_KEY"))

            resp, err := http.DefaultClient.Do(req)

            if err != nil { log.Fatal(err) }

            defer resp.Body.Close()
components:
  schemas:
    CampaignResponse:
      properties:
        build_mode:
          default: linear
          description: Build mode returned by the Sendora API.
          enum:
            - linear
            - advanced
          title: Build Mode
          type: string
        build_mode_reason:
          anyOf:
            - type: string
            - type: 'null'
          description: Build mode reason returned by the Sendora API.
          title: Build Mode Reason
        channels:
          default: []
          description: Channels returned by the Sendora API.
          items:
            type: string
          title: Channels
          type: array
        connect_rate:
          default: 0
          description: Connect rate returned by the Sendora API.
          title: Connect Rate
          type: number
        contacted_count:
          default: 0
          description: Contacted count returned by the Sendora API.
          title: Contacted Count
          type: integer
        created_at:
          description: Created at returned by the Sendora API.
          format: date-time
          title: Created At
          type: string
        created_from_template_slug:
          anyOf:
            - type: string
            - type: 'null'
          description: Created from template slug returned by the Sendora API.
          title: Created From Template Slug
        folder_id:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            The folder to place the campaign in: an `id` from List campaign
            folders. Leave empty for no folder.
          title: Folder Id
        id:
          description: The campaign's id. Pass it to any endpoint that takes `campaign_id`.
          title: Id
          type: string
        inbound_agent_id:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            The voice agent that answers incoming calls: an `id` from List voice
            agents.
          title: Inbound Agent Id
        inbound_agent_name:
          anyOf:
            - type: string
            - type: 'null'
          description: Inbound agent name returned by the Sendora API.
          title: Inbound Agent Name
        lead_count:
          default: 0
          description: Lead count returned by the Sendora API.
          title: Lead Count
          type: integer
        lead_list_id:
          anyOf:
            - type: string
            - type: 'null'
          description: 'A lead list''s id: the `id` from List lead lists.'
          title: Lead List Id
        meeting_count:
          default: 0
          description: Meeting count returned by the Sendora API.
          title: Meeting Count
          type: integer
        name:
          description: Name returned by the Sendora API.
          title: Name
          type: string
        reply_agent_id:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            The voice agent that handles replies from leads in this campaign: an
            `id` from List voice agents. When empty, the workspace's first agent
            is used.
          title: Reply Agent Id
        reply_count:
          default: 0
          description: Reply count returned by the Sendora API.
          title: Reply Count
          type: integer
        smoke_test_active:
          default: false
          description: Smoke test active returned by the Sendora API.
          title: Smoke Test Active
          type: boolean
        smoke_test_started_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          description: Smoke test started at returned by the Sendora API.
          title: Smoke Test Started At
        status:
          description: Status returned by the Sendora API.
          title: Status
          type: string
        updated_at:
          description: Updated at returned by the Sendora API.
          format: date-time
          title: Updated At
          type: string
        variable_defaults:
          additionalProperties:
            type: string
          default: {}
          description: Variable defaults returned by the Sendora API.
          title: Variable Defaults
          type: object
        workflow:
          anyOf:
            - $ref: '#/components/schemas/CampaignWorkflow-Output'
            - type: 'null'
          description: Workflow returned by the Sendora API.
        workflow_ui_json:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          description: Workflow ui json returned by the Sendora API.
          title: Workflow Ui Json
      required:
        - id
        - name
        - status
        - created_at
        - updated_at
      title: CampaignResponse
      type: object
    HTTPValidationError:
      properties:
        detail:
          description: Detail returned by the Sendora API.
          items:
            $ref: '#/components/schemas/ValidationError'
          title: Detail
          type: array
      required: []
      title: HTTPValidationError
      type: object
    CampaignWorkflow-Output:
      properties:
        name:
          description: Name returned by the Sendora API.
          maxLength: 200
          minLength: 1
          title: Name
          type: string
        nodes:
          description: Nodes returned by the Sendora API.
          items:
            $ref: '#/components/schemas/CampaignNode'
          maxItems: 200
          minItems: 1
          title: Nodes
          type: array
        version:
          default: '1.0'
          description: Version returned by the Sendora API.
          title: Version
          type: string
      required:
        - name
        - nodes
      title: CampaignWorkflow
      type: object
    ValidationError:
      properties:
        loc:
          description: Loc returned by the Sendora API.
          items:
            anyOf:
              - type: string
              - type: integer
          title: Location
          type: array
        msg:
          description: Msg returned by the Sendora API.
          title: Message
          type: string
        type:
          description: Type returned by the Sendora API.
          title: Error Type
          type: string
      required:
        - loc
        - msg
        - type
      title: ValidationError
      type: object
    CampaignNode:
      properties:
        config:
          additionalProperties: true
          description: Config returned by the Sendora API.
          title: Config
          type: object
        id:
          description: >-
            The step's id inside this workflow. Transitions refer to steps by
            this id.
          maxLength: 100
          minLength: 1
          title: Id
          type: string
        transitions:
          description: Transitions returned by the Sendora API.
          items:
            $ref: '#/components/schemas/Transition'
          title: Transitions
          type: array
        type:
          description: Type returned by the Sendora API.
          enum:
            - voice_call
            - send_email
            - send_sms
            - linkedin_connection
            - linkedin_message
            - linkedin_inmail
            - whatsapp_message
            - wait
            - condition
            - route
            - branch
            - ai_personalization
            - ai_decision
            - enrich
            - update_pipeline
            - create_task
            - human_approval
            - escalation
            - crm_update
            - send_webhook
            - trigger
          title: Type
          type: string
        variants:
          anyOf:
            - items:
                $ref: '#/components/schemas/NodeVariant'
              type: array
            - type: 'null'
          description: Variants returned by the Sendora API.
          title: Variants
      required:
        - id
        - type
        - config
      title: CampaignNode
      type: object
    Transition:
      properties:
        next:
          description: Next returned by the Sendora API.
          minLength: 1
          title: Next
          type: string
        'on':
          description: On returned by the Sendora API.
          minLength: 1
          title: 'On'
          type: string
      required:
        - 'on'
        - next
      title: Transition
      type: object
    NodeVariant:
      description: A single A/B variant on a campaign node.
      properties:
        config:
          additionalProperties: true
          description: Config returned by the Sendora API.
          title: Config
          type: object
        is_control:
          default: false
          description: Is control returned by the Sendora API.
          title: Is Control
          type: boolean
        variant_key:
          description: Variant key returned by the Sendora API.
          maxLength: 100
          minLength: 1
          pattern: ^[a-z0-9_\-]+$
          title: Variant Key
          type: string
        weight:
          default: 1
          description: Weight returned by the Sendora API.
          maximum: 100
          minimum: 0
          title: Weight
          type: integer
      required:
        - variant_key
        - config
      title: NodeVariant
      type: object
  securitySchemes:
    ApiKeyAuth:
      description: Customer API key created in the Sendora dashboard.
      in: header
      name: X-API-Key
      type: apiKey

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.