Discovery needs no key. Ratings and market analysis are Pro.
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: 53ON Public Xsite API
version: 1.0.0
summary: Directory and marketplace of local businesses and independent professionals.
description: Public, read-only endpoints. No session and no API key required. If you speak MCP, prefer the MCP server described in /.well-known/mcp/server-card.json — it is the same data with tool descriptions attached.
contact:
url: https://53on.com/?p=contact
servers:
- url: https://53on.com
tags:
- name: Xsite
paths:
/xsite/packages/Search/Controllers/pst_search_providers.php:
get:
operationId: searchProviders
summary: Find local businesses and independent professionals near a point
description: 'Returns businesses grouped in sections. IMPORTANT: without lat and lng the response is no_location — the area is otherwise derived by JavaScript from the browser IP, which an agent does not run. Send the coordinates yourself.'
parameters:
- name: lat
in: query
required: true
schema:
type: number
description: Latitude of the user.
- name: lng
in: query
required: true
schema:
type: number
description: Longitude of the user.
- name: q
in: query
required: false
schema:
type: string
description: Free text. Spanish or English, synonyms resolved.
- name: cat
in: query
required: false
schema:
type: string
description: Service category key.
- name: sort
in: query
required: false
schema:
type: string
enum:
- dist
- rate
- name: page
in: query
required: false
schema:
type: integer
minimum: 1
responses:
'200':
description: Businesses found.
content:
application/json:
schema:
type: object
tags:
- Xsite
/xsite/packages/Mcp/Controllers/pst_mcp.php:
post:
operationId: mcp
summary: MCP endpoint. JSON-RPC 2.0, stateless streamable-http
description: 'Methods: tools/list, tools/call, ping. The initialize handshake is accepted but not required. GET returns 405 on purpose: there is no SSE stream here.'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
jsonrpc:
type: string
const: '2.0'
id:
type:
- string
- integer
- 'null'
method:
type: string
enum:
- tools/list
- tools/call
- ping
- initialize
params:
type: object
required:
- jsonrpc
- method
responses:
'200':
description: JSON-RPC response.
content:
application/json:
schema:
type: object
'405':
description: 'GET is not supported: no SSE stream.'
tags:
- Xsite