Citation Audit
Check NAP (Name, Address, Phone) consistency across Yelp, Yellow Pages, BBB and up to 47 more directories. You choose how many, or name the exact sites.
When to use this
You want to make sure your business name, address, and phone number are listed correctly everywhere online. If Yelp has your old phone number, it confuses customers and hurts your rankings. This checks the top 20 directories by default — scale up to 50, or name the exact sites you care about — and tells you where the mismatches are.
POST
/v1/audit/citationCost: 50 credits ($0.25) for the default 20 directories — 2.5 credits per directory, up to 125 ($0.625) for all 50
Rate Limit: Varies by plan
Response: ~10-20 seconds (up to ~50s for all 50 directories)
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| business_name | string | Yes | Business name |
| address | string | Yes | Full street address |
| phone | string | Yes | Business phone number |
| directories | number | string[] | No | How much to scan. A count (1-50, default 20) takes the top N by priority; an array of directory names (e.g. ["yelp", "bbb", "houzz"]) scans exactly those. 2.5 credits each |
Example Request
curl -X POST https://api.localseodata.com/v1/audit/citation \
-H "Authorization: Bearer sk_live_your_key" \
-H "Content-Type: application/json" \
-d '{
"business_name": "Joe\'s Pizza",
"address": "7 Carmine St, New York, NY 10014",
"phone": "(212) 366-1182"
}'Example Response
JSON
{
"status": "success",
"credits_used": 50,
"data": {
"consistency_score": 78,
"directories_checked": 20,
"found": 14,
"consistent": 9,
"inconsistent": 2,
"unverified": 3,
"not_found": 6,
"details": [
{ "directory": "yelp", "status": "consistent", "name_match": true, "address_match": true, "phone_match": true },
{ "directory": "yellowpages", "status": "inconsistent", "name_match": true, "address_match": true, "phone_match": false, "expected_phone": "(212) 366-1182" },
{ "directory": "superpages", "status": "unverified", "name_match": true, "address_match": true, "phone_match": null },
{ "directory": "foursquare", "status": "not_found", "name_match": null, "address_match": null, "phone_match": null }
]
}
}Response Fields
| Field | Type | Description |
|---|---|---|
| consistency_score | integer | null | Partial-credit NAP consistency (0-100) averaged over found listings; null when no listings were found |
| directories_checked | integer | How many directories were searched — always equals what you requested (20 by default), not the number of listings that exist |
| found | integer | Directories where a listing was actually found. Usually far smaller than directories_checked |
| consistent | integer | Found listings where address and phone both match |
| inconsistent | integer | Found listings where a field conflicts with what you supplied |
| unverified | integer | Found listings where nothing conflicts but NAP could not be fully verified from the snippet |
| not_found | integer | Directories with no listing for this business |
| details | array | One row per directory scanned. Match fields are true (verified), false (conflicting value found), or null (listing found but the field isn't visible in search data) |
Notes
- Scans every directory you select, whether or not the business is listed on it. details always has one row per directory scanned — a business listed on only a handful still returns a row for each, most of them not_found.
- directories_checked is the size of the scan, not a count of listings. Use found for 'how many directories list this business'.
- Defaults to the top 20 directories. Pass directories: 50 for the full set, any count in between, or an explicit list like ["yelp", "bbb", "houzz"] to re-check specific listings.
- Run regularly to catch NAP drift as businesses update their info.