Skip to main content

Crate sendly

Crate sendly 

Source
Expand description

§Sendly Rust SDK

Official Rust client for the Sendly SMS API.

§Quick Start

use sendly::{Sendly, SendMessageRequest};

#[tokio::main]
async fn main() -> Result<(), sendly::Error> {
    let client = Sendly::new("sk_live_v1_your_api_key");

    let message = client.messages()
        .send(SendMessageRequest::new("+15551234567", "Hello from Sendly!"))
        .await?;

    println!("Message sent: {}", message.id);
    Ok(())
}

§Webhooks Management

use sendly::Sendly;

#[tokio::main]
async fn main() -> Result<(), sendly::Error> {
    let client = Sendly::new("sk_live_v1_your_api_key");

    // Create a webhook
    let response = client.webhooks().create(
        "https://example.com/webhook",
        vec!["message.delivered", "message.failed"],
    ).await?;

    println!("Webhook secret: {}", response.secret);
    Ok(())
}

§Account & Credits

use sendly::Sendly;

#[tokio::main]
async fn main() -> Result<(), sendly::Error> {
    let client = Sendly::new("sk_live_v1_your_api_key");

    let credits = client.account().credits().await?;
    println!("Available credits: {}", credits.available_balance);
    Ok(())
}

Re-exports§

pub use business_upgrade::BusinessUpgradeResource;

Modules§

business_upgrade
Business Upgrade Resource — Entity-Upgrade (“fork-with-new-number”)
webhooks
Sendly Webhook Helpers

Structs§

Account
Account information.
AccountLimits
Account rate limits.
AccountResource
Account resource for managing account information and credits.
AccountVerification
Account verification status.
AddContactsRequest
AddLabelsRequest
Request to add labels to a conversation.
AiMetadata
AI classification metadata for an inbound message.
AnalyticsOverview
AnalyticsPeriod
ApiKey
An API key.
AutoTopUpSettings
AvailableNumber
A number available to buy. monthly_cost is already priced for your account (a display string).
AvailableNumbersResponse
Response from NumbersResource::list_available.
BatchList
Paginated list of batches.
BatchMessageItem
A single message in a batch request.
BatchMessageResponse
Response from sending batch messages.
BatchMessageResult
Result of a single message in a batch.
BatchPreviewItem
A single message in a batch preview.
BatchPreviewResponse
Response from previewing a batch (dry run).
BillingBreakdown
BillingBreakdownOptions
BillingBreakdownSummary
BulkMarkValidRequest
Request body for contacts.bulk_mark_valid. Pass either an explicit id array (up to 10,000 per call) OR a list_id, not both. Foreign ids silently no-op via the per-organization filter.
BulkMarkValidResponse
Response from contacts.bulk_mark_valid. Reports how many contacts actually had their invalid flag cleared. Already-clean contacts and foreign ids don’t count.
BulkProvisionRequest
BulkProvisionResult
BulkProvisionResultItem
BulkProvisionSummary
BulkProvisionWorkspace
BuyNumberRequest
Request body for NumbersResource::buy.
BuyNumberResponse
Response from NumbersResource::buy.
Campaign
CampaignListResponse
CampaignPreview
CampaignsResource
CancelInvitationResponse
CancelScheduledMessageResponse
Response from cancelling a scheduled message.
CheckNumbersRequest
CheckNumbersResponse
CheckVerificationRequest
CheckVerificationResponse
Contact
ContactList
ContactListResponse
ContactListsResource
ContactListsResponse
ContactsResource
Conversation
An SMS conversation thread.
ConversationContextBusiness
ConversationContextInfo
ConversationContextResponse
ConversationListResponse
Response from listing conversations.
ConversationMessages
Messages within a conversation.
ConversationPagination
Pagination info for conversation lists.
ConversationWithMessages
A conversation with its messages.
ConversationsResource
Conversations resource for managing SMS conversation threads.
CreateApiKeyRequest
Request to create an API key.
CreateApiKeyResponse
Response from creating an API key.
CreateCampaignRequest
CreateContactListRequest
CreateContactRequest
CreateDraftRequest
Request to create a draft.
CreateLabelRequest
Request to create a label.
CreateOptInPageRequest
CreateOptInPageResponse
CreateRuleRequest
CreateSessionRequest
CreateShortLinkRequest
Request to mint a branded short link.
CreateShortLinkResponse
A newly minted branded short link.
CreateTemplateRequest
CreateTenDlcBrandRequest
Request body for TenDlcResource::create_brand.
CreateTenDlcCampaignRequest
Request body for TenDlcResource::create_campaign.
CreateWebhookRequest
Request to create a webhook.
CreateWorkspaceKeyRequest
CreateWorkspaceRequest
CreditDataPoint
CreditTransaction
A credit transaction.
CreditTransactionList
List of credit transactions.
Credits
Credit balance information.
CreditsAnalytics
DeleteOptInPageResponse
DeleteTemplateResponse
DeleteWorkspaceResponse
DeliveryByWorkspace
DepositCreditsRequest
DnsInstructions
DnsRecord
DraftListResponse
Response from listing drafts.
DraftPagination
Pagination info for draft lists.
DraftsResource
Drafts resource for managing message drafts.
EnhanceMessageRequest
Request to AI-enhance a draft message. Provide text, message_type, or both — at least one is required.
EnhanceMessageResponse
Result of an AI message enhancement.
EnterpriseAccount
EnterpriseResource
EnterpriseWebhook
EnterpriseWebhookTestResult
EnterpriseWorkspace
EnterpriseWorkspaceDetail
EnterpriseWorkspaceSummary
EnterpriseWorkspaceVerification
GenerateBusinessPageRequest
GenerateBusinessPageResponse
GenerateTemplateRequest
GeneratedTemplate
GetConversationOptions
Options for getting a single conversation.
GroupMessageResponse
Response from sending a group MMS.
ImportContactItem
ImportContactsError
ImportContactsRequest
ImportContactsResponse
InheritVerificationRequest
InheritVerificationResponse
Invitation
Label
A conversation label.
LabelListResponse
Response from listing labels.
LabelsResource
Labels resource for managing conversation labels.
LinksResource
Links resource for branded URL shortening.
ListAvailableNumbersOptions
Options for NumbersResource::list_available.
ListBatchesOptions
Options for listing batches.
ListCampaignsOptions
ListContactsOptions
ListConversationsOptions
Options for listing conversations.
ListDeliveriesOptions
Options for listing webhook deliveries.
ListDraftsOptions
Options for listing drafts.
ListMessagesOptions
Options for listing messages.
ListScheduledMessagesOptions
Options for listing scheduled messages.
ListShortLinksOptions
Options for listing short links.
ListTemplatesOptions
ListTransactionsOptions
Options for listing transactions.
ListVerificationsOptions
Media
MediaFile
An uploaded media file.
Message
An SMS message.
MessageDataPoint
MessageDraft
A message draft.
MessageList
Paginated list of messages.
Messages
Messages resource for sending and managing SMS.
MessagesAnalytics
NumberBuyAction
Hosted-page hand-off returned when a buy needs the user to finish a step.
NumberCountriesResponse
Response from NumbersResource::list_countries.
NumberCountry
A country Sendly can provision numbers in.
NumbersResource
Numbers resource — discover, buy, and list phone numbers.
OptInPage
OwnedNumber
A phone number you own.
OwnedNumbersResponse
Response from NumbersResource::list.
Pagination
PoolCredits
ProvisionWorkspaceRequest
ProvisionWorkspaceResponse
QuotaSettings
RejectDraftRequest
Request to reject a draft.
ReleaseNumberResponse
Response from NumbersResource::release.
ReplyToConversationRequest
Request to reply to a conversation.
ResumeWorkspaceResponse
RevokeKeyResponse
RotateApiKeyRequest
Request to rotate an API key.
RotateApiKeyResponse
Response from rotating an API key (see [AccountResource::rotate_api_key]).
RotatedApiKey
A rotated (newly issued) API key: every ApiKey field plus the one-time raw secret and a caution to store it.
Rule
RuleListResponse
RulesResource
Rules resource for managing auto-labeling rules.
ScheduleCampaignRequest
ScheduleMessageRequest
Request to schedule an SMS message.
ScheduledMessage
A scheduled SMS message.
ScheduledMessageList
Paginated list of scheduled messages.
SendBatchRequest
Request to send batch messages.
SendGroupMessageRequest
Request to send a group MMS to 2-8 recipients (US/Canada only).
SendInvitationRequest
SendMessageRequest
Request to send an SMS message.
SendVerificationRequest
SendVerificationResponse
Sendly
Sendly API client.
SendlyConfig
Configuration for the Sendly client.
SessionsResource
SetCustomDomainRequest
SetCustomDomainResponse
SetEnterpriseWebhookRequest
SetWorkspaceWebhookRequest
SetWorkspaceWebhookResponse
ShortLink
A short link with click analytics, as returned by ShortLinkListResponse.
ShortLinkListResponse
Response from listing short links.
SubmitVerificationResponse
SuggestRepliesResponse
Response from conversations.suggest_replies().
SuggestedReply
A single AI-generated suggested reply.
SuspendWorkspaceRequest
SuspendWorkspaceResponse
Template
TemplateList
TemplatePagination
TemplatesResource
TenDlcAssignment
A phone number assigned to a campaign.
TenDlcAssignmentListResponse
Response from TenDlcResource::list_assignments.
TenDlcAssignmentResponse
Response from TenDlcResource::assign_number.
TenDlcBrand
A business identity registered for carrier review.
TenDlcBrandListResponse
Response from TenDlcResource::list_brands.
TenDlcBrandResponse
Response from TenDlcResource::create_brand and TenDlcResource::get_brand.
TenDlcCampaign
A messaging campaign registered for carrier review.
TenDlcCampaignListResponse
Response from TenDlcResource::list_campaigns.
TenDlcCampaignResponse
Response from TenDlcResource::create_campaign and TenDlcResource::get_campaign.
TenDlcQualifyResponse
Response from TenDlcResource::qualify.
TenDlcQualifyResult
Result of a use-case qualification pre-check.
TenDlcResource
10DLC resource — register your business for carrier review and text from local US numbers.
TenDlcThroughput
Throughput detail for a campaign or use-case qualification.
TransferCreditsRequest
TransferCreditsResponse
UpdateAutoTopUpRequest
UpdateCampaignRequest
UpdateContactListRequest
UpdateContactRequest
UpdateConversationRequest
Request to update a conversation.
UpdateDraftRequest
Request to update a draft.
UpdateNumberRequest
Request body for NumbersResource::update.
UpdateOptInPageRequest
UpdateQuotaRequest
UpdateRuleRequest
UpdateShortLinkRequest
Request to enable or disable a short link.
UpdateShortLinkResponse
Response from enabling or disabling a short link.
UpdateTemplateRequest
UpdateWebhookRequest
Request to update a webhook.
ValidateSessionRequest
ValidateSessionResponse
Verification
VerificationAddress
VerificationContact
VerificationDocumentUploadResponse
VerificationList
VerificationSubmitInput
Verification submit/resubmit payload. All fields optional for resubmits (server merges with existing record). For initial provision via submit_verification (no existing record), the server validator requires: business_name, website, address, contact, use_case, use_case_summary, sample_messages, opt_in_workflow.
VerifyResource
VerifySession
Webhook
A webhook configuration.
WebhookCreatedResponse
Response from creating a webhook (includes secret).
WebhookDelivery
A webhook delivery attempt.
WebhookDeliveryList
List of webhook deliveries.
WebhookSecretRotation
Response from rotating a webhook secret.
WebhookTestResult
Result from testing a webhook.
WebhooksResource
Webhooks resource for managing webhook endpoints.
WorkspaceBillingItem
WorkspaceCredits
WorkspaceKey
WorkspaceKeyResponse
WorkspaceTransferCreditsRequest
WorkspaceTransferCreditsResponse
WorkspaceVerificationStatus
WorkspaceWebhookConfig
WorkspaceWebhookTestResult

Enums§

BatchStatus
Status of a message batch.
CampaignStatus
CircuitState
Circuit breaker state for webhooks.
ConversationStatus
Conversation status.
DeliveryStatus
DraftStatus
Draft status.
Error
Errors that can occur when using the Sendly SDK.
MessageDirection
Message direction.
MessageStatus
Message delivery status.
MessageType
Message type for compliance handling.
ScheduledMessageStatus
Status of a scheduled message.
SenderType
Sender type.
SessionStatus
TemplateType
TransactionType
Credit transaction type.
VerificationStatus
WebhookMode
Webhook mode for event filtering.

Type Aliases§

Result
Result type for Sendly operations.
SubmitVerificationRequest
Backwards-compatible alias. New code should use VerificationSubmitInput.