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

# List campaign variables

> The `{{variables}}` campaign steps can use. `person` and `sender` values fill in automatically, `job` values come from the job chosen when enrolling, `manual` values are typed in for each enrollment. Any name not in this list also works as a manual variable. AI variables are written as `{{ai:name}}` and need a description in the step `ai_variables`. Needs `campaigns:read`.



## OpenAPI

````yaml /api-reference/openapi-v1.json get /v1/campaigns/variables
openapi: 3.1.0
info:
  title: Stardex API (v1)
  version: 1.0.0
  description: >-
    Stardex ATS API — manage candidates, jobs, companies, and recruiting
    workflows.
servers:
  - url: https://api.stardex.ai
    description: Production API server
security:
  - bearerAuth: []
tags:
  - name: Persons
    description: Manage person records — contacts, work history, and custom fields.
  - name: Jobs
    description: Manage job postings — pipeline stages, team members, and custom fields.
  - name: Candidates
    description: Manage candidate records and pipeline stage transitions.
  - name: Companies
    description: Browse and retrieve company records.
  - name: Lists
    description: Create, search, and retrieve saved person and company lists.
  - name: Person Activities
    description: Create and manage activity records (notes, emails, meetings) for persons.
  - name: Team Members
    description: List team members for use in search filters and assignments.
  - name: Custom Fields
    description: Retrieve custom field definitions and tag options for search filters.
  - name: Campaigns
    description: >-
      Create and edit email campaigns, enroll people through enrollment batches,
      and manage who is enrolled.
paths:
  /v1/campaigns/variables:
    get:
      tags:
        - Campaigns
      summary: List campaign variables
      description: >-
        The `{{variables}}` campaign steps can use. `person` and `sender` values
        fill in automatically, `job` values come from the job chosen when
        enrolling, `manual` values are typed in for each enrollment. Any name
        not in this list also works as a manual variable. AI variables are
        written as `{{ai:name}}` and need a description in the step
        `ai_variables`. Needs `campaigns:read`.
      operationId: listCampaignVariables
      responses:
        '200':
          description: Campaign variables
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CampaignVariablesResponse'
              example:
                success: true
                data:
                  - name: first_name
                    label: First name
                    kind: person
                    aliases:
                      - firstname
                    example: John
                    hint: null
                  - name: sender_email
                    label: Sender email
                    kind: sender
                    aliases:
                      - from_email
                      - sender_email_address
                    example: you@example.com
                    hint: The mailbox you are sending from.
                  - name: search_client
                    label: Search client company
                    kind: job
                    aliases:
                      - client_name
                      - company_client
                      - job_company
                      - client_company
                    example: Globex
                    hint: >-
                      The company this search is for. Left empty when it is
                      confidential.
                  - name: personalization_line
                    label: Personalization line
                    kind: manual
                    aliases: []
                    example: ''
                    hint: null
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                    description: Always false for error responses.
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: >-
                          Machine-readable error code (e.g. "VALIDATION_ERROR",
                          "NOT_FOUND").
                      message:
                        type: string
                        description: Human-readable error description.
                      details:
                        type: object
                        additionalProperties: {}
                        description: >-
                          Extra facts about the error when they help you fix it,
                          such as a limit and when it resets.
                    required:
                      - code
                      - message
                required:
                  - success
                  - error
        '403':
          description: No access to campaigns, or the API key lacks the permission
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                    description: Always false for error responses.
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: >-
                          Machine-readable error code (e.g. "VALIDATION_ERROR",
                          "NOT_FOUND").
                      message:
                        type: string
                        description: Human-readable error description.
                      details:
                        type: object
                        additionalProperties: {}
                        description: >-
                          Extra facts about the error when they help you fix it,
                          such as a limit and when it resets.
                    required:
                      - code
                      - message
                required:
                  - success
                  - error
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                    description: Always false for error responses.
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: >-
                          Machine-readable error code (e.g. "VALIDATION_ERROR",
                          "NOT_FOUND").
                      message:
                        type: string
                        description: Human-readable error description.
                      details:
                        type: object
                        additionalProperties: {}
                        description: >-
                          Extra facts about the error when they help you fix it,
                          such as a limit and when it resets.
                    required:
                      - code
                      - message
                required:
                  - success
                  - error
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                    description: Always false for error responses.
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: >-
                          Machine-readable error code (e.g. "VALIDATION_ERROR",
                          "NOT_FOUND").
                      message:
                        type: string
                        description: Human-readable error description.
                      details:
                        type: object
                        additionalProperties: {}
                        description: >-
                          Extra facts about the error when they help you fix it,
                          such as a limit and when it resets.
                    required:
                      - code
                      - message
                required:
                  - success
                  - error
components:
  schemas:
    CampaignVariablesResponse:
      type: object
      properties:
        success:
          type: boolean
          enum:
            - true
        data:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
                description: Use it as {{name}}.
              label:
                type: string
              kind:
                type: string
                enum:
                  - person
                  - sender
                  - job
                  - manual
                description: >-
                  person and sender are filled automatically, job comes from the
                  job chosen at enrollment, manual is typed in.
              aliases:
                type: array
                items:
                  type: string
                description: Other spellings that also work.
              example:
                type: string
              hint:
                type:
                  - string
                  - 'null'
            required:
              - name
              - label
              - kind
              - aliases
              - example
              - hint
      required:
        - success
        - data
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Authenticate with a Bearer token: API key, OAuth token, or session
        token.

````

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