---
title: "Get Outbound Dial Status"
method: GET
path: "/developer/outbound-dial-status"
tags: ["Developer", "Developer - Outbound Calls"]
---

# Get Outbound Dial Status

`GET /developer/outbound-dial-status`

## Request

- Base URL: `https://api.openintake.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.openintake.ai/developer/outbound-dial-status`
- Auth: none declared

Today's outbound dial budget for this customer and how much is spent.

Read-only view of what the dialer sees, so the callback dial share can be set
with its live effect on screen instead of inferred from logs.

The counters here are the async twins of the synchronous ones in
app.tasks.outbound_tasks; each is commented with the sync original it mirrors.
The ET day bounds come from the same shared helper both use, which is what
keeps the two from disagreeing about which day it is.

## Response `200`

Successful Response

- OutboundDialStatusResponse: Today's outbound dial capacity and how much of it is already spent.
  - `max_calls_per_number_per_day` integer, nullable: Per-number daily cap. Null means no limit.
  - `callback_dial_share_percent` integer, required: Share of the daily budget callback re-dials may spend
  - `eligible_number_count` integer, required: Outbound numbers the dialer may currently use
  - `daily_dial_budget` integer, nullable: eligible_number_count x max_calls_per_number_per_day. Null when there is no per-number cap.
  - `callback_sub_cap` integer, nullable: Callback dials allowed today. Null means no reservation is in force.
  - `reserved_for_new_leads` integer, nullable: Dials held back from callbacks for first attempts. Null when there is no reservation.
  - `dials_today` integer, required: Outbound calls this customer placed today (ET)
  - `callback_dials_today` integer, required: Of those, callback re-dials
  - `first_attempt_dials_today` integer, required: Of those, first attempts
  - `callback_budget_remaining` integer, nullable: Callback dials left today. Null when there is no reservation.
  - `per_number` OutboundDialStatusPerNumber[], required
    - `phone_number` string, required
    - `calls_today` integer, required
    - `max_calls_per_day` integer, nullable: Null means this number has no daily cap
  - `in_calling_window` boolean, required
  - `calling_window_start` string, time, nullable
  - `calling_window_end` string, time, nullable
  - `next_calling_window_open` string, date-time, nullable
  - `current_time_et` string, time, required
  - `hours_follow_lead_timezone` boolean
  - `queued_first_attempt_count` integer, required
  - `queued_callback_count` integer, required

## Changes

- **2026-10-09** `d61063451a04`: 1 info
  - added the optional property `hours_follow_lead_timezone` to the response with the `200` status
- **2026-09-21** `7255c82c55a0`: 4 breaking, 1 info
  - the response property `calling_window_end` became optional for the status `200`
  - the response property `calling_window_start` became optional for the status `200`
  - response property `calling_window_end` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `calling_window_start` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - …1 more
- **2026-09-14** `2a47b07c930e`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/openintake/apis/openintake-api/changes/developer/outbound-dial-status/get.md)

---

[API](https://skmtc.dev/openintake/apis/openintake-api.md) - [All operations](https://skmtc.dev/openintake/apis/openintake-api/llms.txt) - [OpenAPI document](https://skmtc.dev/openintake/apis/openintake-api/revisions/de90a8dcbc07?raw)
