Extract Emails API - Find Email Addresses in Text
Instantly extract all valid email addresses from any text. Handles multiple emails, complex formats, and Unicode domains. Returns clean JSON array. Free: 1,000 requests/day.
{
"input": "Contact us at support@example.com or sales@company.org",
"pipeline": [
"extractemails"
]
}Response:
{
"success": true,
"input": "Contact us at support@example.com or sales@company.org",
"pipeline": [
"extractemails"
],
"result": "[\"support@example.com\", \"sales@company.org\"]",
"steps": [
{
"step": 1,
"action": "extractemails",
"result": "[\"support@example.com\", \"sales@company.org\"]",
"execution_time_ms": 1
}
],
"execution_time_ms": 4
}Use Case: Parse contact fields out of support tickets and scraped text
Every extraction transform returns a JSON array, not an object. Chain it as the last step in a pipeline — feeding an array into a text transform like slugify produces garbage. Call extractemails on its own, then handle the list in your code.
Example: Instantly extract all valid email addresses from any text. Handles multiple emails, complex formats, and Unicode domains. Returns clean JSON array. Free: 1,000 requests/day.
Related guide:
How to extract emails without writing a regex →Frequently Asked Questions
Does it validate that addresses are real?
No. It extracts strings matching the email format; it does not verify deliverability or that the mailbox exists.
Quick Start
curl -X POST https://textforge.co/v1/run -H "Content-Type: application/json" -d '{"input":"Contact us at support@example.com or sales@company.org","pipeline":["extractemails"]}'fetch("https://textforge.co/v1/run", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
input: "Contact us at support@example.com or sales@company.org",
pipeline: ["extractemails"]
})
}).then(r => r.json()).then(console.log);import requests
payload = {
"input": "Contact us at support@example.com or sales@company.org",
"pipeline": ["extractemails"]
}
response = requests.post("https://textforge.co/v1/run", json=payload)
print(response.json())<?php
$payload = json_encode([
"input" => "Contact us at support@example.com or sales@company.org",
"pipeline" => ["extractemails"]
]);
$ch = curl_init("https://textforge.co/v1/run");
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Content-Type: application/json"]);
$response = curl_exec($ch);
echo $response;
?>Why use the API?
Sub-5ms latency
p95 response time, no cold starts
Composable pipelines
Chain transforms in one request
Fair free tier
1,000 requests/day, no credit card
Works everywhere
curl, Python, JS, PHP - no SDK needed
Built-in analytics
Usage tracking, rate limit headers
HTTPS only
CORS enabled, production ready