For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
HomeGet API key
DocumentationIntegrationsAPI Reference
DocumentationIntegrationsAPI Reference
  • API Reference
      • POSTRegister A2P
LogoLogo
HomeGet API key
API Referenceregistration

Register A2P

POST
https://api.agentphone.ai/v1/register
POST
/v1/register
1const url = 'https://api.agentphone.ai/v1/register';
2const options = {
3 method: 'POST',
4 headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
5 body: '{"registration_type":"sole_proprietor","first_name":"Emily","last_name":"Johnson","email":"emily.johnson@example.com","phone_number":"+14155552671","street_address":"123 Maple Street","city":"San Francisco","state":"CA","zip_code":"94107","use_case_description":"We send appointment reminders and customer support messages to clients who opt in during booking. Messages include updates and confirmations.","opt_in_image_url":"https://example.com/images/optin-screenshot.png"}'
6};
7
8try {
9 const response = await fetch(url, options);
10 const data = await response.json();
11 console.log(data);
12} catch (error) {
13 console.error(error);
14}
1{
2 "ok": true,
3 "message": "Registration submitted successfully. Please complete payment to proceed.",
4 "payment_url": "https://checkout.stripe.com/pay/cs_test_a1b2c3d4e5f6g7h8i9j0",
5 "campaign_status": "pending_payment",
6 "warnings": [
7 {
8 "field": "phone_number",
9 "tier": "yellow",
10 "message": "Phone number format is valid but not verified.",
11 "suggestion": "Verify the phone number to avoid delays in approval."
12 }
13 ]
14}
Submit an A2P 10DLC registration to enable outbound SMS on your account. US carriers require 10DLC registration before your AI agent can send text messages. This endpoint accepts both `sole_proprietor` and `standard_brand` registration types. ### How it works 1. Submit your registration details via this endpoint 2. We validate your submission and flag any issues (RED = blocked, YELLOW = warning) 3. On success, you receive a Stripe payment URL to pay the one-time registration fee 4. After payment, we submit your registration to the carriers on your behalf 5. Carrier approval typically takes 7-10 business days ### Registration types - **`sole_proprietor`** — For individuals or small businesses. Simpler requirements, fewer fields. - **`standard_brand`** — For established businesses. Requires `business_name`, `privacy_policy_url`, `terms_of_service_url`, `sample_message_1`, and `sample_message_2`. ### Opt-in image `opt_in_image_url` must be a publicly accessible HTTPS URL to a screenshot showing how users opt in to receive messages from you (e.g. a consent checkbox on your signup form). Supports PNG, JPG, WEBP, and GIF up to 2MB. Google Drive links (`drive.google.com/file/d/.../view`) are automatically converted if the file is shared publicly. ### Re-submitting If you've already submitted but haven't completed payment, calling this endpoint again returns the payment URL without re-sending the registration email.
Was this page helpful?
Previous
Built with

Submit an A2P 10DLC registration to enable outbound SMS on your account.

US carriers require 10DLC registration before your AI agent can send text messages. This endpoint accepts both sole_proprietor and standard_brand registration types.

How it works

  1. Submit your registration details via this endpoint
  2. We validate your submission and flag any issues (RED = blocked, YELLOW = warning)
  3. On success, you receive a Stripe payment URL to pay the one-time registration fee
  4. After payment, we submit your registration to the carriers on your behalf
  5. Carrier approval typically takes 7-10 business days

Registration types

  • sole_proprietor — For individuals or small businesses. Simpler requirements, fewer fields.
  • standard_brand — For established businesses. Requires business_name, privacy_policy_url, terms_of_service_url, sample_message_1, and sample_message_2.

Opt-in image

opt_in_image_url must be a publicly accessible HTTPS URL to a screenshot showing how users opt in to receive messages from you (e.g. a consent checkbox on your signup form). Supports PNG, JPG, WEBP, and GIF up to 2MB. Google Drive links (drive.google.com/file/d/.../view) are automatically converted if the file is shared publicly.

Re-submitting

If you’ve already submitted but haven’t completed payment, calling this endpoint again returns the payment URL without re-sending the registration email.

Authentication

AuthorizationBearer

Bearer authentication of the form Bearer <token>, where token is your auth token.

Request

This endpoint expects an object.
registration_typestringRequired

‘sole_proprietor’ or ‘standard_brand’

first_namestringRequired
last_namestringRequired
emailstringRequired
phone_numberstringRequired

E.164 format, e.g. +15551234567

street_addressstringRequired
citystringRequired
statestringRequired
zip_codestringRequired
use_case_descriptionstringRequired
Who you message, why, and how. Minimum 40 characters.
opt_in_image_urlstringRequired

Publicly accessible URL to a screenshot of your opt-in flow (PNG, JPG, WEBP, or GIF, max 2MB)

business_namestring or nullOptional

Required for standard_brand

planned_numbersintegerOptionalDefaults to 1
Number of phone numbers you plan to use
countrystringOptionalDefaults to US
business_typestring or nullOptional
business_industrystring or nullOptional
position_in_companystring or nullOptional
einstring or nullOptional

EIN / Tax ID (standard_brand only)

registration_id_typestring or nullOptional
company_typestring or nullOptional
website_urlstring or nullOptional
social_media_urlstring or nullOptional
business_regionsstring or nullOptional
privacy_policy_urlstring or nullOptional

Required for standard_brand

terms_of_service_urlstring or nullOptional

Required for standard_brand

use_casestring or nullOptional
sample_message_1string or nullOptional

Required for standard_brand. Min 20 chars, include brand name.

sample_message_2string or nullOptional

Required for standard_brand. Min 20 chars, include brand name.

message_flowstring or nullOptional
How users opt in to receive messages
has_embedded_linksbooleanOptionalDefaults to false
has_embedded_phonebooleanOptionalDefaults to false

Response

Successful Response
okboolean
messagestring
payment_urlstring
campaign_statusstring
warningslist of objectsDefaults to []

Errors

422
Unprocessable Entity Error