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

# Listar Llamadas de Campaña

> Returns a paginated list of calls for a specific campaign

<Info>
  **Límite de Tasa:** 12 solicitudes por segundo
</Info>


## OpenAPI

````yaml GET /campaigns/{id}/calls
openapi: 3.0.1
info:
  title: Altur API
  description: >-
    An API aimed to allow third-party developers to interact with the Altur
    platform through a RESTful interface.
  license:
    name: MIT
  version: '1.0'
servers:
  - url: https://api.altur.io/api/v1.0
security:
  - apiKeyAuth: []
paths:
  /campaigns/{id}/calls:
    get:
      description: Returns a paginated list of calls for a specific campaign
      parameters:
        - name: id
          in: path
          description: The identifier of the Campaign to return the Calls
          schema:
            type: integer
          required: true
        - name: status
          in: query
          description: Filters the Campaign Calls by the status of the Call
          schema:
            type: string
            enum:
              - ended
              - failed
              - busy
              - no-answer
              - in-progress
          required: false
        - name: answeredBy
          in: query
          description: Filters the Campaign Calls by who answered the call
          schema:
            type: string
            enum:
              - human
              - machine
              - unknown
          required: false
        - name: startDate
          in: query
          description: Filter calls created after this date in ISO 8601 format
          schema:
            type: string
            format: ISO 8601
          required: false
        - name: endDate
          in: query
          description: Filter calls created before this date in ISO 8601 format
          schema:
            type: string
            format: ISO 8601
          required: false
        - name: pageSize
          in: query
          description: Number of items per page to return.
          schema:
            type: integer
            default: 50
            minimum: 1
            maximum: 100
          required: false
        - name: pageIndex
          in: query
          description: Page number to return (0-based).
          schema:
            type: integer
            default: 0
            maximum: 25000
            minimum: 0
          required: false
      responses:
        '200':
          description: Campaign Calls response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CampaignCallsResponse'
        '400':
          description: Invalid input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DRFBadRequestError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Campaign not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    CampaignCallsResponse:
      type: object
      properties:
        total_count:
          description: Total number of Campaign Calls for the given query.
          type: integer
        calls:
          type: array
          items:
            $ref: '#/components/schemas/CampaignCall'
        pagination:
          $ref: '#/components/schemas/CampaignCallsPagination'
          type: object
    DRFBadRequestError:
      type: object
      description: >-
        Validation error response where each field name that has an error is a
        property containing an array of error messages
      additionalProperties:
        type: array
        items:
          type: string
      example:
        field1:
          - This field is required.
        field2:
          - Incorrect format.
        non_field_errors:
          - The date range is not valid.
    Error:
      required:
        - error
        - message
      type: object
      properties:
        error:
          type: integer
          format: int32
        message:
          type: string
    CampaignCall:
      type: object
      properties:
        id:
          description: Unique identifier for the Call
          type: string
        type:
          description: Type of the Call
          type: string
          enum:
            - inbound
            - outbound
        status:
          description: Status of the Call
          type: string
          enum:
            - ended
            - failed
            - busy
            - no-answer
            - in-progress
        answered_by:
          description: Who or what answered the Call
          type: string
          enum:
            - human
            - machine
            - unknown
          nullable: true
        created_at:
          description: Datetime when the Call was created (ISO 8601)
          type: string
          format: date-time
        started_at:
          description: Datetime when the Call was started (ISO 8601)
          type: string
          format: date-time
          nullable: true
        ended_at:
          description: Datetime when the Call ended (ISO 8601)
          type: string
          format: date-time
          nullable: true
        duration:
          description: Duration of the Call in seconds
          type: integer
        billed_duration:
          description: Billed duration of the Call in seconds
          type: integer
        contact:
          $ref: '#/components/schemas/CampaignCallContact'
          description: The contact associated with this call
          type: object
        extracted_data:
          description: Key-value pairs extracted from the call conversation
          type: object
          example:
            interested: 'yes'
            appointment_date: '2024-01-20'
        tags:
          description: Tags assigned to the Call
          type: array
          items:
            type: string
          example:
            - interested
            - callback
        recording_url:
          description: URL to fetch the call recording
          type: string
          example: /api/v1.0/call/call_abc123def456/recording
        policy_evaluation:
          $ref: '#/components/schemas/PolicyEvaluation'
          description: Policy compliance evaluation results
    CampaignCallsPagination:
      type: object
      description: Pagination information for campaign calls
      properties:
        page_index:
          type: integer
          description: Current page index
        page_size:
          type: integer
          description: Number of items per page
        has_next:
          type: boolean
          description: Whether there are more pages available
        has_previous:
          type: boolean
          description: Whether there are previous pages
        next_page:
          type: integer
          description: Index of the next page (null if no more pages)
          nullable: true
        previous_page:
          type: integer
          description: Index of the previous page (null if no previous pages)
          nullable: true
    CampaignCallContact:
      type: object
      properties:
        id:
          description: Internal Campaign Contact ID
          type: integer
        f_id:
          description: External/foreign ID (your reference)
          type: string
        name:
          description: Contact name
          type: string
        phone_number:
          description: Phone number in E.164 format
          type: string
        status:
          description: Contact status in the campaign
          type: string
    PolicyEvaluation:
      type: object
      description: >-
        Policy compliance evaluation results for a call. Score and count fields
        will be null when the call has not been evaluated (e.g., not sampled, no
        active policies, or evaluation still pending). The policies array will
        be empty in these cases.
      properties:
        score:
          description: >-
            Compliance score from 0 to 10. Formula: (policies_met /
            applicable_policies) * 10. Null if no applicable policies or
            evaluation not run.
          type: number
          format: float
          nullable: true
        policies_evaluated_count:
          description: Total number of policies evaluated
          type: integer
          nullable: true
        policies_met_count:
          description: Number of policies that were met
          type: integer
          nullable: true
        policies_not_applicable_count:
          description: Number of policies marked as not applicable
          type: integer
          nullable: true
        completed:
          description: Whether the policy evaluation has been completed
          type: boolean
        completed_at:
          description: When the evaluation was completed
          type: string
          format: date-time
          nullable: true
        policies:
          description: Per-policy evaluation results
          type: array
          items:
            $ref: '#/components/schemas/PolicyEvaluationItem'
    PolicyEvaluationItem:
      type: object
      description: Individual policy evaluation result
      properties:
        policy_id:
          description: Unique identifier of the policy
          type: string
        policy_name:
          description: Name of the policy
          type: string
        result:
          description: Evaluation result
          type: string
          enum:
            - met
            - not_met
            - not_applicable
        explanation:
          description: LLM-generated explanation of the evaluation
          type: string
        evaluated_at:
          description: When this policy was evaluated
          type: string
          format: date-time
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        Add `api-key YOUR_API_SECRET_KEY` as the value of the `Authorization`
        header.

````