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


Additional Parameter Details

search_id_type

Specify one of these values to select the type of record lookup key:

  • voterbase VoterBase ID
  • exacttrack ExactTrack Person ID
  • phone A 10 digit phone number
  • email A valid email address
  • smartvan SmartVan ID
  • votebuilder VoteBuilder ID
  • voter Source Voter File ID
  • household VoterBase Household ID

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 the output list. It is possible for searches using some ids to return multiple matches, e.g., ExactTrack
  • match_found: Boolean indicating if a id match was found
  • states_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