APIEndpoint 1 of 40SERP / Local Search / Local Pack

Local Pack API

The local-pack API for the new local SEO stack.

The dashboard era built rank-tracking dashboards for humans. We built infrastructure for the agents working on your behalf — full local 3-pack results in one POST call, JSON out, your Claude prompt does the rest. No seat fees, no monthly plans required.

POST /v1/serp/local-pack · 1 credit / call

POST /v1/serp/local-pack3 of 3 · the pack
123
"best pizza brooklyn"
1

Joe's Pizza Brooklyn

4.8 (542)

Pizza · Italian · Open · Closes 11 PM

2

Lombardi's Coal Oven

4.6 (1203)

Pizza · Restaurant · Open · Closes 10 PM

3

Prince Street Pizza

4.5 (876)

Pizza · Casual · Open · Closes 10 PM

▌ Ask your agent

These prompts are the new local SEO workflow.

Connect Local SEO Data as an MCP server once (60 seconds, below). Then your agent runs the work. Replace bracketed business names with your own.

Rank tracking

Pull the local 3-pack for plumber in Orchard Park, NY. Compare to last week's snapshot. Flag any business that dropped rank or fell out of the pack.

Competitor monitoring

Show me the local 3-pack for best pizza in Brooklyn, NY. Extract the top 3 competitors' ratings and review counts. Which one has the most momentum?

Multi-location visibility

Pull the local 3-pack for Joe's Auto Repair across all 12 client locations. Flag which locations are ranking in position 1-3 and which need attention.

Pre-pitch SERP audit

A prospect owns a salon in Austin, TX. Pull the local 3-pack for salon and hair salon near me. Tell me her rank position and what the top 3 competitors offer.

Real response

What you get back

Live response from POST /v1/serp/local-pack for pizza restaurants in Brooklyn.

response · application/json~2-4s · 1 credit
{
  "status": "success",
  "credits_used": 1,
  "results": [
    {
      "position": 1,
      "name": "Joe's Pizza Brooklyn",
      "rating": 4.8,
      "reviews_count": 542,
      "phone": "(718) 555-0142",
      "website": "https://joespizza.com",
      "address": "124 Fulton St, Brooklyn, NY 11201",
      "hours": "Open 11AM-11PM",
      "latitude": 40.6950,
      "longitude": -73.9886,
      "categories": ["Pizza", "Italian Restaurant"]
    },
    {
      "position": 2,
      "name": "Lombardi's Coal Oven Pizza",
      "rating": 4.6,
      "reviews_count": 1203,
      "phone": "(718) 555-0267",
      "website": "https://lombardis.com",
      "address": "32 Spring St, Brooklyn, NY 11201",
      "hours": "Open 11AM-11PM",
      "latitude": 40.7201,
      "longitude": -73.9838,
      "categories": ["Pizza", "Restaurant"]
    },
    {
      "position": 3,
      "name": "Prince Street Pizza",
      "rating": 4.5,
      "reviews_count": 876,
      "phone": "(718) 555-0354",
      "website": "https://princestreetpizza.com",
      "address": "27 Prince St, Brooklyn, NY 11201",
      "hours": "Open 10AM-10PM",
      "latitude": 40.7225,
      "longitude": -73.9902,
      "categories": ["Pizza", "Casual Dining"]
    }
  ],
  "search_metadata": {
    "keyword": "pizza",
    "location": "Brooklyn, NY",
    "device": "desktop",
    "total_results": 20
  }
}
Returns

Everything you need to track local rankings

Per result

Position, name, rating, reviews, phone, website, hours

Every business in the 3-pack with all SERP-visible contact data. GPS coordinates included for mapping workflows.

Aggregate

Result count, device type, search metadata

The keyword, location, and device context for every call. Critical for multi-location audits.

Address and operations

Street address, hours, categories

Full operational data extracted from the SERP display. Use for audit trails and competitive intelligence.

Sort options

By position, rating, review count

Pair with Review Velocity for trend analysis across positions.

Built for

What AI-native operators ship with this

Multi-location rank tracking

Agencies pull the local 3-pack for target keywords across all client locations on a schedule. Agent flags drops, tracks competitor movement, flags new entrants. No dashboard login.

For agencies

Competitor pre-pitch audits

Before a prospect call, pull the SERP for their market. Know exactly who they're competing with, their ratings, review counts, and positions. Walk in with diagnosis, not guesses.

For consultants

Rank change alerting

Cron a daily local 3-pack pull for your priority keywords. Your agent compares to yesterday's snapshot, flags any position changes or new competitors. Escalate only the moves that matter.

Agent Prompts

SERP composition research

Analyze local 3-pack composition for 50 keywords across 10 markets. Extract themes: which business types dominate, which don't, which search queries show franchise vs independents. Use for targeting.

Search Volume API
vs. the alternatives

Why not just use Google Search or Maps API?

Google's Places API returns minimal ranking data and requires OAuth setup. Google's Search Console shows *your* ranking position only. For tracking competitors and monitoring the full 3-pack across multiple locations, you need a third-party endpoint.

ApproachCompetitor visibilityMulti-locationAI agent readyCost
Google Search Console (official)Your business onlyLimited per propertyManual CSV exportFree
Google Places API (official)Requires ownership verificationRequires OAuth per locationNo MCP, schema conversion needed$17 per 1,000 calls
Custom scrapingYes, but fragileRequires scaleBreaks with page updatesProxy + maintenance costs
Local Falcon / Local DominatorYesYes, built-inDashboard UI only~$199–399/mo per location
DataForSEO / SerpApi / OutscraperYesYesREST only, no MCP$0.35–0.75 per call
Local SEO Data Local Pack APIUnlimited competitor trackingBatch across all locationsNative MCP + REST, agent-first$0.005 per call
Connect in 60 seconds

Use it from your agent

Two integration surfaces: MCP for clients that speak MCP, REST API for everything else.

Direct MCP integration

Drop-in support in Claude Desktop, OpenClaw, Hermes Agent, and any MCP-aware client.

Add to your client's MCP config (e.g. claude_desktop_config.json):

{
  "mcpServers": {
    "localseodata": {
      "url": "https://mcp.localseodata.com",
      "headers": {
        "Authorization": "Bearer sk_live_..."
      }
    }
  }
}

REST API

For Perplexity Computer, ChatGPT Custom GPTs, custom agents, and any platform that calls REST endpoints directly.

Base URL:

api.localseodata.com

See the docs for endpoint reference and auth.

Quickstart

Your first call in three lines

The core parameters are `keyword` (e.g. "plumber" or "best pizza") and `location` (e.g. "Brooklyn, NY"). Optional: `device` ("desktop" or "mobile", default desktop) and `depth` (number of results, 1-60, default 20).

terminal · curl
POST /v1/serp/local-pack
curl -X POST https://api.localseodata.com/v1/serp/local-pack \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "keyword": "pizza",
    "location": "Brooklyn, NY",
    "device": "desktop"
  }'
Pricing for this endpoint

$0.005 per call

Pay-as-you-go starts at $5. Monthly plans from $19. Funds never expire. No seat fees, no per-location tiers.

Free tier
10,000
local pack calls on signup (50 credits)
Starter · $19/mo
3,800
calls/mo at this rate
Per-call cost
$0.005
per call, any keyword
FAQ

Common questions

What is the Local Pack API?+
A REST endpoint that returns the three businesses Google shows at the top of local-intent search results (the "local 3-pack" or "map pack"). One call returns position, name, rating, review count, phone, website, address, hours, GPS coordinates, and business categories in structured JSON. The endpoint is POST /v1/serp/local-pack; one call costs 1 credit (~$0.005). This is the data layer underneath rank tracking, competitor monitoring, and multi-location audits.
How do I authenticate with the Local Pack API?+
Authentication uses a Bearer token. Generate an API key from your Local SEO Data dashboard (Settings → API Keys), then include it as Authorization: Bearer sk_live_... in your request headers. The same key works for MCP integration (in your claude_desktop_config.json) and direct REST calls. No OAuth flow, no project setup, no domain verification. There are no per-endpoint quotas — your only ceiling is your credit balance, so a daily 12-location sweep uses the same rate-limit pattern as a one-off call. See the authentication docs for key rotation and security best practices.
How does this compare to Google's official options like Places API or Search Console?+
Google Search Console shows only *your* business's ranking position — you can't see competitors. Google's Places API requires you to own and verify each business via OAuth, which blocks competitor tracking entirely. For full SERP visibility across multiple keywords, locations, and competitors, you need a third-party endpoint. That's the gap we fill.
Where does this local pack data come from?+
Local Pack data is aggregated from DataForSEO, our upstream provider for most SERP endpoints. The data reflects Google's live SERP rankings at the moment of the call, with results refreshing as businesses move in and out of the 3-pack. For composite endpoints like Local Audit API we operate our own collection infrastructure — we name the source because if you're running real client work you should know where the data comes from.
How fresh is the Local Pack API data?+
Results reflect the current SERP at call time. For rank tracking workflows, most operators call daily at a fixed time (e.g., 6 AM UTC) to build a clean time-series. Weekly calls work for trend analysis. Monthly calls work for reporting baselines. Because pricing is per-call (not per-seat or per-location), there's no penalty for frequency beyond actual usage.
Is it legal to use a third-party SERP API?+
Local pack results are public data — anyone can read them on Google Search without authentication. Third-party SERP APIs have been a standard category for over a decade (DataForSEO, SerpApi, Outscraper, BrightLocal, Whitespark). Google's Terms of Service govern automated access to Google's own services and are a civil contract, not a criminal statute. Federal courts in *hiQ v. LinkedIn* have consistently held that scraping publicly available data does not violate the Computer Fraud and Abuse Act. You're also not the one operating the collection — you're calling a hosted API whose upstream provider operates this surface at scale. If you're running production rank intelligence for client work, this is the standard, defensible path.
Can I track competitor rankings for businesses I don't own?+
Yes — and this is the core reason third-party SERP APIs exist. Google Search Console only shows your own business. Our endpoint accepts any keyword and location — your competitors, your prospects, your client's adjacent markets, any business. No verification, no ownership requirement. This is what makes competitor monitoring, pre-pitch audits, and multi-location tracking actually work.
Can AI agents use the Local Pack API directly?+
Yes. Two integration paths. MCP: add Local SEO Data to your claude_desktop_config.json (or any MCP-aware client — OpenClaw, Hermes Agent, etc.) and the agent calls this endpoint from any prompt. REST: any agent that can make HTTPS calls — ChatGPT Custom GPTs, Perplexity Computer, custom Python agents — hits api.localseodata.com directly with the Bearer token. You don't write integration code. You write the prompt.
What's the difference between Local Pack and Google Maps rankings?+
The Local Pack is the 3-pack at the top of Google Search results. Google Maps ranking is a separate algorithm that runs inside the Google Maps app. They rank businesses differently: Local Pack favors Prominence (reviews, authority, relevance), while Maps favors Proximity (how close the business is to the searcher). A business can rank #1 in Maps but #10 in the Local Pack for the same keyword. This is not a glitch; it's a difference in user intent. The smartest operators track both.
Does this work for multi-location businesses?+
Yes, and this is where the agent model earns its keep. Each call pulls results for one keyword-location pair, but you can batch as many as you want — the API has no per-call limit beyond your credit balance. Most multi-location operators set a daily or weekly agent run across every location and keyword combination. The agent flags which locations are ranking in position 1-3 and which need attention.
What changed in 2026 that made this category exist?+
MCP — the Model Context Protocol — became standard in late 2024 and went mainstream through 2025. It let agents call external APIs without bespoke integration code. The moment that happened, the right shape of a local SEO data product flipped from "dashboard with a login" to "endpoint your agent calls." The dashboard era is winding down the same way the scraper era is.

Build your first rank-tracking agent in 60 seconds.

50 free credits on signup. Your first local pack pull happens through Claude, not curl.

▌ MADE FOR THE NEW LOCAL SEO STACK