Service endpoint¶
https://api.targetsmart.com/person/data-enhance
Overview¶
This service can be used to append data fields for a specified id.
Quickly retrieve voter and consumer data enrichment fields from TargetSmart’s platform database for a previously identified individual.
The common use-case is to further enhance TargetSmart records you have already acquired. A request would include a known record identifier and the response would return a JSON object representing additional TargetSmart data enrichment fields as configured by TargetSmart Client Services for your key. The request is executed synchronously with low latency.
Request parameters¶
| Key | Required | Optional | Default | Permitted Values |
|---|---|---|---|---|
search_id |
✓ | A valid ID string | ||
search_id_type |
✓ | ‘voterbase’ | See valid values below | |
state |
if search_id_type in [‘smartvan’, ‘votebuilder’, ‘voter’] |
A two character state code, e.g. NY |
||
profile_id |
✓ | Profile identifier for accessing different configuration profiles |
Additional Parameter Details¶
search_id_type
Specify one of these values to select the type of record lookup key:
voterbaseVoterBase IDexacttrackExactTrack Person IDphoneA 10 digit phone numberemailA valid email addresssmartvanSmartVan IDvotebuilderVoteBuilder IDvoterSource Voter File IDhouseholdVoterBase Household ID
profile_id
profile_id is an optional profile identifier that enables access to different configuration profiles using the same API key. Users can log in to the website and find the profile ID and the associated configuration for each profile in the User API Keys section. If no profile_id is passed in the request, the default profile will be used to process the API request.
JSON Response¶
Search responses are JSON objects with the following keys:
output: A list of JSON objects mapping field names to data values for each search result, e.g., “vb.voterbase_age”. The fields that are returned are configured on a per-client basis. Consult our support staff for available fields, data dictionary, etc.output_size: Number of objects in theoutputlist. It is possible for searches using some ids to return multiple matches, e.g., ExactTrackmatch_found: Boolean indicating if a id match was foundstates_updated: Voter file update date information represented as a JSON object where keys are two character U.S. state codes and values are dates the state voter file was last updated. The date format is YYYYMMDD.
An example response (Note: Your responses will have different data fields based on your configuration):
{
"output_size": 1,
"output": [
{
"vb.tsmart_last_name": "HERNANDEZ",
"tb.num_children": "",
"vb.voterbase_age": "36",
"tb.children_flg": "",
"vb.tsmart_first_name": "MARIA"
}
],
"match_found": true
...
}
Code Examples¶
🔐 Remember to secure your API key
Never expose your API key in plain text or source control accessible by a third party.
#! /usr/bin/env python3
import os
import requests
api_key = os.environ["TS_API_KEY"]
response = requests.get(
"https://api.targetsmart.com/person/data-enhance",
params={"search_id_type": "voterbase", "search_id": "DE-000000000011"},
headers={"x-api-key": api_key},
)
response.raise_for_status()
print(response.json())
#! /usr/bin/env node
const fetch = require("node-fetch");
const targetSmartApiKey = process.env.TS_API_KEY;
const queryParams = new URLSearchParams({
search_id_type: "voterbase",
search_id: "DE-000000000011",
});
fetch(
"https://api.targetsmart.com/person/data-enhance?" + queryParams.toString(),
{
method: "GET",
headers: {
"x-api-key": targetSmartApiKey,
},
}
)
.then((res) => res.json())
.then((json) => console.log(json));
#! /usr/bin/env bash
result=$(curl -XGET \
-H "x-api-key: $TS_API_KEY" \
"https://api.targetsmart.com/person/data-enhance?search_id_type=voterbase&search_id=DE-000000000011")
echo $result