> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.pinnacle.sh/v-2/api-reference/campaigns/10-dlc/autofill/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.pinnacle.sh/_mcp/server. # Autofill 10DLC Campaign Information POST https://api.pinnacle.sh/campaigns/dlc/autofill Content-Type: application/json Generate campaign details based off existing campaign and the brand it's connected to. Reference: https://docs.pinnacle.sh/api-reference/campaigns/10-dlc/autofill ## Authentication - `PINNACLE-API-KEY` header (required) — API Key authentication via header ## Request ### Body (application/json) This endpoint expects an autofillCampaignSchema. - `additionalInfo` (string, optional) — Any additional information you want to provide. - `campaignId` (string, optional) — Unique identifier for the campaign. - When autofilling 10DLC campaigns, it must begin with the prefix `dlc_` (e.g., `dlc_1234567890`) - When autofilling Toll-Free campaigns, it must begin with the prefix `tf_` (e.g., `tf_1234567890`) - When autofilling RCS campaigns, it must begin with the prefix `rcs_` (e.g., `rcs_1234567890`) ## Response ### 200 Returns autofilled 10DLC information. - `autoRenew` (boolean, required, default: true) — Whether the campaign renews automatically. - `brand` (string, optional) — Brand id. This identifier is a string that always begins with the prefix `b_`, for example: `b_1234567890`. - `campaignId` (string, optional) — Unique identifier for the campaign. This identifier is a string that always begins with the prefix `dlc_`, for example: `dlc_1234567890`. - `description` (string, optional) — Description of the campaign. - `keywords` (AutofillDlcResponseKeywords, optional) — Keyword response configuration. - `links` (AutofillDlcResponseLinks, optional) — Legal documentation links. - `messageFlow` (string, optional) — Describe the flow of how users will opt in to this campaign. See the [Opt-In Methods and Workflow](/guides/campaigns/opt-in-compliance#opt-in-methods-and-workflow) section for requirements. - `name` (string, optional) — Display name of the campaign. - `options` (AutofillDlcResponseOptions, optional) — Campaign configuration options. - `sampleMessages` (list of string, optional) — Example messages for the campaign. See the [Sample Messages](/guides/campaigns/opt-in-compliance#sample-messages) section for requirements. - `useCase` (AutofillDlcResponseUseCase, optional) — Use case for the campaign. ## Errors ### 400 Bad Request Error Validation failed. The payload has missing required fields and/or invalid types. See [https://zod.dev/error-formatting](https://zod.dev/error-formatting) for more information. - `description` (string, required) — Human-readable summary of validation failures. - `errors` (ZodErrorErrors, required) — Structured dictionary of issues containing two main sections: - `errors`: Array of global validation errors not tied to specific fields - `properties`: Object mapping field names to their specific validation errors, where each field contains an `errors` array ### 401 Unauthorized Error The request lacks valid authentication credentials or the provided credentials are invalid. Ensure you're including a valid API key in the request headers and that your account has the necessary permissions to access this endpoint. - `error` (string, required) — Human-readable description of the error that occurred, corresponding to the HTTP status code. ### 403 Forbidden Error Your subscription does not include access to this feature. This occurs when attempting to use functionality that requires a higher subscription tier. Please upgrade your subscription to access this feature. - `error` (string, required) — Human-readable description of the error that occurred, corresponding to the HTTP status code. ### 500 Internal Server Error An unexpected error occurred on Pinnacle's servers while processing your request. If this error persists, please contact support with the request details. - `error` (string, required) — Human-readable description of the error that occurred, corresponding to the HTTP status code. ## Types ### AutofillDlcResponseKeywords Keyword response configuration. - `HELP` (AutofillDlcResponseKeywordsHelp, required) — Help keyword settings. - `OPT_IN` (AutofillDlcResponseKeywordsOptIn, required) — Opt-in keyword settings. - `OPT_OUT` (AutofillDlcResponseKeywordsOptOut, required) — Opt-out keyword settings. ### AutofillDlcResponseLinks Legal documentation links. - `privacyPolicy` (string, optional) — Privacy policy URL. - `termsOfService` (string, optional) — Terms of service URL. ### AutofillDlcResponseOptions Campaign configuration options. - `affiliateMarketing` (boolean, required, default: false) — Whether the campaign uses affiliate marketing. - `ageGated` (boolean, required, default: false) — Whether the campaign is age-gated. - `directLending` (boolean, required, default: false) — Whether the campaign involves direct lending. - `embeddedPhone` (boolean, required, default: false) — Whether messages include phone numbers. - `numberPooling` (boolean, required, default: false) — Whether the campaign uses number pooling. - `embeddedLink` (string, optional) — Link embedded in campaign message. ### AutofillDlcResponseUseCase Use case for the campaign. - `sub` (list of enum, optional) — Sub-use case categories. - Allowed values: `ACCOUNT_NOTIFICATION`, `CUSTOMER_CARE`, `DELIVERY_NOTIFICATION`, `FRAUD_ALERT`, `HIGHER_EDUCATION`, `MARKETING`, `POLLING_VOTING`, `PUBLIC_SERVICE_ANNOUNCEMENT`, `SECURITY_ALERT`, `TWO_FA` - `value` (enum, optional) — The primary use case classification for this campaign. - Allowed values: `ACCOUNT_NOTIFICATION`, `AGENTS_FRANCHISES`, `CARRIER_EXEMPT`, `CHARITY`, `CUSTOMER_CARE`, `DELIVERY_NOTIFICATION`, `EMERGENCY`, `FRAUD_ALERT`, `HIGHER_EDUCATION`, `K12_EDUCATION`, `LOW_VOLUME`, `M2M`, `MARKETING`, `MIXED`, `POLITICAL`, `POLLING_VOTING`, `PROXY`, `PUBLIC_SERVICE_ANNOUNCEMENT`, `SECURITY_ALERT`, `SOCIAL`, `SOLE_PROPRIETOR`, `SWEEPSTAKE`, `TRIAL`, `TWO_FA`, `UCAAS_HIGH`, `UCAAS_LOW` ### ZodErrorErrors Structured dictionary of issues containing two main sections: - `errors`: Array of global validation errors not tied to specific fields - `properties`: Object mapping field names to their specific validation errors, where each field contains an `errors` array ### AutofillDlcResponseKeywordsHelp Help keyword settings. - `values` (list of string, required) — Keywords that trigger help response. - `message` (string, optional) — Response message for help keywords. See the [Keyword Response Messages](/guides/campaigns/opt-in-compliance#keyword-response-messages) section for requirements. ### AutofillDlcResponseKeywordsOptIn Opt-in keyword settings. - `values` (list of string, required) — Keywords that trigger opt-in. - `message` (string, optional) — Response message for opt-in keywords. See the [Keyword Response Messages](/guides/campaigns/opt-in-compliance#keyword-response-messages) section for requirements. ### AutofillDlcResponseKeywordsOptOut Opt-out keyword settings. - `values` (list of string, required) — Keywords that trigger opt-out. - `message` (string, optional) — Response message for opt-out keywords. See the [Keyword Response Messages](/guides/campaigns/opt-in-compliance#keyword-response-messages) section for requirements. ## Examples **Request** ```json { "additionalInfo": "Please autofill missing campaign fields using my brand profile", "campaignId": "dlc_1234567890" } ``` **Response** ```json { "autoRenew": true, "brand": "b_1234567890", "campaignId": "dlc_1234567890", "keywords": { "HELP": { "values": [ "HELP", "SUPPORT", "INFO" ], "message": "Pinnacle Software Development Inc.: For assistance, visit https://pinnacle.sh/support or email founders@trypinnacle.app. Msg&data rates may apply. Reply STOP to cancel." }, "OPT_IN": { "values": [ "START", "YES", "SUBSCRIBE" ], "message": "Pinnacle Software Development Inc.: You're enrolled in account & security alerts. Msg&data rates may apply. Message frequency varies. Reply HELP for help, STOP to cancel. Terms: https://pinnacle.sh/terms Privacy: https://pinnacle.sh/privacy" }, "OPT_OUT": { "values": [ "STOP", "CANCEL", "UNSUBSCRIBE" ], "message": "Pinnacle Software Development Inc.: You're unsubscribed and will receive no further texts. For assistance, visit https://pinnacle.sh or call 877-389-0460. Reply START to resubscribe." } }, "links": { "privacyPolicy": "https://www.pinnacle.sh/privacy", "termsOfService": "https://www.pinnacle.sh/terms" }, "messageFlow": "The user fills out a paper form during onboarding at [Address] which they learn about at our website (https://pinnacle.sh) in which they provide their phone number and sign their consent. The form includes a disclaimer: \"By signing this form and providing your phone number, you agree to receive SMS Mixed - Account Notification, Customer Care, Security Alert, Delivery Notification from Pinnacle Software Development Inc. Message frequency may vary. Standard Message and Data Rates may apply. Reply STOP to opt out. Reply HELP for help. Consent is not a condition of purchase. Your mobile information will not be sold or shared with third parties for promotional or marketing purposes.\" Once the information is entered into the system, the user receives a confirmation SMS: \"Thank you for signing up for SMS updates from Pinnacle Software Development Inc. Msg freq may vary. Std msg & data rates apply. Reply STOP to opt out, HELP for help.\" Link to paper form: https://www.pinnacle.sh/opt-in", "name": "Account Notifications", "options": { "affiliateMarketing": false, "ageGated": false, "directLending": false, "embeddedPhone": false, "numberPooling": false, "embeddedLink": "https://www.pinnacle.sh/example" }, "sampleMessages": [ "Pinnacle Software Development Inc.: We're here to help. Visit https://pinnacle.sh or call 877-389-0460. Msg&data rates may apply. Reply STOP to cancel.", "Pinnacle Software Development Inc.: You're enrolled in account & security alerts. Msg&data rates may apply. Message frequency varies. Reply HELP for help, STOP to cancel. Terms: https://pinnacle.sh/terms/ Privacy: https://pinnacle.sh/privacy/", "Pinnacle Software Development Inc.: An update has been made to your account. Read it in the portal.", "Pinnacle Software Development Inc.: We received your message. A team member will reply shortly. For immediate help call 877-389-0460. Msg&data rates may apply. Reply STOP to cancel." ], "useCase": { "sub": [ "ACCOUNT_NOTIFICATION", "CUSTOMER_CARE", "SECURITY_ALERT" ], "value": "MIXED" } } ``` **SDK Code** ```python Autofilled 10DLC Campaign import requests url = "https://api.pinnacle.sh/campaigns/dlc/autofill" payload = { "additionalInfo": "Please autofill missing campaign fields using my brand profile", "campaignId": "dlc_1234567890" } headers = { "PINNACLE-API-KEY": "", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```javascript Autofilled 10DLC Campaign const url = 'https://api.pinnacle.sh/campaigns/dlc/autofill'; const options = { method: 'POST', headers: {'PINNACLE-API-KEY': '', 'Content-Type': 'application/json'}, body: '{"additionalInfo":"Please autofill missing campaign fields using my brand profile","campaignId":"dlc_1234567890"}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go Autofilled 10DLC Campaign package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.pinnacle.sh/campaigns/dlc/autofill" payload := strings.NewReader("{\n \"additionalInfo\": \"Please autofill missing campaign fields using my brand profile\",\n \"campaignId\": \"dlc_1234567890\"\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("PINNACLE-API-KEY", "") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby Autofilled 10DLC Campaign require 'uri' require 'net/http' url = URI("https://api.pinnacle.sh/campaigns/dlc/autofill") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["PINNACLE-API-KEY"] = '' request["Content-Type"] = 'application/json' request.body = "{\n \"additionalInfo\": \"Please autofill missing campaign fields using my brand profile\",\n \"campaignId\": \"dlc_1234567890\"\n}" response = http.request(request) puts response.read_body ``` ```java Autofilled 10DLC Campaign import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api.pinnacle.sh/campaigns/dlc/autofill") .header("PINNACLE-API-KEY", "") .header("Content-Type", "application/json") .body("{\n \"additionalInfo\": \"Please autofill missing campaign fields using my brand profile\",\n \"campaignId\": \"dlc_1234567890\"\n}") .asString(); ``` ```php Autofilled 10DLC Campaign request('POST', 'https://api.pinnacle.sh/campaigns/dlc/autofill', [ 'body' => '{ "additionalInfo": "Please autofill missing campaign fields using my brand profile", "campaignId": "dlc_1234567890" }', 'headers' => [ 'Content-Type' => 'application/json', 'PINNACLE-API-KEY' => '', ], ]); echo $response->getBody(); ``` ```csharp Autofilled 10DLC Campaign using RestSharp; var client = new RestClient("https://api.pinnacle.sh/campaigns/dlc/autofill"); var request = new RestRequest(Method.POST); request.AddHeader("PINNACLE-API-KEY", ""); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"additionalInfo\": \"Please autofill missing campaign fields using my brand profile\",\n \"campaignId\": \"dlc_1234567890\"\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift Autofilled 10DLC Campaign import Foundation let headers = [ "PINNACLE-API-KEY": "", "Content-Type": "application/json" ] let parameters = [ "additionalInfo": "Please autofill missing campaign fields using my brand profile", "campaignId": "dlc_1234567890" ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.pinnacle.sh/campaigns/dlc/autofill")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` > One API for RCS, iMessage, MMS, and SMS. Build, test, and scale every channel — send your first message in minutes, not weeks.