> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.pinnacle.sh/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.&#x20; 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.&#x20; 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.&#x20; 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.&#x20; 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": "<apiKey>",
    "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': '<apiKey>', '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", "<apiKey>")
	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"] = '<apiKey>'
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<String> response = Unirest.post("https://api.pinnacle.sh/campaigns/dlc/autofill")
  .header("PINNACLE-API-KEY", "<apiKey>")
  .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
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->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' => '<apiKey>',
  ],
]);

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", "<apiKey>");
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": "<apiKey>",
  "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()
```