Local Audit
Run a complete local SEO audit with a single API call. Returns SERP data, local pack rankings, business profile, reviews, and competitor analysis — everything you need for a comprehensive report.
When to use this
You want a complete health check of any local business in one shot. Think of it like a doctor's checkup for your Google presence — it checks your rankings, reviews, profile, and competitors, then tells you exactly what to fix. Perfect for agencies onboarding new clients or business owners who want a quick assessment.
/v1/audit/localParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| business_name | string | Yes | Business name to audit |
| location | string | Yes | City and state |
Example Request
curl -X POST https://api.localseodata.com/v1/audit/local \
-H "Authorization: Bearer sk_live_your_key" \
-H "Content-Type: application/json" \
-d '{
"business_name": "Mike\'s Plumbing",
"location": "Denver, CO"
}'Example Response
// The submit. Credits are charged here.
{
"status": "success",
"credits_used": 50,
"data": {
"job_id": "audit_V1StGXR8Z5",
"status": "pending",
"estimated_seconds": 30,
"poll_url": "/v1/audit/local/status/audit_V1StGXR8Z5"
}
}
// GET the poll_url until status is "complete" or "failed". Polling is free.
{
"status": "success",
"credits_used": 0,
"data": {
"job_id": "audit_V1StGXR8Z5",
"status": "complete",
"local_pack_position": 3,
"organic_positions": [{ "keyword": "plumber denver", "rank": 12 }],
"rating": 4.2,
"reviews_count": 156,
"profile_completeness": 72,
"review_velocity": 3.4,
"competitors": [
{ "name": "Rocky Mountain Plumbing", "rank": 1, "rating": 4.7, "reviews_count": 312, "profile_completeness": 95 },
{ "name": "Denver Pro Plumbing", "rank": 2, "rating": 4.5, "reviews_count": 224, "profile_completeness": 88 }
],
"recommendations": [
"Review count (156) is below competitor average (268). Focus on review generation.",
"Missing Saturday hours. 40% of local searches happen on weekends."
],
"completed_at": "2026-09-20T21:34:25.447Z"
}
}Response Fields
| Field | Type | Description |
|---|---|---|
| job_id | string | The audit's id. The submit returns it; the poll URL carries it |
| status | string | "pending" while the audit runs, then "complete" or "failed" |
| poll_url | string | Submit only. GET this path to collect the audit. Polling is free and does not expire |
| progress | integer | While pending: steps finished so far, out of total_steps |
| local_pack_position | integer | null | Where the business sits in the local pack, or null if it is not in it |
| organic_positions | array | Organic rank per keyword the audit checked |
| rating | float | null | Google rating, or null where the profile carries none |
| reviews_count | integer | Google review count |
| profile_completeness | integer | How much of the Google Business Profile is filled in, 0-100 |
| review_velocity | float | Reviews gained per month over the recent window |
| competitors | array | Competitors with name, rank, rating, reviews_count and profile_completeness |
| recommendations | string[] | Actionable improvement suggestions |
| error | string | On status "failed" only: why the audit died |
Notes
- This endpoint submits and returns immediately. It hands back a job_id and a poll_url, not an audit — GET the poll_url until status is "complete". Polling is free and does not expire.
- Credits are charged at submit; a failed audit is refunded in full. The poll response reads credits_used: 0.
- This is the most powerful endpoint — combines data from 5+ individual endpoints.
- Great for client prospecting, onboarding audits, and monthly reports.