Skip to content
Get Started

Lines

Sendblue line configuration and health state

Get line state snapshot
GET/api/v2/lines/state
Check whether a contact is known on a line
GET/api/v2/lines/contact-status
Get live line usage and capacity
GET/api/v2/lines/usage
ModelsExpand Collapse
LineContactStatusResponse object { classification, known_contact, new_contact_lookback_days, 4 more }
classification: "known" or "new" or "not_applicable" or "unavailable"

Known or new contact status. Returns not_applicable if these limits do not apply, or unavailable if Sendblue could not check the status.

One of the following:
"known"
"new"
"not_applicable"
"unavailable"
known_contact: boolean

True for known, false for new, and null for not_applicable or unavailable. Other sending rules still apply.

new_contact_lookback_days: number

Days without activity before a contact counts as new again. Null if this limit does not apply or the setting is unavailable.

minimum0
exclusiveMinimum
number: string

Contact phone number in E.164 format.

sampled_at: string

When the contact status was checked in ISO 8601 UTC.

formatdate-time
sendblue_number: string

Sendblue phone number in E.164 format.

status: "OK"
LineUsageDailyWindow = LineUsageWindow { limit, nextSlotAt, remaining, used }
resetsAt: string

Next daily reset at 3 AM ET (America/New_York), accounting for daylight saving time.

formatdate-time
LineUsageResponse object { enabled, lines, status }
enabled: boolean

Whether usage reporting is enabled for your account. When false, lines is empty.

lines: array of LineUsageSnapshot { availableAt, daily, hourly, 4 more }
availableAt: string

When a limited line is expected to have capacity in both windows, assuming no further sends. Null if the line is not limited or the time is unknown.

formatdate-time
daily: LineUsageDailyWindow { resetsAt }
resetsAt: string

Next daily reset at 3 AM ET (America/New_York), accounting for daylight saving time.

formatdate-time
hourly: LineUsageWindow { limit, nextSlotAt, remaining, used }
limit: number

Current limit with any account or line overrides.

minimum0
nextSlotAt: string

When the oldest counted contact leaves this window. If the limit was lowered below usage, use availableAt to decide when to retry.

formatdate-time
remaining: number

New contacts you can still message in this window. Zero if current usage exceeds a lowered limit.

minimum0
used: number

Number of new contacts counted in this window.

minimum0
phone: string

The account’s Sendblue phone line in E.164 format.

sampledAt: string
state: "available" or "limited" or "paused" or 2 more

Current capacity status. Paused means the daily limit is zero; not_applicable means these limits do not apply; unavailable means usage or settings could not be checked.

One of the following:
"available"
"limited"
"paused"
"not_applicable"
"unavailable"
newContactLookbackDays: optional number

Days without activity before a contact counts as new again. This field may be omitted.

minimum0
exclusiveMinimum
status: "OK"
LineUsageSnapshot object { availableAt, daily, hourly, 4 more }
availableAt: string

When a limited line is expected to have capacity in both windows, assuming no further sends. Null if the line is not limited or the time is unknown.

formatdate-time
daily: LineUsageDailyWindow { resetsAt }
resetsAt: string

Next daily reset at 3 AM ET (America/New_York), accounting for daylight saving time.

formatdate-time
hourly: LineUsageWindow { limit, nextSlotAt, remaining, used }
limit: number

Current limit with any account or line overrides.

minimum0
nextSlotAt: string

When the oldest counted contact leaves this window. If the limit was lowered below usage, use availableAt to decide when to retry.

formatdate-time
remaining: number

New contacts you can still message in this window. Zero if current usage exceeds a lowered limit.

minimum0
used: number

Number of new contacts counted in this window.

minimum0
phone: string

The account’s Sendblue phone line in E.164 format.

sampledAt: string
state: "available" or "limited" or "paused" or 2 more

Current capacity status. Paused means the daily limit is zero; not_applicable means these limits do not apply; unavailable means usage or settings could not be checked.

One of the following:
"available"
"limited"
"paused"
"not_applicable"
"unavailable"
newContactLookbackDays: optional number

Days without activity before a contact counts as new again. This field may be omitted.

minimum0
exclusiveMinimum
LineUsageWindow object { limit, nextSlotAt, remaining, used }
limit: number

Current limit with any account or line overrides.

minimum0
nextSlotAt: string

When the oldest counted contact leaves this window. If the limit was lowered below usage, use availableAt to decide when to retry.

formatdate-time
remaining: number

New contacts you can still message in this window. Zero if current usage exceeds a lowered limit.

minimum0
used: number

Number of new contacts counted in this window.

minimum0
LineContactStatusResponse object { classification, known_contact, new_contact_lookback_days, 4 more }
classification: "known" or "new" or "not_applicable" or "unavailable"

Known or new contact status. Returns not_applicable if these limits do not apply, or unavailable if Sendblue could not check the status.

One of the following:
"known"
"new"
"not_applicable"
"unavailable"
known_contact: boolean

True for known, false for new, and null for not_applicable or unavailable. Other sending rules still apply.

new_contact_lookback_days: number

Days without activity before a contact counts as new again. Null if this limit does not apply or the setting is unavailable.

minimum0
exclusiveMinimum
number: string

Contact phone number in E.164 format.

sampled_at: string

When the contact status was checked in ISO 8601 UTC.

formatdate-time
sendblue_number: string

Sendblue phone number in E.164 format.

status: "OK"
LineUsageResponse object { enabled, lines, status }
enabled: boolean

Whether usage reporting is enabled for your account. When false, lines is empty.

lines: array of LineUsageSnapshot { availableAt, daily, hourly, 4 more }
availableAt: string

When a limited line is expected to have capacity in both windows, assuming no further sends. Null if the line is not limited or the time is unknown.

formatdate-time
daily: LineUsageDailyWindow { resetsAt }
resetsAt: string

Next daily reset at 3 AM ET (America/New_York), accounting for daylight saving time.

formatdate-time
hourly: LineUsageWindow { limit, nextSlotAt, remaining, used }
limit: number

Current limit with any account or line overrides.

minimum0
nextSlotAt: string

When the oldest counted contact leaves this window. If the limit was lowered below usage, use availableAt to decide when to retry.

formatdate-time
remaining: number

New contacts you can still message in this window. Zero if current usage exceeds a lowered limit.

minimum0
used: number

Number of new contacts counted in this window.

minimum0
phone: string

The account’s Sendblue phone line in E.164 format.

sampledAt: string
state: "available" or "limited" or "paused" or 2 more

Current capacity status. Paused means the daily limit is zero; not_applicable means these limits do not apply; unavailable means usage or settings could not be checked.

One of the following:
"available"
"limited"
"paused"
"not_applicable"
"unavailable"
newContactLookbackDays: optional number

Days without activity before a contact counts as new again. This field may be omitted.

minimum0
exclusiveMinimum
status: "OK"
LineUsageSnapshot object { availableAt, daily, hourly, 4 more }
availableAt: string

When a limited line is expected to have capacity in both windows, assuming no further sends. Null if the line is not limited or the time is unknown.

formatdate-time
daily: LineUsageDailyWindow { resetsAt }
resetsAt: string

Next daily reset at 3 AM ET (America/New_York), accounting for daylight saving time.

formatdate-time
hourly: LineUsageWindow { limit, nextSlotAt, remaining, used }
limit: number

Current limit with any account or line overrides.

minimum0
nextSlotAt: string

When the oldest counted contact leaves this window. If the limit was lowered below usage, use availableAt to decide when to retry.

formatdate-time
remaining: number

New contacts you can still message in this window. Zero if current usage exceeds a lowered limit.

minimum0
used: number

Number of new contacts counted in this window.

minimum0
phone: string

The account’s Sendblue phone line in E.164 format.

sampledAt: string
state: "available" or "limited" or "paused" or 2 more

Current capacity status. Paused means the daily limit is zero; not_applicable means these limits do not apply; unavailable means usage or settings could not be checked.

One of the following:
"available"
"limited"
"paused"
"not_applicable"
"unavailable"
newContactLookbackDays: optional number

Days without activity before a contact counts as new again. This field may be omitted.

minimum0
exclusiveMinimum
LineUsageWindow object { limit, nextSlotAt, remaining, used }
limit: number

Current limit with any account or line overrides.

minimum0
nextSlotAt: string

When the oldest counted contact leaves this window. If the limit was lowered below usage, use availableAt to decide when to retry.

formatdate-time
remaining: number

New contacts you can still message in this window. Zero if current usage exceeds a lowered limit.

minimum0
used: number

Number of new contacts counted in this window.

minimum0
LineUsageDailyWindow = LineUsageWindow { limit, nextSlotAt, remaining, used }
resetsAt: string

Next daily reset at 3 AM ET (America/New_York), accounting for daylight saving time.

formatdate-time
LineState object { assignment, sendblue_number, status, 4 more }
assignment: "assigned" or "shared" or "grace_period"
One of the following:
"assigned"
"shared"
"grace_period"
sendblue_number: string
status: "ONLINE" or "OFFLINE" or "DEGRADED" or "UNKNOWN"
One of the following:
"ONLINE"
"OFFLINE"
"DEGRADED"
"UNKNOWN"
worker_id: string
degraded_since: optional string
effective_until: optional string
status_changed_at: optional string
LineGetStateResponse object { data, snapshot_at, status }
data: array of LineState { assignment, sendblue_number, status, 4 more }
assignment: "assigned" or "shared" or "grace_period"
One of the following:
"assigned"
"shared"
"grace_period"
sendblue_number: string
status: "ONLINE" or "OFFLINE" or "DEGRADED" or "UNKNOWN"
One of the following:
"ONLINE"
"OFFLINE"
"DEGRADED"
"UNKNOWN"
worker_id: string
degraded_since: optional string
effective_until: optional string
status_changed_at: optional string
snapshot_at: string
status: "OK"

LinesCall Forwarding

Sendblue line configuration and health state

Get call forwarding for a line
GET/api/lines/{sendblue_number}/call-forwarding
Set call forwarding for a line
PUT/api/lines/{sendblue_number}/call-forwarding
Clear call forwarding for a line
DELETE/api/lines/{sendblue_number}/call-forwarding
ModelsExpand Collapse
CallForwardingRetrieveResponse object { forwarding_number, sendblue_number }
forwarding_number: string

The number calls are forwarded to, or null if not set

sendblue_number: string

The Sendblue phone number (E.164)

CallForwardingUpdateResponse object { forwarding_number, sendblue_number }
forwarding_number: string

The number calls are forwarded to, or null if not set

sendblue_number: string

The Sendblue phone number (E.164)

CallForwardingDeleteResponse object { forwarding_number, sendblue_number }
forwarding_number: string

The number calls are forwarded to, or null if not set

sendblue_number: string

The Sendblue phone number (E.164)