curl --request GET \
--url https://api.photon.codes/v1/organizations/{organization_id}/10dlc/campaigns \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.photon.codes/v1/organizations/{organization_id}/10dlc/campaigns"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.photon.codes/v1/organizations/{organization_id}/10dlc/campaigns', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.photon.codes/v1/organizations/{organization_id}/10dlc/campaigns",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.photon.codes/v1/organizations/{organization_id}/10dlc/campaigns"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.photon.codes/v1/organizations/{organization_id}/10dlc/campaigns")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.photon.codes/v1/organizations/{organization_id}/10dlc/campaigns")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"items": [
{
"brandId": "<string>",
"capabilities": {
"canResubmit": true,
"editableFields": [
"<string>"
]
},
"createdAt": "2026-01-01T00:00:00.000Z",
"currentStep": "brand_verification",
"description": "<string>",
"embeddedLinks": true,
"embeddedPhoneNumbers": true,
"etag": "<string>",
"failureReasons": [
{
"message": "<string>"
}
],
"hasUnsubmittedChanges": true,
"helpKeywords": [
"<string>"
],
"helpMessage": "<string>",
"id": "<string>",
"messageFlow": "<string>",
"name": "<string>",
"optInKeywords": [
"<string>"
],
"optInMessage": "<string>",
"optOutKeywords": [
"<string>"
],
"optOutMessage": "<string>",
"privacyPolicyUrl": "<string>",
"reviewRevision": 0,
"revision": 0,
"sampleMessages": [
"<string>"
],
"status": "awaiting_brand_verification",
"statusMessage": "<string>",
"submittedRevision": 0,
"subscriberHelp": true,
"subscriberOptIn": true,
"subscriberOptOut": true,
"termsAndConditionsAccepted": true,
"termsAndConditionsUrl": "<string>",
"updatedAt": "2026-01-01T00:00:00.000Z",
"useCases": [
"2FA"
],
"embeddedLinkSample": "<string>",
"readyAt": "2026-01-01T00:00:00.000Z",
"statusReason": {
"code": "<string>",
"message": "<string>"
},
"submittedAt": "2026-01-01T00:00:00.000Z"
}
],
"nextCursor": "<string>"
}{
"code": "NOT_AUTHENTICATED",
"status": 401,
"title": "Not Authenticated",
"type": "https://photon.codes/docs/problems/not-authenticated"
}{
"code": "FORBIDDEN",
"status": 403,
"title": "Forbidden",
"type": "https://photon.codes/docs/problems/forbidden"
}{
"code": "VALIDATION_FAILED",
"issues": [
{
"code": "invalid_type",
"location": "json",
"message": "Expected a string.",
"path": "/name"
}
],
"status": 422,
"title": "Request Validation Failed",
"type": "https://photon.codes/docs/problems/validation-failed"
}{
"code": "RATE_LIMITED",
"status": 429,
"title": "Too Many Requests",
"type": "https://photon.codes/docs/problems/rate-limited"
}{
"code": "INTERNAL_ERROR",
"status": 500,
"title": "Internal Server Error",
"type": "https://photon.codes/docs/problems/internal-error"
}{
"code": "SERVICE_FAILURE",
"status": 502,
"title": "Service Failure",
"type": "https://photon.codes/docs/problems/service-failure"
}{
"code": "SERVICE_UNAVAILABLE",
"status": 503,
"title": "Service Temporarily Unavailable",
"type": "https://photon.codes/docs/problems/service-unavailable"
}{
"code": "REQUEST_TIMEOUT",
"status": 504,
"title": "Request Timeout",
"type": "https://photon.codes/docs/problems/request-timeout"
}List campaigns
Lists 10DLC campaigns visible within the selected organization. Filter by brandId, status or useCases and navigate the cursor-paginated result using cursor and limit. The result describes campaign registration state; listing a campaign does not submit or modify it. Supply organization_id for the organization that owns the registration.
curl --request GET \
--url https://api.photon.codes/v1/organizations/{organization_id}/10dlc/campaigns \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.photon.codes/v1/organizations/{organization_id}/10dlc/campaigns"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.photon.codes/v1/organizations/{organization_id}/10dlc/campaigns', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.photon.codes/v1/organizations/{organization_id}/10dlc/campaigns",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.photon.codes/v1/organizations/{organization_id}/10dlc/campaigns"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.photon.codes/v1/organizations/{organization_id}/10dlc/campaigns")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.photon.codes/v1/organizations/{organization_id}/10dlc/campaigns")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"items": [
{
"brandId": "<string>",
"capabilities": {
"canResubmit": true,
"editableFields": [
"<string>"
]
},
"createdAt": "2026-01-01T00:00:00.000Z",
"currentStep": "brand_verification",
"description": "<string>",
"embeddedLinks": true,
"embeddedPhoneNumbers": true,
"etag": "<string>",
"failureReasons": [
{
"message": "<string>"
}
],
"hasUnsubmittedChanges": true,
"helpKeywords": [
"<string>"
],
"helpMessage": "<string>",
"id": "<string>",
"messageFlow": "<string>",
"name": "<string>",
"optInKeywords": [
"<string>"
],
"optInMessage": "<string>",
"optOutKeywords": [
"<string>"
],
"optOutMessage": "<string>",
"privacyPolicyUrl": "<string>",
"reviewRevision": 0,
"revision": 0,
"sampleMessages": [
"<string>"
],
"status": "awaiting_brand_verification",
"statusMessage": "<string>",
"submittedRevision": 0,
"subscriberHelp": true,
"subscriberOptIn": true,
"subscriberOptOut": true,
"termsAndConditionsAccepted": true,
"termsAndConditionsUrl": "<string>",
"updatedAt": "2026-01-01T00:00:00.000Z",
"useCases": [
"2FA"
],
"embeddedLinkSample": "<string>",
"readyAt": "2026-01-01T00:00:00.000Z",
"statusReason": {
"code": "<string>",
"message": "<string>"
},
"submittedAt": "2026-01-01T00:00:00.000Z"
}
],
"nextCursor": "<string>"
}{
"code": "NOT_AUTHENTICATED",
"status": 401,
"title": "Not Authenticated",
"type": "https://photon.codes/docs/problems/not-authenticated"
}{
"code": "FORBIDDEN",
"status": 403,
"title": "Forbidden",
"type": "https://photon.codes/docs/problems/forbidden"
}{
"code": "VALIDATION_FAILED",
"issues": [
{
"code": "invalid_type",
"location": "json",
"message": "Expected a string.",
"path": "/name"
}
],
"status": 422,
"title": "Request Validation Failed",
"type": "https://photon.codes/docs/problems/validation-failed"
}{
"code": "RATE_LIMITED",
"status": 429,
"title": "Too Many Requests",
"type": "https://photon.codes/docs/problems/rate-limited"
}{
"code": "INTERNAL_ERROR",
"status": 500,
"title": "Internal Server Error",
"type": "https://photon.codes/docs/problems/internal-error"
}{
"code": "SERVICE_FAILURE",
"status": 502,
"title": "Service Failure",
"type": "https://photon.codes/docs/problems/service-failure"
}{
"code": "SERVICE_UNAVAILABLE",
"status": 503,
"title": "Service Temporarily Unavailable",
"type": "https://photon.codes/docs/problems/service-unavailable"
}{
"code": "REQUEST_TIMEOUT",
"status": 504,
"title": "Request Timeout",
"type": "https://photon.codes/docs/problems/request-timeout"
}Authorizations
Account Service Key, prefixed with pho_ask_, sent as Authorization: Bearer <key>. Acts on behalf of its owning account, subject to the permissions and credential restrictions of each operation. Account access tokens and OAuth grants also use the Bearer header. In organizations that require SSO, Account Service Keys are not accepted for managing the organization's SSO settings, deleting the organization, or checking whether it can be deleted.
Path Parameters
Query Parameters
^pho_brd_[0-9a-z]{26}$1 - 20481 <= x <= 100Filter by overall campaign status.
awaiting_brand_verification, awaiting_brand_qualification, submitting, reviewing, activating, ready, action_required, support_required, suspended, expired Was this page helpful?