### Initialize the Dashboard Project Source: https://localseodata.com/docs/open-source-dashboard Commands to clone the repository, install dependencies, and start the development server. ```bash git clone https://github.com/localseodata/dashboard cd dashboard npm install cp .env.example .env.local # Add your LOCALSEODATA_API_KEY to .env.local npm run dev ``` -------------------------------- ### Install LocalSeoData SDK Source: https://localseodata.com/docs/python-sdk Use pip to install the official Python package. ```bash pip install localseodata ``` -------------------------------- ### Install the Node.js SDK Source: https://localseodata.com/docs/node-sdk Use npm to install the official package in your project. ```bash npm install @localseodata/sdk ``` -------------------------------- ### Request Local Pack Rankings Source: https://localseodata.com/docs/local-pack Example request to the local-pack endpoint using cURL. ```bash curl -X POST https://api.localseodata.com/v1/serp/local-pack \ -H "Authorization: Bearer sk_live_your_key" \ -H "Content-Type: application/json" \ -d '{ "keyword": "plumber", "location": "Orchard Park, NY" }' ``` -------------------------------- ### Example API Response Source: https://localseodata.com/docs/local-services-ads The response returns a status, credit usage, and an array of business objects containing LSA-specific details. ```json { "status": "success", "credits_used": 1, "ads": [ { "position": 1, "business_name": "Rocky Mountain Plumbing", "rating": 4.8, "reviews_count": 215, "badge": "Google Guaranteed", "years_in_business": 12, "phone": "(303) 555-0147" } ] } ``` -------------------------------- ### Perform Organic SERP Analysis Request Source: https://localseodata.com/docs/organic-serp Example request to the organic SERP endpoint using cURL. ```bash curl -X POST https://api.localseodata.com/v1/serp/organic \ -H "Authorization: Bearer sk_live_your_key" \ -H "Content-Type: application/json" \ -d '{"keyword": "dentist", "location": "Austin, TX"}' ``` -------------------------------- ### Request Backlinks Summary Source: https://localseodata.com/docs/backlinks-summary Example request to retrieve backlink metrics for a specific domain. ```bash curl -X POST https://api.localseodata.com/v1/backlinks/summary \ -H "Authorization: Bearer sk_live_your_key" \ -H "Content-Type: application/json" \ -d '{"domain": "abcplumbing.com"}' ``` -------------------------------- ### Query LLM Response via API Source: https://localseodata.com/docs/ai-llm-response Use these examples to send a prompt to a specific LLM platform and receive a structured response. ```bash curl -X POST https://api.localseodata.com/v1/ai/llm-response \ -H "Authorization: Bearer sk_live_your_key" \ -H "Content-Type: application/json" \ -d '{ "prompt": "Who is the best plumber in Austin, Texas?", "platform": "chat_gpt" }' ``` -------------------------------- ### Example API response structure Source: https://localseodata.com/docs/keyword-trends The response returns a status, credit usage, and an array of trend data points for each requested keyword. ```json { "status": "success", "credits_used": 1, "data": { "trends": [ { "keyword": "plumber", "data_points": [ { "month": "2025-04", "interest": 68 }, { "month": "2025-05", "interest": 72 }, { "month": "2025-06", "interest": 65 }, { "month": "2026-01", "interest": 95 } ], "peak_month": "2026-01", "trend_direction": "stable" } ] } } ``` -------------------------------- ### Local Finder API Response Structure Source: https://localseodata.com/docs/local-finder Example of the JSON response returned by the Local Finder endpoint, containing business details and metadata. ```json { "status": "success", "credits_used": 1, "data": { "results": [ { "rank": 1, "name": "Austin Family Dentistry", "rating": 4.9, "reviews_count": 547, "address": "456 Oak Lane, Austin, TX 78701", "phone": "(512) 555-0789", "hours": "Mon-Fri 8AM-5PM", "website": "https://austinfamilydentistry.com", "cid": "12345678901234567" } ], "total_results": 20 } } ``` -------------------------------- ### Example API response structure Source: https://localseodata.com/docs/quick-start The JSON structure returned by the API upon a successful request. ```json { "status": "success", "credits_used": 1, "data": { "keyword": "plumber", "location": "Orchard Park, NY", "results": [ { "position": 1, "name": "Roto-Rooter Plumbing", "rating": 4.7, "reviews": 312 } ] } } ``` -------------------------------- ### Backlinks Summary Response Source: https://localseodata.com/docs/backlinks-summary Example JSON response containing domain authority metrics and backlink distribution. ```json { "status": "success", "credits_used": 5, "data": { "domain": "abcplumbing.com", "rank": 342, "backlinks_total": 1240, "referring_domains": 87, "referring_domains_nofollow": 12, "broken_backlinks": 3, "spam_score": 8, "backlinks_by_type": { "anchor": 980, "image": 160, "redirect": 100 } } } ``` -------------------------------- ### Request Related Keywords via API Source: https://localseodata.com/docs/keywords-related Example requests for the /v1/keywords/related endpoint using different programming environments. ```bash curl -X POST https://api.localseodata.com/v1/keywords/related \ -H "Authorization: Bearer sk_live_your_key" \ -H "Content-Type: application/json" \ -d '{ "keywords": ["personal injury lawyer", "car accident attorney"], "location": "Houston, Texas, United States", "limit": 20 }' ``` -------------------------------- ### Request Top Pages via API Source: https://localseodata.com/docs/ai-top-pages Example requests for the /v1/ai/top-pages endpoint using different programming environments. ```bash curl -X POST https://api.localseodata.com/v1/ai/top-pages \ -H "Authorization: Bearer sk_live_your_key" \ -H "Content-Type: application/json" \ -d '{"keyword": "plumber Austin", "location": "Austin, Texas", "limit": 10}' ``` -------------------------------- ### Keyword Suggestions API Response Source: https://localseodata.com/docs/keyword-suggestions Example JSON response containing the seed keyword metrics and a list of suggested keywords with their respective search data. ```json { "status": "success", "credits_used": 2, "data": { "seed_keyword": { "keyword": "roof repair", "search_volume": 1600, "keyword_difficulty": 42, "cpc": 38.50 }, "suggestions": [ { "keyword": "roof repair near me", "search_volume": 720, "keyword_difficulty": 35, "cpc": 42.00, "serp_features": ["local_pack", "people_also_ask"] }, { "keyword": "emergency roof repair Austin", "search_volume": 210, "keyword_difficulty": 22, "cpc": 55.00, "serp_features": ["local_pack", "ads"] }, { "keyword": "roof leak repair cost", "search_volume": 480, "keyword_difficulty": 28, "cpc": 18.50, "serp_features": ["featured_snippet", "people_also_ask"] } ] } } ``` -------------------------------- ### AI Overview API Response Structure Source: https://localseodata.com/docs/ai-overview Example JSON response returned by the AI Overview endpoint, including summary text and cited sources. ```json { "status": "success", "credits_used": 1, "data": { "has_ai_overview": true, "asynchronous_ai_overview": false, "summary_text": "Based on Google reviews and local rankings, some of the highest-rated plumbers in Austin include...", "cited_sources": [ { "title": "ABC Plumbing - Austin TX", "url": "https://abcplumbing.com", "domain": "abcplumbing.com" }, { "title": "Top 10 Plumbers in Austin", "url": "https://yelp.com/...", "domain": "yelp.com" } ], "keyword": "best plumber in Austin", "location": "Austin, TX" } } ``` -------------------------------- ### Organic SERP Analysis Response Structure Source: https://localseodata.com/docs/organic-serp Example JSON response showing the structure of returned SERP data including organic results, ads, and AI overviews. ```json { "status": "success", "credits_used": 1, "organic": [ { "position": 1, "title": "Best Dentists in Austin", "url": "https://..." } ], "ads": [], "people_also_ask": ["How much does a dentist visit cost?"], "ai_overview": "Austin has over 500 dental practices...", "local_services_ads": [] } ``` -------------------------------- ### Google Maps SERP API Response Structure Source: https://localseodata.com/docs/maps-serp Example JSON response containing business details, ranking, and location metadata. ```json { "status": "success", "credits_used": 1, "data": { "results": [ { "rank": 1, "name": "Denver Plumbing Pros", "place_id": "ChIJ...", "rating": 4.8, "reviews_count": 312, "address": "123 Main St, Denver, CO 80202", "phone": "(303) 555-0123", "website": "https://denverplumbingpros.com", "hours": "Open 24 hours", "latitude": 39.7392, "longitude": -104.9903, "categories": ["Plumber", "Water Heater Repair"] } ], "total_results": 20, "keyword": "plumber", "keyword_used": "plumber", "geo_fallback_applied": false, "location": "Denver, Colorado", "location_resolved": "Denver,Colorado,United States" } } ``` -------------------------------- ### Initialize and Use the SDK Source: https://localseodata.com/docs/node-sdk Initialize the client with your API key and perform common local SEO queries. ```javascript import { LocalSEOData } from "@localseodata/sdk"; const client = new LocalSEOData({ apiKey: "sk_live_your_key" }); // Local pack rankings const results = await client.localPack({ keyword: "plumber", location: "Denver, CO" }); // Geogrid scan const grid = await client.geogridScan({ business: "Joe's Pizza", location: "Brooklyn, NY", keyword: "pizza", gridSize: "5x5" }); // Full audit const audit = await client.localAudit({ businessName: "Mike's Plumbing", location: "Denver, CO" }); ``` -------------------------------- ### Initialize Client and Perform API Requests Source: https://localseodata.com/docs/python-sdk Initialize the client with an API key to access local pack rankings, geogrid scans, and business audits. ```python from localseodata import Client client = Client(api_key="sk_live_your_key") # Local pack rankings results = client.local_pack(keyword="plumber", location="Denver, CO") # Geogrid scan grid = client.geogrid_scan(business="Joe's Pizza", location="Brooklyn, NY", keyword="pizza", grid_size="5x5") # Full audit audit = client.local_audit(business_name="Mike's Plumbing", location="Denver, CO") ``` -------------------------------- ### Request Local Authority Score Source: https://localseodata.com/docs/local-authority Example request to the local-authority endpoint using cURL. ```bash curl -X POST https://api.localseodata.com/v1/score/local-authority \ -H "Authorization: Bearer sk_live_your_key" \ -H "Content-Type: application/json" \ -d '{"business_name": "Joe\'s Pizza", "location": "Brooklyn, NY", "keyword": "pizza"}' ``` -------------------------------- ### Client Initialization Source: https://localseodata.com/docs/python-sdk Initialize the LocalSEOData client using your API key. ```APIDOC ## Client Initialization ### Description Initialize the client to authenticate requests to the LocalSEOData API. ### Signature `Client(api_key: str)` ### Parameters - **api_key** (str) - Required - Your live API key. ``` -------------------------------- ### Page Audit Response Structure Source: https://localseodata.com/docs/page-audit Example JSON response returned by the Page Audit API. ```json { "status": "success", "credits_used": 4, "data": { "onpage_score": 78, "title": "ABC Plumbing - Austin TX | 24/7 Emergency Service", "meta_description": "Trusted plumbers in Austin...", "h1": ["Austin's Most Trusted Plumber"], "word_count": 1247, "load_time_ms": 2340, "core_web_vitals": { "lcp": 2.1, "cls": 0.05, "fid": 45 }, "issues": [ { "severity": "critical", "issue": "Images missing alt text (4 of 12)" }, { "severity": "warning", "issue": "No FAQ schema markup detected" }, { "severity": "info", "issue": "Consider adding FAQ schema markup" } ], "schema_markup": ["LocalBusiness"], "mobile_friendly": true } } ``` -------------------------------- ### Configure VS Code GitHub Copilot MCP Source: https://localseodata.com/docs/mcp-server Add this configuration to your .vscode/mcp.json file to enable the server in GitHub Copilot. ```json { "servers": { "localseodata": { "type": "streamable-http", "url": "https://mcp.localseodata.com/mcp?key=YOUR_API_KEY" } } } ``` -------------------------------- ### Perform Page Audit Request Source: https://localseodata.com/docs/page-audit Example request to the Page Audit endpoint using cURL. ```bash curl -X POST https://api.localseodata.com/v1/site/page-audit \ -H "Authorization: Bearer sk_live_your_key" \ -H "Content-Type: application/json" \ -d '{"url": "https://abcplumbing.com"}' ``` -------------------------------- ### Configure Claude Desktop MCP Source: https://localseodata.com/docs/mcp-server Add this configuration to your Claude Desktop settings file to enable the server. ```json { "mcpServers": { "localseodata": { "url": "https://mcp.localseodata.com/mcp?key=YOUR_API_KEY" } } } ``` -------------------------------- ### Local Pack API Response Source: https://localseodata.com/docs/local-pack Example JSON response structure returned by the local-pack endpoint. ```json { "status": "success", "credits_used": 1, "results": [ { "position": 1, "name": "Roto-Rooter Plumbing & Water Cleanup", "rating": 4.7, "reviews_count": 312, "phone": "(716) 555-0123", "website": "https://www.rotorooter.com", "address": "123 Main St, Orchard Park, NY 14127", "hours": "Open 24 hours", "latitude": 42.7673, "longitude": -78.7441, "categories": ["Plumber", "Water Damage Restoration"] }, { "position": 2, "name": "Roy's Plumbing", "rating": 4.9, "reviews_count": 187, "phone": "(716) 555-0456", "website": "https://roysplumbing.com", "address": "456 Elm Ave, Orchard Park, NY 14127", "hours": "Mon-Fri 7AM-6PM", "latitude": 42.7698, "longitude": -78.7402, "categories": ["Plumber"] } ], "search_metadata": { "keyword": "plumber", "location": "Orchard Park, NY", "device": "desktop", "total_results": 20 } } ``` -------------------------------- ### Request AI Overview via cURL Source: https://localseodata.com/docs/ai-overview Perform a POST request to the AI Overview endpoint using cURL. Requires a valid API key in the Authorization header. ```bash curl -X POST https://api.localseodata.com/v1/serp/ai-overview \ -H "Authorization: Bearer sk_live_your_key" \ -H "Content-Type: application/json" \ -d '{"keyword": "best plumber in Austin", "location": "Austin, TX"}' ``` -------------------------------- ### Request Review Velocity Data Source: https://localseodata.com/docs/review-velocity Example requests for the /v1/reviews/velocity endpoint using cURL, Python, and Node.js. ```bash curl -X POST https://api.localseodata.com/v1/reviews/velocity \ -H "Authorization: Bearer sk_live_your_key" \ -H "Content-Type: application/json" \ -d '{"business_name": "Joe\'s Pizza", "location": "Brooklyn, NY", "period": "90d"}' ``` -------------------------------- ### Local Authority Score Response Source: https://localseodata.com/docs/local-authority Example JSON response containing the authority score and component breakdown. ```json { "status": "success", "credits_used": 10, "data": { "authority_score": 74, "breakdown": { "ranking": { "score": 80, "weight": 0.25, "detail": "Local pack position #2" }, "reviews": { "score": 72, "weight": 0.30, "detail": "847 reviews, 4.6 avg" }, "profile": { "score": 65, "weight": 0.25, "detail": "78% complete, missing menu and photos" }, "citations": { "score": 82, "weight": 0.20, "detail": "88% NAP consistency across 52 dirs" } }, "percentile": "Top 25% in Brooklyn, NY for pizza" } } ``` -------------------------------- ### GET /v1/locations/search Source: https://localseodata.com/docs/locations-search Search for valid location names and codes by providing a query string and optional filters. ```APIDOC ## GET /v1/locations/search ### Description Find valid location names and codes for use with all other endpoints. Search by city name, state, or zip code to get the exact location string that Local SEO Data expects. ### Method GET ### Endpoint /v1/locations/search ### Parameters #### Query Parameters - **q** (string) - Required - Place name (e.g. "Cherry Hill", "Austin, TX"). - **state** (string) - Optional - State/province filter, name or abbreviation (e.g. "NJ"). - **country** (string) - Optional - Country filter (e.g. "United States" or "US"). - **limit** (integer) - Optional - Max results. Default: 10, max 50. ### Request Example curl "https://api.localseodata.com/v1/locations/search?q=austin&limit=5" \ -H "Authorization: Bearer sk_live_your_key" ### Response #### Success Response (200) - **status** (string) - Status of the request. - **credits_used** (integer) - Credits consumed (0 for this endpoint). - **data** (object) - Contains the list of locations and metadata. - **name** (string) - Canonical location name to use in API calls. - **code** (integer) - Location code (used internally). - **type** (string) - Location type from the upstream taxonomy. - **country** (string) - Country name. - **state** (string) - State/region name. - **parent_code** (integer) - Code of the parent location in the geo hierarchy. - **total_count** (integer) - Total matches before the limit was applied. - **truncated** (boolean) - True when more matches exist than were returned. #### Response Example { "status": "success", "credits_used": 0, "data": { "locations": [ { "name": "Austin,Texas,United States", "code": 1025197, "type": "City", "country": "United States", "state": "Texas" } ], "total_count": 2, "truncated": false } } ``` -------------------------------- ### Reputation Audit Response Source: https://localseodata.com/docs/reputation-audit Example JSON response containing reputation scores, sentiment themes, and improvement recommendations. ```json { "status": "success", "credits_used": 30, "reputation_score": 82, "google": { "rating": 4.6, "reviews": 847, "reply_rate": 0.60 }, "trustpilot": { "rating": 4.2, "reviews": 156, "reply_rate": 0.15 }, "sentiment": { "positive_themes": ["fast delivery", "great crust", "friendly staff"], "negative_themes": ["long weekend wait", "small seating"] }, "recommendations": [ "Increase Google review reply rate from 60% to 90%+", "Address 'long wait on weekends' — mentioned in 18% of negative reviews" ] } ``` -------------------------------- ### POST /v1/business/qa Source: https://localseodata.com/docs/qa Retrieves a list of questions and answers for a specified business location. ```APIDOC ## POST /v1/business/qa ### Description Fetches all questions and answers from a Google Business Profile's Q&A section to help monitor business responsiveness. ### Method POST ### Endpoint https://api.localseodata.com/v1/business/qa ### Parameters #### Request Body - **business_name** (string) - Required - Business name - **location** (string) - Required - City and state - **place_id** (string) - Optional - Google Place ID for precise matching ### Request Example { "business_name": "Joe's Pizza", "location": "Brooklyn, NY" } ### Response #### Success Response (200) - **status** (string) - Status of the request - **credits_used** (integer) - Number of credits consumed - **questions** (array) - List of questions including text, author, date, and answers - **total_questions** (integer) - Total count of questions found #### Response Example { "status": "success", "credits_used": 1, "questions": [ { "question": "Do you have gluten-free pizza?", "asked_by": "Local Guide", "date": "2025-11-02", "answers": [ { "text": "Yes, we offer a gluten-free crust option!", "answered_by": "Owner", "date": "2025-11-03" } ] } ], "total_questions": 14 } ``` -------------------------------- ### POST /v1/reviews/multi-platform Source: https://localseodata.com/docs/multi-platform-reviews Retrieves combined review data from Google and Trustpilot for a specified business. ```APIDOC ## POST /v1/reviews/multi-platform ### Description Get reviews from Google and Trustpilot combined in a single call. Includes cross-platform sentiment analysis and rating comparison. ### Method POST ### Endpoint https://api.localseodata.com/v1/reviews/multi-platform ### Parameters #### Request Body - **business_name** (string) - Required - Business name - **location** (string) - Required - City and state - **place_id** (string) - Optional - Google Place ID for exact matching - **platforms** (string[]) - Optional - Platforms to include. Options: "google", "trustpilot". Default: both. ### Request Example { "business_name": "Joe's Pizza", "location": "Brooklyn, NY" } ### Response #### Success Response (200) - **status** (string) - Status of the request - **credits_used** (integer) - Credits consumed for the call - **platforms** (object) - Per-platform breakdown with rating, count, and trend - **combined_rating** (float) - Weighted average across all platforms - **total_reviews** (integer) - Total reviews across all platforms #### Response Example { "status": "success", "credits_used": 6, "platforms": { "google": { "rating": 4.6, "count": 847, "recent_trend": "stable" }, "trustpilot": { "rating": null, "count": 0, "recent_trend": null } }, "combined_rating": 4.4, "total_reviews": 1081 } ``` -------------------------------- ### Citation Consistency Audit Response Source: https://localseodata.com/docs/citation-consistency Example JSON response structure returned by the citation consistency audit endpoint. ```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 } ] } } ``` -------------------------------- ### POST /v1/keywords/for-site Source: https://localseodata.com/docs/keywords-for-site Retrieves a list of keywords associated with a competitor's domain in a specific location. ```APIDOC ## POST /v1/keywords/for-site ### Description Discover keywords that a competitor's website ranks for or is relevant to. This is useful for spying on competitors and identifying search terms they target. ### Method POST ### Endpoint https://api.localseodata.com/v1/keywords/for-site ### Parameters #### Request Body - **domain** (string) - Required - Competitor domain (e.g. "competitor-plumber.com") - **location** (string) - Required - City and state (e.g. "Denver, Colorado, United States") - **limit** (integer) - Optional - Max results. Default: 50, max: 1000 ### Request Example { "domain": "abcplumbing.com", "location": "Denver, Colorado, United States", "limit": 20 } ### Response #### Success Response (200) - **status** (string) - Status of the request - **credits_used** (integer) - Number of credits consumed - **data** (object) - Contains the domain and list of keywords - **keyword** (string) - Keyword the competitor site is associated with - **search_volume** (integer) - Monthly search volume for location - **cpc** (float) - Average cost-per-click - **competition** (float) - Competition index (0-1) #### Response Example { "status": "success", "credits_used": 3, "data": { "domain": "abcplumbing.com", "keywords": [ { "keyword": "plumber denver", "search_volume": 1200, "cpc": 48.00, "competition": 0.85 } ] } } ``` -------------------------------- ### Retrieve local pack data via Python Source: https://localseodata.com/docs/quick-start Uses the requests library to send a POST request and iterate through the returned business results. ```python import requests response = requests.post( "https://api.localseodata.com/v1/serp/local-pack", headers={"Authorization": "Bearer sk_live_your_key"}, json={"keyword": "plumber", "location": "Orchard Park, NY"} ) data = response.json() for biz in data["data"]["results"]: print(f"{biz['position']}. {biz['name']} - {biz['rating']}/5") ``` -------------------------------- ### POST /v1/serp/ai-overview Source: https://localseodata.com/docs/ai-overview Retrieves the Google AI Overview for a given search query, including the summary text and cited sources. ```APIDOC ## POST /v1/serp/ai-overview ### Description Retrieves the Google AI-generated answer (AI Overview) for a specific search query and location. ### Method POST ### Endpoint https://api.localseodata.com/v1/serp/ai-overview ### Parameters #### Request Body - **keyword** (string) - Required - Search keyword - **location** (string) - Required - City and state ### Request Example ```json { "keyword": "best plumber in Austin", "location": "Austin, TX" } ``` ### Response #### Success Response (200) - **status** (string) - Status of the request - **credits_used** (integer) - Number of credits consumed - **data** (object) - The AI overview data object - **has_ai_overview** (boolean) - Whether Google showed an AI Overview for this query - **asynchronous_ai_overview** (boolean) - Whether Google rendered the overview asynchronously - **summary_text** (string) - The AI-generated answer text - **cited_sources** (array) - Websites and pages cited by the AI Overview - **keyword** (string) - The requested keyword - **location** (string) - The requested location #### Response Example ```json { "status": "success", "credits_used": 1, "data": { "has_ai_overview": true, "asynchronous_ai_overview": false, "summary_text": "Based on Google reviews and local rankings, some of the highest-rated plumbers in Austin include...", "cited_sources": [ { "title": "ABC Plumbing - Austin TX", "url": "https://abcplumbing.com", "domain": "abcplumbing.com" }, { "title": "Top 10 Plumbers in Austin", "url": "https://yelp.com/...", "domain": "yelp.com" } ], "keyword": "best plumber in Austin", "location": "Austin, TX" } } ``` ``` -------------------------------- ### Search for locations via cURL Source: https://localseodata.com/docs/locations-search Perform a GET request to search for locations by name with a specified result limit. ```bash curl "https://api.localseodata.com/v1/locations/search?q=austin&limit=5" \ -H "Authorization: Bearer sk_live_your_key" ``` -------------------------------- ### Request Google Reviews via cURL Source: https://localseodata.com/docs/reviews Use this cURL command to fetch reviews for a specific business by providing the business name and location. ```bash curl -X POST https://api.localseodata.com/v1/business/reviews \ -H "Authorization: Bearer sk_live_your_key" \ -H "Content-Type: application/json" \ -d '{"business_name": "Joe\'s Pizza", "location": "Brooklyn, NY", "limit": 10}' ``` -------------------------------- ### POST /v1/ai/compare Source: https://localseodata.com/docs/ai-compare Compares the AI visibility of multiple domains against a set of keywords to identify competitive standing in AI search results. ```APIDOC ## POST /v1/ai/compare ### Description Compare your domain's AI visibility against 2-5 competitors in a single request. See who gets more mentions, impressions, and higher rankings across AI platforms. ### Method POST ### Endpoint https://api.localseodata.com/v1/ai/compare ### Parameters #### Request Body - **domains** (string[]) - Required - Domains to compare (2-5) - **keywords** (string[]) - Required - Keywords to compare across (max 10) - **location** (string) - Optional - Location (e.g. "Austin, TX"). Default: United States ### Request Example { "domains": ["abcplumbing.com", "xyzplumbing.com", "bestplumber.com"], "keywords": ["plumber austin", "emergency plumber"], "location": "Austin, Texas" } ### Response #### Success Response (200) - **status** (string) - Status of the request - **credits_used** (integer) - Credits consumed for the request - **data** (object) - Comparison data containing keywords and domain-specific metrics #### Response Example { "status": "success", "credits_used": 10, "data": { "keywords": ["plumber austin", "emergency plumber"], "by_domain": [ { "domain": "abcplumbing.com", "total_mentions": 12, "total_impressions": 4800, "ai_search_volume": 2400 } ] } } ``` -------------------------------- ### Perform Citation Consistency Audit Source: https://localseodata.com/docs/citation-consistency Request examples for the citation consistency audit endpoint across different programming environments. ```bash curl -X POST https://api.localseodata.com/v1/audit/citation-consistency \ -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" }' ``` -------------------------------- ### Business Profile Health API Response Source: https://localseodata.com/docs/profile-health Example JSON response containing the completeness score, missing fields, and improvement recommendations. ```json { "status": "success", "credits_used": 2, "data": { "completeness_score": 78, "verified": true, "photos_count": 23, "qa_count": 14, "posts_last_30d": 0, "missing_fields": ["menu_link", "appointment_link"], "incomplete_fields": ["hours_saturday", "business_description"], "recommendations": [ "Add a menu link — pizza restaurants with menus get 25% more clicks", "Fill Saturday hours — 40% of pizza searches happen on weekends", "Post a Google Post — no activity in 30 days signals staleness" ] } } ``` -------------------------------- ### Configure Windsurf MCP Source: https://localseodata.com/docs/mcp-server Add this configuration to your Windsurf MCP settings file. ```json { "mcpServers": { "localseodata": { "serverUrl": "https://mcp.localseodata.com/mcp?key=YOUR_API_KEY" } } } ``` -------------------------------- ### Location search response format Source: https://localseodata.com/docs/locations-search Example JSON response containing a list of matching locations with their canonical names and internal codes. ```json { "status": "success", "credits_used": 0, "data": { "locations": [ { "name": "Austin,Texas,United States", "code": 1025197, "type": "City", "country": "United States", "state": "Texas" }, { "name": "Austin,Minnesota,United States", "code": 1025198, "type": "City", "country": "United States", "state": "Minnesota" } ], "total_count": 2, "truncated": false } } ``` -------------------------------- ### POST /v1/serp/local-pack Source: https://localseodata.com/docs/local-pack Retrieves businesses that appear in Google's local 3-pack for a given keyword and city. ```APIDOC ## POST /v1/serp/local-pack ### Description Get the businesses that appear in Google's local 3-pack for any keyword and city. Returns business names, ratings, review counts, phone numbers, websites, hours, and GPS coordinates. ### Method POST ### Endpoint https://api.localseodata.com/v1/serp/local-pack ### Parameters #### Request Body - **keyword** (string) - Required - Search keyword (e.g. "plumber") - **location** (string) - Required - City and state (e.g. "Orchard Park, NY") - **device** (string) - Optional - "desktop" or "mobile". Default: "desktop" - **depth** (integer) - Optional - Number of results. Default: 20, max: 60 ### Request Example { "keyword": "plumber", "location": "Orchard Park, NY" } ### Response #### Success Response (200) - **status** (string) - Status of the request - **credits_used** (integer) - Credits consumed for the request - **results** (array) - List of businesses found - **search_metadata** (object) - Metadata about the search query #### Response Example { "status": "success", "credits_used": 1, "results": [ { "position": 1, "name": "Roto-Rooter Plumbing & Water Cleanup", "rating": 4.7, "reviews_count": 312, "phone": "(716) 555-0123", "website": "https://www.rotorooter.com", "address": "123 Main St, Orchard Park, NY 14127", "hours": "Open 24 hours", "latitude": 42.7673, "longitude": -78.7441, "categories": ["Plumber", "Water Damage Restoration"] } ], "search_metadata": { "keyword": "plumber", "location": "Orchard Park, NY", "device": "desktop", "total_results": 20 } } ``` -------------------------------- ### Request business listings via cURL Source: https://localseodata.com/docs/business-listings Use this POST request to fetch a list of businesses in a specific category and location. ```bash curl -X POST https://api.localseodata.com/v1/business/listings \ -H "Authorization: Bearer sk_live_your_key" \ -H "Content-Type: application/json" \ -d '{"category": "dentist", "location": "Austin, TX", "limit": 50}' ``` -------------------------------- ### Search Volume API Response Structure Source: https://localseodata.com/docs/search-volume Example JSON response containing search volume, CPC, competition levels, and monthly search trends. ```json { "status": "success", "credits_used": 1, "data": { "keywords": [ { "keyword": "plumber near me", "search_volume": 2400, "cpc": 45.20, "competition": 0.87, "competition_level": "HIGH", "monthly_searches": [ { "month": "2026-02", "volume": 2200 }, { "month": "2026-01", "volume": 2800 }, { "month": "2025-12", "volume": 2100 } ] }, { "keyword": "emergency plumber", "search_volume": 880, "cpc": 62.50, "competition": 0.92, "competition_level": "HIGH", "monthly_searches": [ { "month": "2026-02", "volume": 820 }, { "month": "2026-01", "volume": 1100 }, { "month": "2025-12", "volume": 750 } ] }, { "keyword": "pipe repair", "search_volume": 320, "cpc": 28.40, "competition": 0.54, "competition_level": "MEDIUM", "monthly_searches": [ { "month": "2026-02", "volume": 300 }, { "month": "2026-01", "volume": 390 }, { "month": "2025-12", "volume": 280 } ] } ], "location": "Denver, Colorado, United States", "location_used": "Denver,Colorado,United States", "volume_scope": "local", "data_source": "google_ads" } } ```