Manage inbound-only Agent plan phone lines via API
The SendBlue API v2 allows for the provisioning of phone lines specifically for the 'inbound_only' / Agent plan, enabling the programmatic addition and removal of these lines for subaccounts.
website·Indexed Aug 25, 2026
https://docs.sendblue.com/Searchable website documentation for Sendblue from https://docs.sendblue.com/.
seat_id is the primary identifier for a seat and should be passed to the seat_id parameter on send endpoints for attribution purposes.# List all seats
GET /api/v2/seats
# Get total seat count
GET /api/v2/seats/count
# Retrieve a specific seat by ID
GET /api/v2/seats/{seat_id}The API returns a MessageResponse object containing details about the sent message. Key fields include:
message_handle: Unique identifier for tracking the message.message_type: Type of message (e.g., "message", "group", or "location").content: The message text.from_number: The sending phone number.number: The recipient phone number.seat_id: UUID of the seat that sent the message.send_style: The iMessage expressive style used (e.g., "celebration").app_card: Optional object containing App Card data (Apple Messages framework). This includes appName, extensionBundleId, and layout details. Note: App Cards require a V2 Mac line and iMessage-capable recipients; they do not fall back to SMS and are unavailable on the free plan.SendCarouselSendResponse object is returned after sending a carousel message. It contains metadata about the message delivery and tracking identifiers.interface SendCarouselSendResponse {
accountEmail?: string; // Email of the account that sent the message
from_number?: string; // Sending phone number
is_outbound?: boolean; // Indicates if the message was outbound
media_url?: string; // First media URL from the carousel
message_handle?: string; // Unique identifier for tracking the message
message_type?: string; // Type of the message
number?: string; // Recipient phone number
status?: string; // Delivery status
reply_to?: {
message_handle: string; // Public handle of the immediate parent message
part_index?: number; // Override for a known part of a multipart target (0-50)
};
thread_originator?: {
message_handle: string; // Public handle of the thread's root message
part?: string; // Opaque Apple thread-originator part descriptor
};
}seat_id identifier.GET /api/v2/seats/{seat_id}The GET /api/status endpoint returns a MessageResponse object containing detailed information about the message. Key fields include:
status: The current state of the message. Possible values are QUEUED, SENT, DELIVERED, or ERROR.message_handle: The unique identifier for tracking the message.content: The text content of the message.number: The recipient's phone number.from_number: The sending phone number.error_code / error_message: Provided if the message status is ERROR.date_created / date_updated: Timestamps in date-time format.message_type: Indicates if the message is a message, group, or location.app_card: Contains metadata for Apple iMessage App Cards (available on paid plans), including appName, extensionBundleId, and url.The response for retrieving a verified contact contains a data object with two main components:
created_at, updated_at, phone_number (E.164 format), verification_status (either "pending" or "verified"), and a verified boolean indicating if the contact completed verification by messaging the shared line.phone_number and the type (set to "shared").{
"data": {
"contact": {
"created_at": "2026-08-12T18:32:12.000Z",
"phone_number": "+12125550199",
"updated_at": "2026-08-12T18:32:12.000Z",
"verification_status": "pending",
"verified": false
},
"line": {
"phone_number": "+12125550101",
"type": "shared"
}
}
}