# info.summary
Transactional and consent-based marketing email for multi-project builders.

# info.description
The canonical NoticeAPI REST contract. Authenticate with an ntc_ bearer key. Workspace keys select a project with X-NoticeAPI-Project-ID; project-bound keys do not need the header.

# tags[].description
Project isolation inside a pooled workspace.

# tags[].description
Explicit capability, project, and domain grants.

# tags[].description
Transactional send, scheduling, and delivery status.

# tags[].description
Invite-only private-beta SMS queueing, message status, and carrier-dossier management. Management records do not activate live carrier delivery.

# tags[].description
API-based email receiving; not a mailbox product.

# paths./api/v1/health.get.description
Unauthenticated liveness probe. It does not access the datastore.

# paths./api/v1/api-keys.post.description
The secret is returned once. A key may mint only a grant equal to or narrower than its own.

# paths./api/v1/api-keys.post.requestBody.content.application/json.schema.properties.scopes.description
Legacy input. When present it always creates a selected-capability grant, never full access.

# paths./api/v1/domains.get.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/domains.post.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/domains/{id}.get.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/domains/{id}.delete.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/domains/{id}/verify.post.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/email/send.post.summary
Send or schedule one transactional email

# paths./api/v1/email/send.post.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/email/batch.post.description
Batch entries are sent immediately. Scheduling and attachments are supported only by the single-send endpoint.

# paths./api/v1/email/batch.post.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/emails/{id}.get.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/emails/{id}/cancel.post.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/emails/{id}/reschedule.post.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/sms/messages.get.description
SMS is currently invite-only private beta. A resolved invited project is required; workspace keys use X-NoticeAPI-Project-ID unless their grant identifies one project. This activity feed intentionally returns masked counterparties and no message bodies, idempotency keys, or provider event payloads. Use the single-message endpoint only when an authorized application explicitly needs the sensitive message detail.

# paths./api/v1/sms/messages.get.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/sms/messages.get.parameters[].schema.description
Opaque keyset cursor from the preceding response.

# paths./api/v1/sms/messages.post.description
SMS is currently invite-only private beta. A resolved invited project is required; workspace keys use X-NoticeAPI-Project-ID unless their grant identifies one project. Queueing is durable and carrier delivery happens asynchronously. Every public live send requires a prior saved SMS consent record; marketing outside the recipient-local window is automatically deferred to 9:00am local time. Non-simulator traffic is admitted only after the project sender, approved program, consent, quiet-hours, and wallet checks pass. The simulator destinations +15555550101, +15555550102, and +15555550103 use a mock provider: they are not submitted to a carrier and do not reserve wallet funds.

# paths./api/v1/sms/messages.post.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/sms/messages.post.parameters[].description
A nonempty client-generated key (maximum 256 characters). Reusing it with the same request returns the original queued message; reusing it with different content returns idempotency_mismatch.

# paths./api/v1/sms/messages.post.responses.200.description
The existing queued message for this Idempotency-Key.

# paths./api/v1/sms/messages.post.responses.202.description
The message was durably queued for asynchronous processing.

# paths./api/v1/sms/messages.post.responses.402.description
A live SMS wallet is required or has insufficient funds.

# paths./api/v1/sms/messages.post.responses.403.description
The key, project, feature flag, plan, sender program, consent, or risk state does not permit this send.

# paths./api/v1/sms/messages.post.responses.409.description
The Idempotency-Key conflicts with a different request, or the project is not presently eligible to send.

# paths./api/v1/sms/messages.post.responses.422.description
The request, destination, segment guard, or sender selection is invalid.

# paths./api/v1/sms/messages/{id}.get.description
SMS is currently invite-only private beta. A resolved invited project is required; workspace keys use X-NoticeAPI-Project-ID unless their grant identifies one project. Returns only a message owned by that project. This explicit detail read includes sensitive message and lifecycle data; use the redacted activity feed for dashboards and agents.

# paths./api/v1/sms/messages/{id}.get.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/sms/messages/{id}.get.responses.200.description
The project-scoped SMS message and its events.

# paths./api/v1/sms/usage.get.description
SMS is currently invite-only private beta. Returns the selected invited project's current UTC-month message, segment, and settled-charge totals. Wallet reservations and number fees are intentionally excluded from this project usage view.

# paths./api/v1/sms/usage.get.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/sms/wallet.get.description
SMS is currently invite-only private beta. Wallet funds are shared across every project in a workspace. This endpoint requires a workspace-wide API key with sms:billing:read; project-bound keys cannot read it. A resolved invited project (X-NoticeAPI-Project-ID for multi-project workspace keys) is required only as the authorization anchor; the returned balance remains workspace-wide.

# paths./api/v1/sms/wallet.get.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/sms/wallet/ledger.get.description
SMS is currently invite-only private beta. Workspace-wide, paginated ledger activity requires a resolved invited project as the authorization anchor. Hosted checkout and provider identifiers are intentionally never returned.

# paths./api/v1/sms/wallet/ledger.get.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/sms/wallet/ledger.get.parameters[].schema.description
Opaque keyset cursor from the preceding response.

# paths./api/v1/sms/wallet/number-periods.get.description
SMS is currently invite-only private beta. Workspace-wide, paginated number-fee periods require a resolved invited project as the authorization anchor. It does not activate, acquire, or renew a sender.

# paths./api/v1/sms/wallet/number-periods.get.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/sms/wallet/number-periods.get.parameters[].schema.description
Opaque keyset cursor from the preceding response.

# paths./api/v1/sms/wallet/topups.get.description
SMS is currently invite-only private beta. Workspace-wide, paginated top-up history requires a resolved invited project as the authorization anchor. Stripe Checkout and provider identifiers are intentionally never returned.

# paths./api/v1/sms/wallet/topups.get.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/sms/wallet/topups.get.parameters[].schema.description
Opaque keyset cursor from the preceding response.

# paths./api/v1/sms/business-profiles.get.description
Requires an invited SMS private-beta project, the sms:manage capability, and a resolved project. These endpoints create carrier-dossier and compliance records only: submitting a profile or program does not approve carrier traffic, and requesting a sender does not acquire or activate a phone number. Start message development with the simulator; live carrier delivery remains separately gated by provider/carrier verification, approved profile and program records, consent, and billing.

# paths./api/v1/sms/business-profiles.get.parameters[].description
SMS management is always project-scoped. Workspace keys must send this header unless their grant identifies exactly one project; project-bound keys omit it.

# paths./api/v1/sms/business-profiles.post.description
Requires an invited SMS private-beta project, the sms:manage capability, and a resolved project. These endpoints create carrier-dossier and compliance records only: submitting a profile or program does not approve carrier traffic, and requesting a sender does not acquire or activate a phone number. Start message development with the simulator; live carrier delivery remains separately gated by provider/carrier verification, approved profile and program records, consent, and billing. Creates an editable draft dossier; it does not submit or approve it.

# paths./api/v1/sms/business-profiles.post.parameters[].description
SMS management is always project-scoped. Workspace keys must send this header unless their grant identifies exactly one project; project-bound keys omit it.

# paths./api/v1/sms/business-profiles/{id}.get.parameters[].description
SMS management is always project-scoped. Workspace keys must send this header unless their grant identifies exactly one project; project-bound keys omit it.

# paths./api/v1/sms/business-profiles/{id}.patch.summary
Update a draft SMS business-profile dossier

# paths./api/v1/sms/business-profiles/{id}.patch.description
Only draft dossiers are editable. A submitted or decided dossier must be replaced by a linked resubmission.

# paths./api/v1/sms/business-profiles/{id}.patch.parameters[].description
SMS management is always project-scoped. Workspace keys must send this header unless their grant identifies exactly one project; project-bound keys omit it.

# paths./api/v1/sms/business-profiles/{id}/submit.post.summary
Submit a business-profile dossier for NoticeAPI review

# paths./api/v1/sms/business-profiles/{id}/submit.post.description
Requires an invited SMS private-beta project, the sms:manage capability, and a resolved project. These endpoints create carrier-dossier and compliance records only: submitting a profile or program does not approve carrier traffic, and requesting a sender does not acquire or activate a phone number. Start message development with the simulator; live carrier delivery remains separately gated by provider/carrier verification, approved profile and program records, consent, and billing. This changes a complete draft to pending NoticeAPI review; it does not represent Azure or carrier approval.

# paths./api/v1/sms/business-profiles/{id}/submit.post.parameters[].description
SMS management is always project-scoped. Workspace keys must send this header unless their grant identifies exactly one project; project-bound keys omit it.

# paths./api/v1/sms/programs.get.description
Requires an invited SMS private-beta project, the sms:manage capability, and a resolved project. These endpoints create carrier-dossier and compliance records only: submitting a profile or program does not approve carrier traffic, and requesting a sender does not acquire or activate a phone number. Start message development with the simulator; live carrier delivery remains separately gated by provider/carrier verification, approved profile and program records, consent, and billing.

# paths./api/v1/sms/programs.get.parameters[].description
SMS management is always project-scoped. Workspace keys must send this header unless their grant identifies exactly one project; project-bound keys omit it.

# paths./api/v1/sms/programs.post.description
Requires an invited SMS private-beta project, the sms:manage capability, and a resolved project. These endpoints create carrier-dossier and compliance records only: submitting a profile or program does not approve carrier traffic, and requesting a sender does not acquire or activate a phone number. Start message development with the simulator; live carrier delivery remains separately gated by provider/carrier verification, approved profile and program records, consent, and billing. Every program needs a HELP message and public opt-in proof URL or retained evidence reference. Marketing programs also require the recipient-facing opt-in disclosure and version.

# paths./api/v1/sms/programs.post.parameters[].description
SMS management is always project-scoped. Workspace keys must send this header unless their grant identifies exactly one project; project-bound keys omit it.

# paths./api/v1/sms/programs/{id}.get.parameters[].description
SMS management is always project-scoped. Workspace keys must send this header unless their grant identifies exactly one project; project-bound keys omit it.

# paths./api/v1/sms/programs/{id}.patch.summary
Update a draft SMS messaging-program dossier

# paths./api/v1/sms/programs/{id}.patch.description
Only draft programs are editable. A submitted or decided program must be replaced by a linked resubmission.

# paths./api/v1/sms/programs/{id}.patch.parameters[].description
SMS management is always project-scoped. Workspace keys must send this header unless their grant identifies exactly one project; project-bound keys omit it.

# paths./api/v1/sms/programs/{id}/submit.post.description
Requires an invited SMS private-beta project, the sms:manage capability, and a resolved project. These endpoints create carrier-dossier and compliance records only: submitting a profile or program does not approve carrier traffic, and requesting a sender does not acquire or activate a phone number. Start message development with the simulator; live carrier delivery remains separately gated by provider/carrier verification, approved profile and program records, consent, and billing. The linked business profile must already be approved. This changes the program to pending review and never claims carrier approval.

# paths./api/v1/sms/programs/{id}/submit.post.parameters[].description
SMS management is always project-scoped. Workspace keys must send this header unless their grant identifies exactly one project; project-bound keys omit it.

# paths./api/v1/sms/senders.get.description
Requires an invited SMS private-beta project, the sms:manage capability, and a resolved project. These endpoints create carrier-dossier and compliance records only: submitting a profile or program does not approve carrier traffic, and requesting a sender does not acquire or activate a phone number. Start message development with the simulator; live carrier delivery remains separately gated by provider/carrier verification, approved profile and program records, consent, and billing.

# paths./api/v1/sms/senders.get.parameters[].description
SMS management is always project-scoped. Workspace keys must send this header unless their grant identifies exactly one project; project-bound keys omit it.

# paths./api/v1/sms/senders.post.description
Requires an invited SMS private-beta project, the sms:manage capability, and a resolved project. These endpoints create carrier-dossier and compliance records only: submitting a profile or program does not approve carrier traffic, and requesting a sender does not acquire or activate a phone number. Start message development with the simulator; live carrier delivery remains separately gated by provider/carrier verification, approved profile and program records, consent, and billing. Requires an approved program and business profile. It records a verification request only; external Azure and carrier verification, acquisition, and activation remain pending.

# paths./api/v1/sms/senders.post.parameters[].description
SMS management is always project-scoped. Workspace keys must send this header unless their grant identifies exactly one project; project-bound keys omit it.

# paths./api/v1/sms/consents.get.description
Broad listings mask recipient phone numbers and omit evidence. An authenticated exact phoneNumber lookup returns the full compliance record and retained evidence.

# paths./api/v1/sms/consents.get.parameters[].description
SMS management is always project-scoped. Workspace keys must send this header unless their grant identifies exactly one project; project-bound keys omit it.

# paths./api/v1/sms/consents.get.parameters[].description
Exact U.S. +1 number for a full compliance lookup.

# paths./api/v1/sms/consents.post.description
An opted-in record retains disclosure text and version plus source URL, form ID, or durable written-consent reference. Marketing additionally requires exact program scope and a writtenConsentReference or formId; a generic source URL alone is not individual marketing proof. Generic scope remains available for transactional, security, and support consent.

# paths./api/v1/sms/consents.post.parameters[].description
SMS management is always project-scoped. Workspace keys must send this header unless their grant identifies exactly one project; project-bound keys omit it.

# paths./api/v1/sms/suppressions.get.description
Suppression listings expose hashes rather than recipient phone numbers.

# paths./api/v1/sms/suppressions.get.parameters[].description
SMS management is always project-scoped. Workspace keys must send this header unless their grant identifies exactly one project; project-bound keys omit it.

# paths./api/v1/sms/suppressions.post.parameters[].description
SMS management is always project-scoped. Workspace keys must send this header unless their grant identifies exactly one project; project-bound keys omit it.

# paths./api/v1/sms/suppressions.delete.parameters[].description
SMS management is always project-scoped. Workspace keys must send this header unless their grant identifies exactly one project; project-bound keys omit it.

# paths./api/v1/templates.get.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/templates.post.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/templates/{id}.get.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/templates/{id}.patch.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/templates/{id}.delete.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/templates/starters.post.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/audiences.get.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/audiences.post.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/audiences/{id}.get.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/audiences/{id}.delete.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/audiences/{id}/contacts.get.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/audiences/{id}/contacts.post.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/audiences/{id}/contacts/{contactId}.get.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/audiences/{id}/contacts/{contactId}.patch.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/audiences/{id}/contacts/{contactId}.delete.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/broadcasts.get.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/broadcasts.post.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/broadcasts/{id}.get.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/broadcasts/{id}.delete.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/broadcasts/{id}/send.post.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/broadcasts/{id}/schedule.post.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/broadcasts/{id}/cancel.post.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/automations.get.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/automations.post.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/automations/{id}.get.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/automations/{id}.patch.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/automations/{id}.delete.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/suppressions.get.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/suppressions.post.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/suppressions.delete.summary
Remove a suppression after confirmed re-opt-in

# paths./api/v1/suppressions.delete.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/receiving/domains.get.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/receiving/domains.post.summary
Create a custom or managed receiving domain

# paths./api/v1/receiving/domains.post.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/receiving/domains/{id}.get.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/receiving/domains/{id}.delete.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/receiving/domains/{id}/verify.post.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/receiving/emails.get.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/receiving/emails/{id}.get.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/receiving/emails/{id}/attachments.get.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/receiving/emails/{id}/attachments/{attachmentId}.get.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/receiving/emails/{id}/attachments/{attachmentId}.get.responses.200.description
Raw attachment bytes with the stored MIME content type.

# paths./api/v1/webhooks.get.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/webhooks.post.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/webhooks.post.requestBody.content.application/json.schema.properties.events.description
Subscribed event channels. Omit for the backwards-compatible email-only subscription.

# paths./api/v1/webhooks/{id}.patch.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# paths./api/v1/webhooks/{id}.patch.requestBody.content.application/json.schema.properties.events.description
Subscribed event channels. Omit for the backwards-compatible email-only subscription.

# paths./api/v1/webhooks/{id}.delete.parameters[].description
Required for workspace keys when the project cannot be inferred. Project-bound keys omit it.

# components.securitySchemes.bearerAuth.description
Send the key as `Authorization: Bearer ntc_…`.

# components.responses.Forbidden.description
Scope, project, domain, plan, quota, or policy boundary

# components.responses.NotFound.description
Resource not found in the selected project

# components.schemas.ApiKeyGrant.properties.capabilityVersion.description
Capability-set version. Legacy all-access keys are snapshotted before new product scopes are introduced.

# components.schemas.ApiKey.properties.scopes.description
Compatibility projection of the effective capabilities.

# components.schemas.DnsRow.description
A provider-required DNS record. Provider verification stages are returned separately in verificationStates until the unified domain endpoint ships.

# components.schemas.SendingDomain.description
Current sending-domain resource. Receiving domains remain a separate resource; this schema deliberately does not advertise the planned unified capability shape before it is returned by the API.

# components.schemas.SendingDomain.properties.accountId.description
Workspace/billing ID retained for compatibility.

# components.schemas.SendingDomain.properties.workspaceId.description
Workspace alias when materialized by a project-aware response.

# components.schemas.SendEmailInput.properties.sendAt.description
Schedule this single message up to 30 days ahead.

# components.schemas.BatchEmailInput.description
Immediate batch entry. sendAt and attachments are intentionally unsupported.

# components.schemas.SendSmsMessageInput.properties.to.description
Supported +1 destination. The API normalizes supported input to E.164 before queueing.

# components.schemas.SendSmsMessageInput.properties.from.description
Optional active, verified U.S. toll-free sender for the resolved project. Omit to use the project's sole eligible sender.

# components.schemas.SendSmsMessageInput.properties.category.description
Must be covered by the sender's approved program for live traffic.

# components.schemas.SendSmsMessageInput.properties.programId.description
Optional approved program assertion; it must match the selected sender's program.

# components.schemas.SendSmsMessageInput.properties.sendAt.description
Optional ISO 8601 time. A future value queues a scheduled message; a past value queues immediately.

# components.schemas.SendSmsMessageInput.properties.maxSegments.description
Reject the send when the encoded message would exceed this segment count. Omit to use the fixed 20-segment platform ceiling.

# components.schemas.SendSmsMessageInput.properties.encodingPolicy.description
preserve keeps the supplied Unicode text. safe_transliterate only converts approved typography such as smart quotes and dashes before segment calculation.

# components.schemas.SmsMessage.properties.body.description
Stored message content. Treat as sensitive recipient data.

# components.schemas.SmsMessage.properties.internalNonBillable.description
System-created carrier HELP reply. Never caller-controlled and never wallet-billed.

# components.schemas.SmsMessageEvent.properties.rawEvent.description
Provider or simulator event material. Treat as sensitive event data.

# components.schemas.SendSmsMessageResult.properties.idempotentReplay.description
Present and true when an earlier message is returned for the supplied Idempotency-Key.

# components.schemas.SmsMessageSummary.description
Privacy-safe SMS activity projection. It intentionally excludes message bodies, full phone numbers, idempotency data, and provider event payloads.

# components.schemas.SmsMessageSummary.properties.counterparty.description
Masked recipient for outbound traffic or sender for inbound traffic.

# components.schemas.SmsWalletLedgerSummary.description
Redacted workspace ledger entry. Provider, Stripe, idempotency, and freeform metadata are omitted.

# components.schemas.SmsWalletTopUpSummary.description
Redacted wallet top-up. Hosted Checkout and Stripe identifiers are omitted.

# components.schemas.SmsBusinessProfileCreateInput.description
Carrier-dossier data for a U.S. end business. All URLs must be HTTPS.

# components.schemas.SmsBusinessProfileCreateInput.properties.supersedesProfileId.description
Optional immutable prior dossier being superseded.

# components.schemas.SmsBusinessProfilePatchInput.description
Partial draft-dossier update. Submitted and decided dossiers are immutable.

# components.schemas.SmsProgramCreateInput.description
Carrier-dossier data for an SMS program. A public HTTPS opt-in proof URL or retained evidence reference is required. Marketing also requires recipient-facing disclosure text and version.

# components.schemas.SmsProgramCreateInput.properties.optInDescription.description
For marketing, the exact recipient-facing disclosure reviewed for this program.

# components.schemas.SmsProgramCreateInput.properties.optInProofUrl.description
Public HTTPS opt-in proof URL, or use optInEvidenceReference.

# components.schemas.SmsProgramCreateInput.properties.optInEvidenceReference.description
Retained opt-in evidence reference when public proof is inappropriate.

# components.schemas.SmsProgramPatchInput.description
Partial draft-program update. The merged program must retain its required carrier-dossier fields.

# components.schemas.SmsSender.description
Public sender view. Provider sender IDs and verification references are never returned.

# components.schemas.SmsConsentEvidence.description
Sensitive retained consent evidence. It is returned only by the create response and authenticated exact-phone lookup.

# components.schemas.SmsConsentEvidenceInput.properties.consentAttestationVersion.description
Current NoticeAPI customer attestation version shown in the portal and compliance guide.

# components.schemas.SmsConsentRecordInput.description
Record a consent decision. For a marketing program, programId must identify that exact program and evidence must match the exact approved disclosure/version and current consent attestation, with writtenConsentReference or formId; sourceUrl alone is insufficient.

# components.schemas.SmsConsent.properties.senderId.description
Sender scope for carrier keyword consent; null for API/form consent.

# components.schemas.SmsConsentListItem.description
Redacted broad-list consent row. phoneNumber is masked and evidence is omitted.

# components.schemas.SmsConsentListEnvelope.description
Without phoneNumber, consents are redacted SmsConsentListItem rows. With exact phoneNumber, the authenticated compliance lookup returns full SmsConsent rows.

# components.schemas.SmsSuppressionListItem.description
Redacted suppression row. Recipient phone numbers are never returned in a list.

# components.schemas.SmsSuppressionListItem.properties.senderId.description
Sender-scoped STOP/carrier suppression, or null for a global manual/privacy/abuse hold and legacy STOP row.