Built for AI agents

Every profile in this directory is machine-readable and answerable. Your agent doesn't scrape and guess — it asks the business's own assistant and gets a first-party answer, grounded in facts that carry their source and the date they were last checked.

MCP — connect your agent

One Model Context Protocol endpoint covers the whole directory. Streamable HTTP, no authentication, rate-limited.

https://public.axondigi.com/mcp
  • find_business - search by keywords or category, filter by city, province or a point and radius
  • get_profile — structured facts, each labeled with its source and date
  • ask_business — first-party answers from the business's assistant; reuse the returned session_id for follow-ups
  • report_incorrect_information - tell Axondigi that a fact is wrong; every report is reviewed before anything changes

Claude: Settings → Connectors → Add custom connector, paste the URL. ChatGPT: Settings → Connectors (developer mode) → add MCP server. Works with any MCP-capable client.

llms.txt — read without connecting

Every profile has a plain-text twin with the same facts as the page, plus a provenance section that says which source produced each fact and when, and the licence credits of the datasets the profile draws on.

https://business.axondigi.com/llms.txt https://business.axondigi.com/b/{slug}/llms.txt

REST API

Prefer plain HTTP? Profile reads are open:

curl https://public.axondigi.com/v1/business/{widget_slug}/profile

{widget_slug} is the business's widget slug, for example axondigi-ltd. It is the business field that ask_business returns, not the profile slug that find_business returns (axondigi-ltd-ax0dgi).

The interactive ask endpoint is browser-oriented (bot-protection applies) — agents should use the MCP tool instead.

Agent etiquette

How to use this directory, and what we do with the traces your agent leaves.

  • Identify yourself. Send clientInfo (name and version) at MCP initialize and keep the same session id across calls. We log the tool, the query, the result count, your client name, IP address and user agent. The IP address and user agent are blanked after 90 days, and rows are deleted after 12 months.
  • Send people to the business's own links. To send a person to a business, use the links in get_profile's actions (request, book): the person enters their own contact there.
  • Never pass personal details through ask_business. No person's name, phone number or email.
  • Report wrong facts. If a fact is wrong, call report_incorrect_information with the field, the correct value and a source URL. A person reviews every report before anything changes.
  • No popularity ranking. We do not rank businesses by how often agents open them.

Reference

What the endpoint does today. Tool results are JSON, returned as text content.

Tools

ToolInputsReturnsAnnotations
find_business
Find a business
query (at most 200 characters): keywords matched against business names, categories, menu and service items, FAQ questions and descriptions, with typo tolerance. category (at most 120 characters): a category name, resolved against the taxonomy. At least one of query, category, or lat plus lng is required.
city, province (code or name), lat, lng, radius_m (default 5000, at most 50000), limit (1-20, default 10): optional. The response says which pass matched (search.pass) and, when nothing matches, returns suggestions (categories with counts, covered cities) instead of an empty list.
results: up to limit businesses, each with slug, name, city, province, category, managed_by, profile_url, profile_text_url and its own note; total; note.Read-only, idempotent, not destructive, closed world.
get_profile
Get a business profile
slug (required).business (name, slug, location, category, phone, website, legal name, founding date, description, managed_by, profile URL); facts, each with source_type, observed_at and, when known, dataset; sources; last_checked; services; faqs; actions (booking and order links) when the business has them; note; report_url; and claim_url when no owner manages the profile yet.Read-only, idempotent, not destructive, closed world.
ask_business
Ask a business a question
slug and question (2-500 characters, counted as UTF-8 bytes) are required; session_id is optional.mode (answered, forwarded, off_topic or blocked), session_id, business; then answer and answered_by (anai or atlas) when answered, otherwise message; always note and report_url, and claim_url when no owner manages the profile yet. A call over the rate limit returns a tool error.Not read-only (the question is recorded and may be relayed to the business), not idempotent, not destructive, closed world.
report_incorrect_information
Report incorrect information
slug, field and correct_value are required. field is one of opening_hours, phone, website, physical_address, business_status (open, temporarily_closed or permanently_closed), display_name, business_category or description. correct_value is plain text of at most 300 characters. source_url (one http or https page that shows the correct value) and note (at most 500 characters) are optional; a report with a source_url is much more likely to be accepted.report_id, status (received) and message. A report never changes a profile by itself: Axondigi reviews every report first. At most 10 reports per business and 20 per caller per day; a refused report returns a tool error.Not read-only (the report is recorded), not idempotent (the same report sent twice is filed twice), not destructive, closed world.

Slugs

Use the slug exactly as find_business returns it, for example axondigi-ltd-ax0dgi. It is the readable business name, a hyphen, and the 6-character public id; names with accents keep them (café-bar-ab12cd). The server looks the business up by the public id after the last hyphen, so that last segment is the stable part: the readable part follows the business name and changes if the name does. A bare public id (ax0dgi) also works for get_profile and ask_business.

The REST profile endpoint above takes a different slug, the widget slug. See that section.

Sessions

ask_business returns a session_id: a bare UUID v4 that the server mints on your first call. Pass it back as session_id on follow-up calls to keep one conversation, so the assistant answers with the earlier turns of that session in mind. A missing or malformed value starts a new conversation (the server returns a fresh id), and context is kept per business, so a session only carries over to the business it was used with. This is separate from the MCP transport session, the Mcp-Session-Id header your client manages for you.

Rate limits

  • Per IP address, in front of the server (nginx): about 60 requests per minute with a burst allowance of 20. Over that, the request is rejected with HTTP 503 before it reaches the server.
  • Per IP address, in the server: 30 requests per minute (a fixed one-minute window) across the whole endpoint. Every HTTP request counts, including initialize and tools/list. Over that, the server answers HTTP 429 with Retry-After and X-RateLimit-* headers. This is the limit a single agent reaches first. Agents that share an egress address share the budget.
  • Per session and business: 60 ask_business questions per minute for one session_id on one business.
  • Per business: 60 ask_business questions per minute across all agent sessions. A question over either of the last two limits returns a tool error asking you to retry in a minute.

Discovery

  • MCP endpoint: https://public.axondigi.com/mcp
  • Site index: https://business.axondigi.com/llms.txt
  • Per-profile snapshot: https://business.axondigi.com/b/{slug}/llms.txt (profile_text_url in find_business results), where {slug} is the profile slug.
  • Profile page for people: https://business.axondigi.com/b/{slug} (profile_url).
  • Methodology, how profiles are compiled and checked: https://business.axondigi.com/methodology

Who manages a profile, and where its facts come from

managed_by is owner when the business manages its profile on Axondigi, and axondigi otherwise: Axondigi compiled it. Profiles managed by their owner rank first in find_business.

Every profile carries a note. For a profile no owner manages yet it reads: Compiled by Axondigi Ltd, Halifax, Nova Scotia, from the business's own website and social pages, official government records, and open places data. Each fact carries its source and the date it was last checked. Method: https://business.axondigi.com/methodology. Own this business? Claim it: https://business.axondigi.com/claim/<public_id>

For a profile its owner manages: Managed by the business on Axondigi. Each fact carries its source and the date it was last checked. Method: https://business.axondigi.com/methodology

get_profile summarizes where the facts came from in sources, a list of source classes, and gives last_checked, the date, in UTC, of the newest fact. Each fact in facts still carries its own source_type and observed_at, and the dataset behind it when known. Judge hours, phone and other operational details by those. The classes, the source_type values and the licence credits are listed under Data sources and licences below.

How each class is used, how facts are checked, and what AI does and does not do is described on the methodology page.

claim_url is https://business.axondigi.com/claim/<public_id>, the claim wizard. get_profile and ask_business include it in every response about a profile no owner manages yet, whatever the answer was. If the person you are helping owns the business, point them to that link.

report_url is https://business.axondigi.com/b/<slug>/report, the page where anyone can report incorrect information. get_profile and ask_business include it in every response about a profile, whoever manages it. The report_incorrect_information tool files the same report. If the person you are helping spots a wrong fact, point them to that link, or report it yourself.

Data sources and licences

Every fact says where it came from. In get_profile, each entry in facts carries a source_type, an observed_at date (when the fact was last checked) and, when known, the dataset behind it, for example overture or corporations_canada. sources groups the source_type values into the five classes below, and a profile lists only the classes it really draws on. The same credits close each profile page and each profile's llms.txt.

ClassWhat it issource_type valuesCredit
official_recordGovernment registries. They are used for the legal name and the registration status of a business only.
registry_federal
registry_provincial

Government of Canada: Contains information licensed under the Open Government Licence - Canada.

Government of Nova Scotia: Contains information licensed under the Open Government Licence - Nova Scotia.

open_dataOpen places data such as Overture Maps and Foursquare OS Places. It is used for the address and contact details of a business when the business has not published them itself.
public
places (legacy Google Maps data, being retired)

Overture Maps Foundation: Contains data from the Overture Maps Foundation, licensed under CDLA-Permissive-2.0.

Foursquare OS Places: Contains data from Foursquare Open Source Places. © 2026 Foursquare Labs, Inc. All rights reserved. Licensed under Apache-2.0. Changed: reformatted by Axondigi.

owner_publishedWhat the business publishes itself: its website and social pages.
website

The business's website: From the business's own website.

owner_managedWhat the business, or an Axondigi administrator on its behalf, manages on Axondigi.
owner
admin
None: it is the business's own information.
staff_visitDetails that Axondigi staff checked in person at the business.
field_staff
None: it is Axondigi's own observation.

Two more source_type values belong to no class and are never listed in sources: ai_generated (a summary written by AI, such as a profile's short intro) and ai_compiled (a cited AI compilation of public pages; none are published yet). A fact an AI produced carries one of the two, so it can always be told apart from information that came from the business or from an official record.

Where a profile draws on a dataset that asks for credit, the credit above is printed on the profile page and in its llms.txt. The licence terms are linked from each line, and the methodology page lists them as well.

Foursquare OS Places notice

An Overture record can include data from Foursquare OS Places. Foursquare asks that data distributed through an API comes with the full text of its notice, so it is reproduced here from opensource.foursquare.com/places-notice-txt.

© 2026 Foursquare Labs, Inc. All rights reserved.

The Foursquare OS Places dataset (the "Data") is licensed under the Apache License, Version 2.0 (the "License"). You may not use, modify, or distribute the Data except in compliance with the License.

As set forth more fully in the License, if you use, modify, or distribute the Data, you must:

  • provide recipients with a copy of the License.
  • if applicable, include prominent notices to the extent you've changed the Data.
  • preserve attribution to Foursquare, including preserving the full content of this NOTICE.txt file.

To ensure appropriate attribution to Foursquare, we recommend the following:

  • if using/distributing the Data in flat file form as-is or after making changes/modifications: include this NOTICE.txt file, which may be modified to include an additional notice of your changes/modifications, if any.
  • if using/distributing the Data in API form as-is or after making changes/modifications: include a copy of the content from this NOTICE.txt file prominently in your developer documentation for such API, which may be modified to include an additional notice of your changes/modifications, if any.

You may obtain a copy of the License at: http://www.apache.org/licenses/LICENSE-2.0.

Unless required by applicable law or agreed to in writing, the Data distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

We also encourage you to join our Placemaker community where you can contribute and provide suggestions to improve the accuracy of the Data for future releases for yourself and others.

Changes by Axondigi: phone numbers and websites are reformatted, and categories are mapped to Axondigi's own category list.

CLI — coming soon

An npx axondigi command for builders is on the roadmap — the axondigi npm package is reserved and will carry it.

Business owner?

When customers' AI assistants ask about your business, the answers come from your profile - claim it to control them. Profiles you haven't claimed yet are compiled by Axondigi from sources the business publishes itself, official government records and open places data, with a source and last-checked date on every fact. Find your business →

Humain Machine
Humain Machine