Integrations

Locomint is one HTTPS API and one MCP server, so it connects to the tools you already use without a plugin. Pick the way you work: an assistant that calls tools, code, a workflow that runs on a schedule, or a batch job on the Apify Store.

Get a free API key Read the API reference

AI agents and coding tools

The MCP server exposes nine tools an assistant can call with your key: search and count local businesses, read a full record, read a page, verify addresses, look a company up by domain, check a site's crawler rules, check schema markup and read your own usage.

Claude Code

One command, then the tools are available in every session.

bash
claude mcp add --transport http locomint \
  https://api.locomint.io/mcp \
  --header "Authorization: Bearer YOUR_LOCOMINT_KEY"

Claude Desktop, Cursor, VS Code, Cline, Windsurf

Anything that speaks MCP over streamable HTTP takes the same block. Put it in that client's MCP configuration file.

json
{
  "mcpServers": {
    "locomint": {
      "url": "https://api.locomint.io/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_LOCOMINT_KEY"
      }
    }
  }
}

Any assistant, without MCP

One endpoint returns business facts already shaped for a context window: at most ten businesses, trimmed fields, a text block, and a citation on every record saying where it came from and when.

bash
curl "https://api.locomint.io/v1/ground/local?q=dentist&location=Lisbon,%20Portugal" \
  -H "X-API-Key: $LOCOMINT_KEY"

Worth knowing. Your key is a bearer token on the MCP endpoint. Some clients cannot send headers at all; those cannot use the MCP server safely, and the REST API is the right route for them. Never put the key in a URL, where it ends up in shell history and server logs.

Code

There is no SDK to install. Every endpoint is a plain HTTPS call that returns JSON, so the standard HTTP library in your language is the client.

Python

Any HTTP library. This uses requests.

python
import os, requests

r = requests.get(
    "https://api.locomint.io/v1/places/search",
    params={"q": "dentist", "location": "Lisbon, Portugal", "limit": 20},
    headers={"X-API-Key": os.environ["LOCOMINT_KEY"]},
    timeout=30,
)
r.raise_for_status()
for place in r.json()["data"]:
    print(place["name"], place.get("phone_e164"), place.get("website"))

Node.js

Built-in fetch, Node 18 and later.

javascript
const params = new URLSearchParams({
  q: "dentist", location: "Lisbon, Portugal", limit: "20",
});
const r = await fetch(`https://api.locomint.io/v1/places/search?${params}`, {
  headers: { "X-API-Key": process.env.LOCOMINT_KEY },
});
if (!r.ok) throw new Error(`Locomint ${r.status}`);
const { data } = await r.json();
for (const place of data) console.log(place.name, place.website);

OpenAPI schema

The full machine-readable description of every endpoint. Import it into Postman or Insomnia, or point a code generator at it to get a typed client in your own language.

bash
curl https://api.locomint.io/openapi.json

Worth knowing. Send the key as the X-API-Key header from your own server, never from a browser or a mobile app, where anyone can read it.

Automation and no-code

There is no dedicated Locomint app in these tools. There does not need to be: each has a generic HTTP step, and that is all an endpoint like this requires.

n8n

Add an HTTP Request node. Method GET, and under Authentication choose Generic Credential Type, then Header Auth, with the name X-API-Key and your key as the value.

text
URL     https://api.locomint.io/v1/places/search
Method  GET
Query   q = dentist
        location = Lisbon, Portugal
        limit = 20
Header  X-API-Key = your key

Make and Zapier

Use the HTTP module in Make, or Webhooks by Zapier with the GET action. Both take the same URL, query and header.

text
URL      https://api.locomint.io/v1/places/search?q=dentist&location=Lisbon,%20Portugal
Method   GET
Headers  X-API-Key: your key

Google Sheets

A short Apps Script fills a sheet from a search. Extensions, then Apps Script, then paste this and run it.

javascript
function fillFromLocomint() {
  const key = "YOUR_LOCOMINT_KEY";
  const url = "https://api.locomint.io/v1/places/search"
    + "?q=dentist&location=Lisbon,%20Portugal&limit=20";
  const res = UrlFetchApp.fetch(url, {
    headers: { "X-API-Key": key },
  });
  const rows = JSON.parse(res.getContentText()).data
    .map(p => [p.name, p.phone_e164, p.website, p.rating]);
  const sheet = SpreadsheetApp.getActiveSheet();
  sheet.appendRow(["Name", "Phone", "Website", "Rating"]);
  rows.forEach(r => sheet.appendRow(r));
}

Worth knowing. There are no outgoing webhooks yet, so an automation polls rather than being pushed to. Change notifications are the next thing planned.

Run it as a batch on Apify

For a list of thousands, without writing a paging loop, the same engine runs as thirteen listings on the Apify Store. They bill per result on Apify rather than against your Locomint credits, and Apify's own free plan includes $5 of usage a month with no card.

Apify Store

Business search with website contacts, many cities in one run, full records by place ID, website contacts and a whole-site crawler, bulk email verification, company enrichment, technology detection, career site jobs, AI crawler rules and schema checks. Run them from the Apify console, on a schedule, or from its API.

text
google-maps-scraper                 $3.00 per 1,000 places
google-maps-multi-city-scraper      $3.00 per 1,000 leads
google-maps-place-details-scraper   $2.50 per 1,000 records
website-content-contact-extractor   $1.50 per 1,000 pages
website-crawler-content-contacts    $1.50 per 1,000 pages
bulk-email-verifier                 $0.90 per 1,000 addresses
company-enrichment                  $5.00 per 1,000 domains
ai-crawler-checker                  $3.00 per 1,000 domains
schema-markup-validator             $0.50 per 1,000 URLs
career-site-jobs-scraper            $6.00 per 1,000 jobs
tech-stack-detector                 $10.00 per 1,000 pages
google-maps-email-extractor         $5.00 per 1,000 leads
google-ads-transparency-scraper     $1.00 per 1,000 ads

Apify API

Every listing takes the same kind of call. This one runs a search and answers with the places when the run finishes. The token also works as an Authorization: Bearer header.

bash
curl -X POST "https://api.apify.com/v2/acts/locomint~google-maps-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"searchStringsArray": ["dentist"], "locationQuery": "Lisbon, Portugal", "maxCrawledPlacesPerSearch": 50}'

Worth knowing. The listings are the only route with separate billing: Apify charges per result and nothing there spends your Locomint credits. Everything else on this page does. The input fields are in the API reference.

Every route bills the same way

It does not matter whether the call arrives from an assistant, your own code or a workflow. The MCP tools call these same endpoints internally, so there is one key, one monthly balance and one rate card.

  • 1 credit per place returned by a search
  • 1 credit per full business record, plus 1 to force a fresh website crawl
  • 5 credits per reviews call
  • 1 credit per email address verified; one whose mail server never answers is free
  • 1 credit per page extracted, and per domain enriched
  • Free — result counts, usage checks, and the status feed

The free plan is 75 credits a month. At the quota the API answers 402 until the month turns over; there is no overage billing, so nothing you build here can produce a surprise bill. For more volume the same engine runs on Apify, billed per result, and the pricing page sets the two side by side.

Where to go next

Each API has a page of its own explaining what it returns and what a call costs: Google Maps Scraper API, Business Details API, Career Site Jobs API, Tech Stack Checker API, Company Enrichment API, Email Verification API and Google Maps MCP Server. The reference carries every parameter, and status shows what this morning's checks found.

Questions

Do I need a different key for the MCP server?

No. One key works on every route on this page, and it is the same key the REST API uses. Create one on the signup page; the free plan gives 75 credits a month and needs no card.

Does calling through MCP cost more than calling the API?

No. Every route spends the same credits at the same rates, because the MCP tools call this API's own endpoints internally. One credit per place returned, one per full record, five per reviews call, one per address verified, one per page extracted, one per domain enriched. Result counts and usage checks are free.

Which MCP clients work?

Any client that speaks the Model Context Protocol over streamable HTTP and can send an Authorization header. Claude Code, Claude Desktop, Cursor, VS Code, Cline and Windsurf all do. A client that cannot send headers should use the REST API instead, because the alternative is putting your key in a URL.

Is there a Python or JavaScript SDK?

Not yet. Every endpoint is a plain HTTPS GET or POST returning JSON, so the standard HTTP library in your language is enough, and the OpenAPI schema will generate a typed client if you want one.

What happens when I run out of credits?

The API answers 402 until your credits reset at the start of the next month. There is no overage billing, so a runaway loop cannot produce a bill you did not expect. For more volume, the same engine runs on Apify and is billed per result there.

Can I use this from a browser or a mobile app?

Not directly. The key would be readable by anyone using the app. Call Locomint from your own server and pass the results on.

Get a free API key See all fourteen APIs