Zum Hauptinhalt springen

Developers

EscortFox offers read-only access to its directory for AI assistants, developer tools and partner widgets that point people to escortfox.com. There are four ways in, all backed by the same data and the same terms: a REST API, a remote MCP server, an A2A agent, and WebMCP tools on the website itself. None of them needs an API key or an account.

What you get, and what you don't

Every listing comes back as a summary: name, city and district, age, a price-from, a short teaser, one small preview image and the listing's URL on escortfox.com. Contact details, full descriptions, galleries and reviews are only on the website: follow the url.

Public API

Base URL https://api.escortfox.com. JSON over HTTPS, no authentication, CORS open to any origin (GET, no credentials). The full contract is the OpenAPI 3 description at https://api.escortfox.com/public/v1/openapi.yaml.

  • GET /public/v1/countries: Countries with active listings.
  • GET /public/v1/cities?country=DE: Cities of a country with active listings (country may also be a region such as US-IL).
  • GET /public/v1/cities/{country}/{city}/districts: Districts of a city.
  • GET /public/v1/services: The service vocabulary used by the service filter.
  • GET /public/v1/listings: Search one city: type (escort, venue, agency), country, city, and optionally district, service, verified, lang, page (0–4).
  • GET /public/v1/listings/{id}: One listing summary.
  • GET /public/v1/openapi.yaml: The OpenAPI 3 description of all of the above.

Example: escorts in London, first page.

curl "https://api.escortfox.com/public/v1/listings?type=escort&country=GB&city=london"

Countries use the ISO 3166-1 alpha-2 code (GB, DE); cities, districts and services use the slug returned by the list endpoints. lang picks the language of the teaser and of the returned URL.

Limits

  • 30 requests per minute and 500 per day per client address.
  • GET /public/v1/listings/{id}: additionally 10 per minute and 100 per day.
  • Searches are city-scoped, 20 results per page, and only the first 5 pages are available. Narrow the search (district, service) instead of paging further.
  • Over a limit you get 429 Too Many Requests with a Retry-After header in seconds; when the service as a whole is busy, 503 with Retry-After. Please wait that long rather than retrying at once.
  • Responses carry Cache-Control; please honour it.

Terms of use

  • Attribution is required. Any display of data from the API must link to escortfox.com, using each item's url.
  • Bulk copying, mirroring, scraping or reselling the data is not allowed, nor is using it to build or seed another directory.
  • The limits above are part of the terms. Working around them (rotating addresses, parallel clients) is a breach.

MCP server

A remote Model Context Protocol server at https://escortfox.com/mcp (Streamable HTTP, stateless, no sign-in). It exposes six read-only tools over the API above:

  • search_listings: Search escort, venue or agency listings in a city, with district, service and verified filters.
  • get_listing: One listing summary by id.
  • list_countries: Countries with active listings.
  • list_cities: Cities of a country.
  • list_districts: Districts of a city.
  • list_services: The service vocabulary.

Add it to any MCP client that supports remote servers by its URL. In a JSON configuration that takes remote servers:

{
  "mcpServers": {
    "escortfox": { "url": "https://escortfox.com/mcp" }
  }
}

Discovery: the server card is at /.well-known/mcp.json, and the server is listed in the official MCP Registry as com.escortfox/escortfox. Each user of the MCP server has their own share of the API limits, and tool results include the listing URL on escortfox.com.

WebMCP

On browsers that support WebMCP, every public page of escortfox.com registers the same six tools for an AI agent running in the visitor's browser (document.modelContext, or navigator.modelContext through the MCP-B extension). Calls go from the browser straight to the API, under the visitor's own limits.

A2A agent

For agents that speak the Agent2Agent (A2A) protocol, the same tools are available as an A2A agent at https://escortfox.com/a2a (JSON-RPC, protocol versions 1.0 and 0.3, no authentication). Its Agent Card is at /.well-known/agent-card.json. Send a plain-text request such as "escorts in London" or "agencies in Germany", or call a skill exactly with a data part:

{ "skill": "search_listings", "arguments": { "type": "escort", "country": "GB", "city": "london" } }

Replies come back at once as a single message with a text part and a data part; the agent keeps no tasks and does not stream.

llms.txt

A short, curated summary of the site for language models, with its URL scheme and main pages, is at /llms.txt.

Contact

Questions or a problem with the API or the MCP server: e-mail [email protected]. To report a security issue, see the vulnerability disclosure policy.