List Projects (v1.5)
curl --request GET \
--url https://dataapi.dncscrub.com/v1.5/projects \
--header 'loginId: <loginid>'import requests
url = "https://dataapi.dncscrub.com/v1.5/projects"
headers = {"loginId": "<loginid>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {loginId: '<loginid>'}};
fetch('https://dataapi.dncscrub.com/v1.5/projects', 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://dataapi.dncscrub.com/v1.5/projects",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"loginId: <loginid>"
],
]);
$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://dataapi.dncscrub.com/v1.5/projects"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("loginId", "<loginid>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://dataapi.dncscrub.com/v1.5/projects")
.header("loginId", "<loginid>")
.asString();require 'uri'
require 'net/http'
url = URI("https://dataapi.dncscrub.com/v1.5/projects")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["loginId"] = '<loginid>'
response = http.request(request)
puts response.read_bodyOther APIs
List Projects (v1.5)
List every Project in your account with its validation status
GET
/
v1.5
/
projects
List Projects (v1.5)
curl --request GET \
--url https://dataapi.dncscrub.com/v1.5/projects \
--header 'loginId: <loginid>'import requests
url = "https://dataapi.dncscrub.com/v1.5/projects"
headers = {"loginId": "<loginid>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {loginId: '<loginid>'}};
fetch('https://dataapi.dncscrub.com/v1.5/projects', 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://dataapi.dncscrub.com/v1.5/projects",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"loginId: <loginid>"
],
]);
$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://dataapi.dncscrub.com/v1.5/projects"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("loginId", "<loginid>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://dataapi.dncscrub.com/v1.5/projects")
.header("loginId", "<loginid>")
.asString();require 'uri'
require 'net/http'
url = URI("https://dataapi.dncscrub.com/v1.5/projects")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["loginId"] = '<loginid>'
response = http.request(request)
puts response.read_bodyReturns a paginated collection:
Data is an array of Project objects in the same shape as
Get Project, and NextCursor continues it. Useful for reconciling your client list
against DNCScrub and for finding Projects whose SAN is about to expire.
Request
string
required
Your API Key.
string
default:"active"
active, inactive or all.integer
default:"100"
Page size, 1 to 500.
string
Opaque cursor from the previous page’s
NextCursor. Omit for the first page.Example Request
cURL
curl 'https://dataapi.dncscrub.com/v1.5/projects?limit=100' \
--header 'loginId: YOUR_API_KEY'
Response
200 OK
{
"Data": [
{
"ProjectCode": "VOXAI_BRIGHTDENTAL",
"ProjectName": "Bright Dental",
"Status": "active",
"DefaultCampaignId": 184201,
"FtcValidation": { "Status": "validated", "Expiration": "2027-03-31", "...": "..." },
"StateRegistrations": { "LA": { "Status": "approved", "...": "..." } },
"...": "..."
}
],
"NextCursor": "eyJhZnRlciI6IlZPWEFJX0JSSUdIVERFTlRBTCJ9"
}
NextCursor is null on the last page. Pass it back as cursor to fetch the next page.
Ordering is by projectCode.
SANs expire yearly. Watch
FtcValidation.Expiration and prompt your client to renew
with the FTC before that date, then call
Create or Update Project again with the renewed
SAN to re-validate.