US Extract API

Data Validation / API Key Intermediate HTTPS CORS
Varies by plan (check documentation)

Overview

Smarty's US Extract API scans any block of unstructured text — emails, documents, web pages — and extracts all US postal addresses it finds, then validates each one against USPS data for deliverability. This is especially useful for parsing contact information from email bodies, CRM notes, or legacy data without structured address fields. The free plan includes a limited number of extractions per month.

💡

Beginner Tip

Sign up at smarty.com for an API key and secret. The endpoint is `https://us-extract.api.smarty.com/` with a POST request containing the text in the body. Authentication uses `auth-id` and `auth-token` as query parameters. Each block of text submitted counts as one lookup regardless of how many addresses are found inside it.

Available Data

email delivery status
message ID
bounce/complaint data
open/click tracking

Example Response

JSON Response
{
  "message_id": "msg_abc123def456",
  "status": "delivered",
  "to": "[email protected]",
  "subject": "Welcome!",
  "timestamp": "2025-01-15T10:30:00Z"
}

Field Reference

meta Metadata about the extraction including `lines`, `unicode`, `address_count`, and `verified_count`.
addresses Array of address objects found in the submitted text.
addresses[].verified Whether the extracted address was validated as deliverable by USPS data.
addresses[].text The raw address text as it appeared in the original input.
addresses[].api_output Array of verification result objects (same format as US Street Address API output) for each extracted address.
addresses[].api_output[].deliverability USPS deliverability status for this extracted address.

Implementation Example

const url = "https://www.smarty.com/products/apis/us-extract-api";
// Replace headers or query params with the values required by this API.
const response = await fetch(url, {
  headers: {
  "X-API-Key": "YOUR_API_KEY"
  }
});
if (!response.ok) throw new Error(`Request failed: ${response.status}`);
const data = await response.json();
console.log(data);

What Can You Build?

Note: These code examples are AI-generated and unverified. Always refer to the official API documentation for accurate usage.

Common Errors & Troubleshooting

401 Unauthorized Using the embedded key format instead of the secret key pair (auth-id + auth-token) required by US Extract.
US Extract is a server-side API. Use your `Auth ID` and `Auth Token` from the Smarty dashboard as `?auth-id=X&auth-token=Y` query parameters.
No addresses extracted from text that contains addresses The address is in an unusual format or lacks key components like a ZIP code or state.
Ensure the address includes at minimum a street number, street name, and either a city+state or ZIP code. P.O. Box formats may not always be detected.
Request body not being read Sending text as `application/json` when the API expects `text/plain`.
Set `Content-Type: text/plain` and send the raw text as the request body, not wrapped in a JSON object.

Matrix Score Breakdown

🌐 Reachability 0/30
⚡ Speed 15/20
🔒 Security 15/15
🛠 Developer XP 17/20
✓ Reliability 0/15

Partially tested on Apr 5, 2026

Technical Specifications

Auth API Key
HTTPS REQUIRED
CORS YES
Category Data Validation
Difficulty Intermediate
Verified: 2026-04-04

Similar APIs

View All →