Extract Structured Data from Unstructured Text with One API Call
Alex Chen
Developer Advocate
The Unstructured Data Problem
80% of business data is unstructured — emails, PDFs, chat logs, support tickets. Extracting structured information from this text traditionally requires complex regex patterns, NLP pipelines, or manual data entry. A data extraction API handles all of this in a single call.
Quick Start
const API_URL = "https://instantapis.net/api/v1/generate";
async function extractData(text, fields) {
const response = await fetch(API_URL, {
method: "POST",
headers: {
"Authorization": Bearer ${API_KEY},
"Content-Type": "application/json",
},
body: JSON.stringify({
task: "extract",
input: text,
options: { fields },
}),
});
return response.json();
}
Example 1: Extract Contact Information
const email =
Hi, I'm John Smith from Acme Corporation. You can reach me at
john.smith@acme.com or call (555) 123-4567. Our office is at
123 Main Street, San Francisco, CA 94105.
;
const result = await extractData(email, [
"name", "company", "email", "phone", "address"
]);
// Returns:
// {
// name: "John Smith",
// company: "Acme Corporation",
// email: "john.smith@acme.com",
// phone: "(555) 123-4567",
// address: "123 Main Street, San Francisco, CA 94105"
// }
Example 2: Parse Invoice Data
import requests
API_URL = "https://instantapis.net/api/v1/generate"
invoice_text = """
Invoice #INV-2026-0847
Date: March 15, 2026
Due: April 14, 2026
Bill to: TechCorp Inc.
456 Oak Avenue, Austin, TX 78701
Items:
- Web Development Services: $5,000.00
- API Integration: $2,500.00
- Monthly Hosting: $200.00
Subtotal: $7,700.00
Tax (8.25%): $635.25
Total: $8,335.25
"""
response = requests.post(API_URL, json={
"task": "extract",
"input": invoice_text,
"options": {
"fields": [
"invoice_number", "date", "due_date",
"company", "items", "subtotal", "tax", "total"
]
},
}, headers={
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
})
data = response.json()
print(json.dumps(data["data"], indent=2))
Example 3: Parse Resumes
const resume =
Jane Doe
Senior Software Engineer | 8 years experience
jane.doe@email.com | San Francisco, CA
Experience:
- Lead Engineer at StartupXYZ (2023-present)
- Senior Developer at BigTech Inc (2020-2023)
- Developer at WebAgency (2018-2020)
Skills: Python, JavaScript, TypeScript, React, Node.js, PostgreSQL, AWS
Education: B.S. Computer Science, Stanford University (2018)
;
const result = await extractData(resume, [
"name", "title", "email", "location", "years_experience",
"skills", "education", "work_history"
]);
Processing Documents at Scale
from concurrent.futures import ThreadPoolExecutor
def extract_from_document(doc_text):
response = requests.post(API_URL, json={
"task": "extract",
"input": doc_text,
"options": {"fields": ["name", "email", "company", "amount"]},
}, headers={
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
})
return response.json()
# Process 100 documents in parallel
documents = ["doc text 1...", "doc text 2...", ...]
with ThreadPoolExecutor(max_workers=10) as executor:
results = list(executor.map(extract_from_document, documents))
# All results are clean, structured JSON
for r in results:
if r.get("success"):
print(r["data"])
Why Use an API Instead of Regex?
| Approach | Handles edge cases | Setup time | Maintenance |
|---|---|---|---|
| Regex patterns | Poor | Hours-days | High |
| spaCy/NLP pipeline | Moderate | Days-weeks | Medium |
| InstantAPI | Excellent | Minutes | None |
Regex breaks when formatting changes. NLP pipelines need training data. An AI-powered extraction API handles variations, typos, and unexpected formats automatically.
Use Cases
- CRM data entry: Auto-populate contact records from emails
- Invoice processing: Extract line items, totals, and dates
- Resume parsing: Structure candidate information for ATS systems
- Legal documents: Pull key terms, dates, and parties from contracts
- Support tickets: Extract product names, error codes, and account IDs
Each call costs $0.50 — far less than manual data entry or building custom extraction pipelines.
Start extracting data now — get 10 free credits to try it out.Ready to try InstantAPI?
Sign up today and get 10 free credits to explore all 6 AI capabilities. No credit card required.
Get 10 Free Credits