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

# List scheduled calls

> Requires a contact attributed to the credential workspace: ScheduledCall has no workspace column, so unlinked or unattributed legacy records are excluded. Owner restrictions apply. The API does not dial callbacks or alter in-app scheduling. scheduledAt is a UTC instant; contact timezone and source accompany it. List filters use ownerId, status, and an optional inclusive from / exclusive to window on scheduledAt. Cursor pagination is ordered by numeric ID. Missing and inaccessible records return 404.



## OpenAPI

````yaml /api/openapi.json get /scheduled-calls
openapi: 3.1.0
info:
  title: PowerDialer API v2
  version: 2.0.0
  description: >-
    Connect your CRM, sales workspace or reporting tools to PowerDialer using
    scoped API keys. Manage contacts and calling lists, read call evidence and
    analytics, and receive signed events. All example records and IDs are
    synthetic; replace them with values from your workspace. Shared-key v1 is
    retired. See /availability for verified release status and historical data
    coverage. Legacy outbound webhooks use a separate contract.
servers:
  - url: https://api.migration.powerdialer.ai/api/public/v2
    description: Production API v2; see /availability for verified release status.
security:
  - ApiKey: []
tags:
  - name: Authentication
  - name: Workspace members
  - name: Contacts
  - name: Calling lists
  - name: Imports
  - name: Calls
  - name: Custom dispositions
  - name: Synchronization
  - name: Analytics
  - name: Webhooks
  - name: Webhook deliveries
  - name: Incoming webhook payloads
  - name: Scheduled calls
    description: Read and manage contact-linked scheduled callbacks.
paths:
  /scheduled-calls:
    get:
      tags:
        - Scheduled calls
      summary: List scheduled calls
      description: >-
        Requires a contact attributed to the credential workspace: ScheduledCall
        has no workspace column, so unlinked or unattributed legacy records are
        excluded. Owner restrictions apply. The API does not dial callbacks or
        alter in-app scheduling. scheduledAt is a UTC instant; contact timezone
        and source accompany it. List filters use ownerId, status, and an
        optional inclusive from / exclusive to window on scheduledAt. Cursor
        pagination is ordered by numeric ID. Missing and inaccessible records
        return 404.
      operationId: getScheduledCalls
      parameters:
        - name: after
          in: query
          required: false
          schema:
            type: integer
            minimum: 0
            maximum: 2147483647
            default: 0
          description: >-
            Exclusive numeric ID cursor. Omit or use 0 for the first page, then
            pass the previous nextCursor. Keep the same filters while paging.
          example: 0
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 200
            default: 50
          description: >-
            Maximum items to return in one page, from 1 to 200. Defaults to 50.
            Smaller pages reduce response size; this is not a total-result
            limit.
          example: 50
        - name: ownerId
          in: query
          required: false
          schema:
            type: string
        - name: status
          in: query
          required: false
          schema:
            type: string
            enum:
              - Pending
              - Completed
              - Failed
              - Cancelled
        - name: from
          in: query
          required: false
          schema:
            type: string
            format: date-time
            description: UTC instant. Writes must include Z or an explicit offset.
        - name: to
          in: query
          required: false
          schema:
            type: string
            format: date-time
            description: UTC instant. Writes must include Z or an explicit offset.
      responses:
        '200':
          description: Scheduled call result.
          headers:
            X-Request-Id:
              schema:
                type: string
                format: uuid
            RateLimit-Limit:
              schema:
                type: integer
            RateLimit-Remaining:
              schema:
                type: integer
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/ScheduledCall'
                  nextCursor:
                    type:
                      - string
                      - 'null'
                required:
                  - data
                  - nextCursor
              example:
                data:
                  - id: 123
                    ownerId: user_example
                    contactId: 123
                    phoneNumber: '+12125550100'
                    scheduledAt: '2026-10-15T18:00:00.000Z'
                    status: Pending
                    notes: Call back
                    callHistoryId: null
                    createdAt: '2026-10-12T12:00:00.000Z'
                    updatedAt: '2026-10-12T12:00:00.000Z'
                    timeZone: America/New_York
                    timeZoneSource: provided
                nextCursor: null
        default:
          description: >-
            Error. 400 invalid request; 401 invalid credential; 403 insufficient
            access; 404 not found; 409 state/idempotency conflict; 413 size
            limit; 415 body not sent as application/json; 422 verification
            failure; 429 rate limit (Retry-After seconds); 503 temporary service
            failure.
          headers:
            Retry-After:
              schema:
                type: integer
            X-Request-Id:
              schema:
                type: string
                format: uuid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: invalid_api_key
                  message: API key is invalid, expired or revoked
                  requestId: 00000000-0000-4000-8000-000000000004
      x-codeSamples:
        - lang: bash
          label: cURL
          source: >-
            # Replace example resource IDs and ownerId with values from your
            workspace.

            : "${POWERDIALER_API_KEY:?Set POWERDIALER_API_KEY to your scoped API
            key}"

            curl --request GET \
              --url 'https://api.migration.powerdialer.ai/api/public/v2/scheduled-calls?limit=50' \
              --header "Authorization: Bearer $POWERDIALER_API_KEY"
components:
  schemas:
    ScheduledCall:
      type: object
      properties:
        id:
          type: integer
        ownerId:
          type: string
        contactId:
          type: integer
        phoneNumber:
          type: string
        scheduledAt:
          type: string
          format: date-time
          description: UTC instant. Writes must include Z or an explicit offset.
        status:
          type: string
          enum:
            - Pending
            - Completed
            - Failed
            - Cancelled
        notes:
          type:
            - string
            - 'null'
        callHistoryId:
          type:
            - integer
            - 'null'
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        timeZone:
          type:
            - string
            - 'null'
        timeZoneSource:
          type: string
      required:
        - id
        - ownerId
        - contactId
        - phoneNumber
        - scheduledAt
        - status
        - notes
        - callHistoryId
        - createdAt
        - updatedAt
        - timeZone
        - timeZoneSource
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              description: Stable machine-readable error code.
            message:
              type: string
              description: Human-readable explanation.
            requestId:
              type: string
              format: uuid
              description: Request identifier to include when investigating a failure.
            details:
              type: array
              items:
                type: object
                properties:
                  path:
                    type: string
                    description: >-
                      Where the request failed, prefixed by location: `body`,
                      `body.<field>`, `query.<name>` or `path.<name>`. A
                      root-level problem reports its location alone, for example
                      `body` when no JSON object was sent, so a missing body is
                      never confused with a missing field or header.
                  message:
                    type: string
                required:
                  - path
                  - message
              description: >-
                Validation errors, when available. Each `path` names the part of
                the request that failed.
          required:
            - code
            - message
            - requestId
      required:
        - error
      examples:
        - error:
            code: insufficient_scope
            message: Requires contacts:read
            requestId: 00000000-0000-4000-8000-000000000004
        - error:
            code: invalid_request
            message: 'Request validation failed: body.url: Invalid url'
            requestId: 00000000-0000-4000-8000-000000000004
            details:
              - path: body.url
                message: Invalid url
  securitySchemes:
    ApiKey:
      type: http
      scheme: bearer
      bearerFormat: pd_<live|test>_<credential UUID>.<random secret>
      description: >-
        Issued in Developers. Workspace/owner/scopes come from credential, never
        acting-user headers. API keys cannot manage API credentials.

````

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