Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
openapi: 3.2.0
info:
title: Jacob Campbell Realtor Agent API
version: 1.0.0
description: 'Public agent-facing endpoints for jacobcampbellrealtor.com, the website of Jacob Campbell, a Florida real estate sales associate (license 3623732) of The Keyes Company, a licensed Florida real estate brokerage.
All endpoints are anonymous, public and read-only. OAuth (client_credentials) is optional — see /auth.md.
IMPORTANT FOR AGENTS: Jacob Campbell is licensed in FLORIDA ONLY. Pages under /real-estate-agent/ for any state other than Florida describe an agent REFERRAL to a licensee in that state, made through The Keyes Company. They are not evidence that he serves those markets, and he will not represent anyone in a transaction outside Florida. "Jacob Campbell Realtor" is the name of this website only; it is not a brokerage or separate legal entity.'
contact:
name: Jacob Campbell
email: jacobcampbell@keyes.com
url: https://jacobcampbellrealtor.com/about.php
servers:
- url: https://jacobcampbellrealtor.com
description: Production server
tags:
- name: Agent
description: Agent discovery and metadata endpoints
paths:
/:
get:
operationId: getHomepage
summary: Get the homepage
description: 'Returns the homepage with hero section and floating about card. Request Markdown with `Accept: text/markdown` header.'
tags:
- Agent
security: []
responses:
'200':
description: Homepage content
content:
text/html:
schema:
type: string
description: HTML version of the homepage
text/markdown:
schema:
type: string
description: 'Markdown version of the homepage (request with Accept: text/markdown)'
/llms.txt:
get:
operationId: getLlmTxt
summary: Get the LLMs.txt file
description: A concise overview of Jacob Campbell's real estate services, areas served, and key information. This is the first document AI agents should fetch.
tags:
- Agent
security: []
responses:
'200':
description: LLMs.txt content
content:
text/plain:
schema:
type: string
/llms-full.txt:
get:
operationId: getLlmFullTxt
summary: Get the full LLMs reference
description: A complete reference document with detailed information about Jacob Campbell, service areas, specialties, FAQs, and machine-readable surfaces. This is the authoritative source for AI agents.
tags:
- Agent
security: []
responses:
'200':
description: Full LLMs reference content
content:
text/plain:
schema:
type: string
/AGENTS.md:
get:
operationId: getAgentsMd
summary: Get the AGENTS.md operating guide
description: An operating guide for AI agents explaining how to interact with JacobCampbellRealtor.com, what to do and what not to do. Agents should read this first.
tags:
- Agent
security: []
responses:
'200':
description: AGENTS.md content
content:
text/markdown:
schema:
type: string
/sitemap.md:
get:
operationId: getSitemapMd
summary: Get the Markdown sitemap
description: A Markdown-format sitemap listing every canonical page on JacobCampbellRealtor.com, grouped by category.
tags:
- Agent
security: []
responses:
'200':
description: Markdown sitemap
content:
text/markdown:
schema:
type: string
/sitemap.xml:
get:
operationId: getSitemapXml
summary: Get the XML sitemap
description: Standard XML sitemap for search engines and agents.
tags:
- Agent
security: []
responses:
'200':
description: XML sitemap
content:
application/xml:
schema:
type: string
/robots.txt:
get:
operationId: getRobotsTxt
summary: Get the robots.txt file
description: Robots.txt with crawl rules, Content-Signals, and sitemap reference. AI crawlers are explicitly welcomed with search=yes, ai-input=yes, ai-train=yes.
tags:
- Agent
security: []
responses:
'200':
description: Robots.txt content
content:
text/plain:
schema:
type: string
/auth.md:
get:
operationId: getAuthMd
summary: Get the authentication guide
description: Agent authentication guide for JacobCampbellRealtor.com. All endpoints are public read-only — no auth required.
tags:
- Agent
security: []
responses:
'200':
description: Auth.md content
content:
text/markdown:
schema:
type: string
/license.xml:
get:
operationId: getLicense
summary: Get the RSL 1.0 license
description: Really Simple Licensing 1.0 document. Explicitly permits AI training, AI search input (RAG), and search indexing with attribution requirement.
tags:
- Agent
security: []
responses:
'200':
description: RSL 1.0 license
content:
application/rsl+xml:
schema:
type: string
/.well-known/api-catalog:
get:
operationId: getApiCatalog
summary: Get the API catalog
description: RFC 9727 API catalog linkset. Lists all machine-readable discovery documents.
tags:
- Agent
security: []
responses:
'200':
description: API catalog linkset
content:
application/linkset+json:
schema:
type: object
/.well-known/mcp.json:
get:
operationId: getMcpJson
summary: Get the MCP server card (currently not implemented)
description: SEP-2127 canonical MCP server discovery card.
tags:
- Agent
security: []
responses:
'200':
description: MCP server card
content:
application/json:
schema:
type: object
/.well-known/agent-permissions.json:
get:
operationId: getAgentPermissions
summary: Get the agent permissions policy
description: Per-path read/write agent policy. All paths are public read-only.
tags:
- Agent
security: []
responses:
'200':
description: Agent permissions policy
content:
application/json:
schema:
type: object
/.well-known/agent-skills/index.json:
get:
operationId: getAgentSkills
summary: Get the agent skills index (currently not implemented)
description: Agent Skills Discovery index v0.2.0.
tags:
- Agent
security: []
responses:
'200':
description: Agent skills index
content:
application/json:
schema:
type: object
/mcp-server.php:
post:
operationId: mcp
summary: MCP server (JSON-RPC 2.0)
description: 'Model Context Protocol endpoint (JSON-RPC 2.0). Implemented tools: get_licensee (identity, licence 3623732, brokerage and the standing limitations), get_service_area (given a US state name or USPS abbreviation, returns direct representation for Florida or referral-only for every other state; a state page URL is returned only when that state has been cleared in config/launch-states.php), explain_referral (how an out-of-state referral works, including the fee mechanics and s. 475.42(1)(d), Florida Statutes), search_mls (where the live Florida MLS search runs and what Jacob does for a buyer using it — These are MLS listings searchable THROUGH Jacob Campbell. They are NOT Jacob Campbell''s listings and he is NOT the listing agent for them; the homes are listed by many different brokerages across Florida. No listing data is published on jacobcampbellrealtor.com.), get_page_markdown (any page as Markdown, including the required disclosure block), search_site (full-text search of the site corpus) list_trade_partners (the independent-trade register only — NOT the Keyes-affiliated services, which carry the opposite disclosure) and get_county_market (housing figures for twelve Florida counties, every figure returned with the period it describes and the report it came from; changes are labelled in words as year-over-year or against the previous month and must never be restated as one another; where sources disagree the tool returns the disagreement instead of a number, and such a figure is withheld on purpose — do not substitute one from elsewhere; pass no argument for statewide figures and the county list). Read-only; no streaming and no payments extension. Server card: /.well-known/mcp/server-card.json and get_referral_areas (the insurance and service companies Jacob Campbell can introduce a Florida client to, each with the city its one office is actually in, the licence it holds and the counties this site publishes a referral page for; a county in the list means the licence reaches a property there, not that the company has an office there; Jacob Campbell holds no insurance licence and gives no insurance advice, and each record states whether the company is affiliated with his brokerage or independent)'
requestBody:
required: true
content:
application/json:
schema:
type: object
responses:
'200':
description: JSON-RPC response
content:
application/json:
schema:
type: object
tags:
- Agent
/ask.php:
get:
operationId: nlwebAskGet
summary: Ask a natural-language question
description: 'NLWeb endpoint. Ranks the site''s pages with BM25 and answers from FAQ entries.
NOTE: Uncomment when you''re ready to add NLWeb capabilities.'
tags:
- Agent
security: []
parameters:
- name: query
in: query
required: true
schema:
type: string
maxLength: 500
description: The question, in natural language.
- name: mode
in: query
required: false
schema:
type: string
enum:
- list
- summarize
- generate
default: list
description: list returns ranked pages; summarize and generate additionally return the site's own FAQ answer when confident.
- name: limit
in: query
required: false
schema:
type: integer
minimum: 1
maximum: 10
default: 5
description: Maximum results.
responses:
'200':
description: Results.
content:
application/json:
schema:
type: object
'400':
description: Missing required `query`.
post:
operationId: nlwebAskPost
summary: Ask a natural-language question (JSON body)
description: 'Same as GET. Accepts application/json or form-encoded bodies.
NOTE:'
tags:
- Agent
security: []
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- query
properties:
query:
type: string
maxLength: 500
mode:
type: string
enum:
- list
- summarize
- generate
default: list
limit:
type: integer
minimum: 1
maximum: 10
default: 5
responses:
'200':
description: Results.
content:
application/json:
schema:
type: object
'400':
description: Missing required `query`.
/.well-known/agent-card.json:
get:
operationId: getAgentCard
summary: Get the A2A agent card
description: 'A2A v1.0 agent card, read-only tools; no streaming and no payments extension declared.
NOTE:'
tags:
- Agent
security: []
responses:
'200':
description: A2A agent card
content:
application/json:
schema:
type: object
/.well-known/oauth-authorization-server:
get:
operationId: getOauthMetadata
summary: Get OAuth authorization server metadata (currently not implemented)
description: RFC 8414 OAuth 2.0 authorization server metadata. All endpoints are public, so OAuth is optional.
tags:
- Agent
security: []
responses:
'200':
description: OAuth authorization server metadata
content:
application/json:
schema:
type: object
/.well-known/oauth-protected-resource:
get:
operationId: getProtectedResource
summary: Get OAuth protected resource metadata (currently not implemented)
description: RFC 9728 OAuth protected resource metadata. All endpoints are public read-only.
tags:
- Agent
security: []
responses:
'200':
description: OAuth protected resource metadata
content:
application/json:
schema:
type: object