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

# List Campaigns

> List Campaigns.

<Note>Actual endpoint: `GET https://api.ravan.ai/api/v1/campaigns/` (note the trailing slash)</Note>

### Authorizations

<ParamField header="X-Api-Key" type="string" required>
  Your Agni API key used to authenticate the request. Pass it in the `X-Api-Key` header. Find or rotate it from your Ravan AI account settings.
</ParamField>

***

### Query Parameters

<ParamField query="limit" type="integer">
  The maximum number of records to return. Use this with `offset` or pagination fields to page through results.
</ParamField>

<ParamField query="offset" type="integer">
  The number of records to skip before returning results. Use this with `limit` for pagination.
</ParamField>

<ParamField query="status" type="string">
  Filters or sets the current status of the resource. Use one of the status values supported by the endpoint.
</ParamField>

***

### Response

<ResponseField name="success" type="boolean">
  Whether the request succeeded.
</ResponseField>

<ResponseField name="message" type="string">
  Human-readable status message.
</ResponseField>

<ResponseField name="data" type="array">
  Array of campaign objects.

  <Expandable title="Campaign Object">
    <ResponseField name="id" type="string">
      Unique campaign identifier.
    </ResponseField>

    <ResponseField name="organizationId" type="string">
      ID of the organization this campaign belongs to.
    </ResponseField>

    <ResponseField name="name" type="string">
      Name of the campaign.
    </ResponseField>

    <ResponseField name="agentId" type="string">
      ID of the agent assigned to this campaign.
    </ResponseField>

    <ResponseField name="phoneNumberId" type="string">
      ID of the phone number used for this campaign.
    </ResponseField>

    <ResponseField name="fromPhoneNumber" type="string">
      The phone number calls are made from.
    </ResponseField>

    <ResponseField name="status" type="string">
      Current status of the campaign.
    </ResponseField>

    <ResponseField name="executionStatus" type="string">
      Execution-level status of the campaign.
    </ResponseField>

    <ResponseField name="schedule" type="object">
      Campaign scheduling configuration.

      <Expandable title="schedule">
        <ResponseField name="start" type="string">
          Campaign start datetime.
        </ResponseField>

        <ResponseField name="end" type="string">
          Campaign end datetime.
        </ResponseField>

        <ResponseField name="windowStart" type="string">
          Daily calling window start time.
        </ResponseField>

        <ResponseField name="windowEnd" type="string">
          Daily calling window end time.
        </ResponseField>

        <ResponseField name="windowDays" type="array">
          Days of the week the calling window is active (0=Sunday, 6=Saturday).
        </ResponseField>

        <ResponseField name="timezone" type="string">
          Timezone for the schedule window.
        </ResponseField>

        <ResponseField name="maxConcurrent" type="integer">
          Maximum number of concurrent calls allowed.
        </ResponseField>

        <ResponseField name="retryAttempts" type="integer">
          Number of retry attempts for unanswered calls.
        </ResponseField>

        <ResponseField name="retryGapMin" type="integer">
          Gap in minutes between retry attempts.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="contactStats" type="object">
      Aggregated contact-level statistics for the campaign.

      <Expandable title="contactStats">
        <ResponseField name="total" type="integer">
          Total number of contacts in the campaign.
        </ResponseField>

        <ResponseField name="contacted" type="integer">
          Number of contacts successfully reached.
        </ResponseField>

        <ResponseField name="successful" type="integer">
          Number of contacts with a successful outcome.
        </ResponseField>

        <ResponseField name="failed" type="integer">
          Number of contacts that failed.
        </ResponseField>

        <ResponseField name="noAnswer" type="integer">
          Number of contacts that did not answer.
        </ResponseField>

        <ResponseField name="pending" type="integer">
          Number of contacts yet to be called.
        </ResponseField>

        <ResponseField name="inProgress" type="integer">
          Number of contacts currently being called.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="startedAt" type="string">
      Timestamp when the campaign started.
    </ResponseField>

    <ResponseField name="completedAt" type="string">
      Timestamp when the campaign completed.
    </ResponseField>

    <ResponseField name="createdAt" type="string">
      Timestamp when the campaign was created.
    </ResponseField>

    <ResponseField name="updatedAt" type="string">
      Timestamp when the campaign was last updated.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="meta" type="object">
  Pagination metadata.

  <Expandable title="meta">
    <ResponseField name="total" type="integer">
      Total number of records.
    </ResponseField>

    <ResponseField name="limit" type="integer">
      Page size limit.
    </ResponseField>

    <ResponseField name="offset" type="integer">
      Pagination offset.
    </ResponseField>
  </Expandable>
</ResponseField>
