API Documentation
Reverse Email Append.
Start with an email address — plain or MD5-hashed — and get back the name and postal address of the person behind it. You're only billed when there's a match.
- Endpoint
- https://rapid.peachtreedata.com/api/v1/reverseemailappend
- Methods
- GET for a single address · POST for a batch
- Formats
- JSON by default; append .xml for XML
Authentication
Every request carries your API key in the query string. The API is HTTPS-only, so the key is encrypted in transit. Query parameters can appear in any order, and responses are JSON by default — append .xml to the endpoint for XML.
https://rapid.peachtreedata.com/api/v1/reverseemailappend?apikey={apikey}&…Don't have a key? Sign up under plans & pricing below — keys work immediately.
Request
| Parameter | Required | Description |
|---|---|---|
| apikey | Yes | Your unique API key. |
| emailAddress | — | The email address to look up. Either emailAddress or mD5EmailAddress is required — not both. |
| mD5EmailAddress | — | An MD5-hashed email address to look up. Hash the lowercased address with leading and trailing spaces removed. |
| firstName | — | A known first name for the person behind the address — improves match accuracy. |
| lastName | — | A known last name for the person behind the address — improves match accuracy. |
| requestId | — | Any identifier you choose; echoed back in the response. |
Provide either emailAddress or mD5EmailAddress — never both. Adding a known first or last name improves match accuracy.
Examples
curl "https://rapid.peachtreedata.com/api/v1/reverseemailappend?apikey={apikey}&email=someone@acompany.com"{
"emailAddress": "someone@acompany.com",
"firstName": "someone",
"lastName": "smith",
"address": "123 somewhere dr",
"city": "somecity",
"state": "ST",
"zipCode": "12345-1234",
"status": "Valid",
"billable": true
}POST https://rapid.peachtreedata.com/api/v1/reverseemailappend?apikey={apikey}
Content-Type: application/json
[
{ "emailAddress": "someone1@acompany.com" },
{ "emailAddress": "someone2@acompany.com" },
{ "mD5EmailAddress": "754b16549d9c059ec982395f93095cfe" }
]{
"totalRequests": 3,
"totalProcessed": 3,
"totalInvalidRequests": 0,
"totalBillableCount": 2,
"responses": [
{
"emailAddress": "someone1@acompany.com",
"firstName": "someone1",
"lastName": "smith",
"address": "123 somewhere dr",
"city": "somecity",
"state": "ST",
"zipCode": "12345-1234",
"status": "Valid",
"billable": true
},
{
"emailAddress": "someone2@acompany.com",
"status": "NonMatch",
"billable": false
},
{ "…": "one response per address" }
]
}Response reference
Batch envelope (POST only)
| Field | Type | Description |
|---|---|---|
| totalRequests | int | Email addresses received in the request. |
| totalProcessed | int | Valid email addresses processed by the append service. |
| totalInvalidRequests | int | Invalid request values that were not processed. |
| totalBillableCount | int | Valid, appended results in the request — only these are billed. |
Per-address response
| Field | Type | Description |
|---|---|---|
| emailAddress | String | The email address processed. |
| firstName | String | Matched first name. |
| lastName | String | Matched last name. |
| address | String | Matched address. |
| city | String | Matched city. |
| state | String | Matched state. |
| zipCode | String | Matched ZIP Code. |
| status | String | Valid, Invalid, or NonMatch. Only Valid results are charged; the rest are ignored. |
| billable | Boolean | Whether this request will be billed. Only requests with a matching append result are billed. |
| requestId | String | Echo of the requestId you sent, unchanged. |
HTTP response codes
| Code | Description |
|---|---|
| 200 | Processed successfully. |
| 400 | Bad request — the API key format is invalid, the key is missing, or the input wasn't properly passed. |
| 401 | Unauthorized — the API key is inactive or invalid. |
| 403 | Forbidden — the request exceeds the max items allowed per call, or the account isn't set up for this service. |
| 408 | Request timeout — processing exceeded the max processing time. |
| 500 | Internal server error during processing. |
Plans & pricing
Only matches count against your quota — no-match lookups are free. Need higher volume or invoicing? Talk to us.
Connecting email lists to postal addresses?
Tell us what you're building and we'll get you moving — usually the same day.