# DishPulse: guide for AI agents

DishPulse is a pay-per-call API for finding dishes at real restaurants: search a dish by name in a city or near a point, list nearby restaurants, and read a restaurant's menu, with the price returned only when it was verified against the restaurant's own menu. Verified coverage is listed live at /v1/coverage and grows as records pass the checks.

## Quick start
```
GET /v1/dishes?q=butter+chicken&city=toronto
Host: dishpulse.waltsoft.net
PAYMENT-SIGNATURE: <base64 x402 payment>
```
Call the route with no payment first: the 402 tells you the exact amount and where to pay. /v1/dishes $0.01, /v1/near $0.01, /v1/restaurant $0.01, /v1/city-pack $0.25.

## Coverage
DishPulse serves 2,667 restaurants and 42,785 menu items in 348 cities in 82 countries, 21,251 of them with a price verified against the restaurant's own menu, data as of 2026-11-05. Largest cities: toronto (187), burlington (100), mississauga (81), hamilton (76), brampton (71), oakville (68), markham (44), vaughan (43), richmond-hill (34), caledon (30), milton (30), whitby (29). Live numbers: GET https://dishpulse.waltsoft.net/v1/coverage.

## AWS Marketplace, MCP and A2A
- AWS Marketplace: the listing is "Waltsoft DishPulse". A subscription is billed on the buyer's AWS bill at $0.01 per unit, one unit per successful call; /v1/city-pack uses 25 units ($0.25). The key (mp_...) goes in the X-API-Key header or as a Bearer token.
- MCP (Amazon Bedrock AgentCore Gateway): https://waltsoft-marketplace-gateway-xncyjgs1uh.gateway.bedrock-agentcore.us-east-1.amazonaws.com/mcp. Tools: dishpulse___searchDishes(q, city or lat and lon, api_key), dishpulse___findNearbyRestaurants(lat, lon, api_key), dishpulse___getRestaurant(id, api_key). The city pack is REST only.
- A2A (Agent2Agent): agent card at https://dishpulse.waltsoft.net/.well-known/agent-card.json. The Agent Communication Protocol (ACP) merged into A2A in 2025.

## Data sources and what each field means
- Restaurants: name, street address, coordinates and cuisines come from each restaurant's own website and published menus. Coordinates are geocoded from the street address.
- Dishes: names come from the restaurant's published menu; every dish carries its source_url.
- Prices: a price is returned only when it was verified against the restaurant's own menu (price_status starts with "verified"). Otherwise price is null and price_status says why. last_verified_at tells you when the check was made.
- Every successful response carries a source object (name, url, licence, attribution, data_as_of).

## Limits
- Coverage is the set of restaurants we could verify, not every restaurant in a city. GET /v1/coverage lists the cities and counts.
- Not included: ratings, reviews, photos, descriptions, delivery-app prices, dietary claims.
- A request that finds nothing answers 404 and is never charged. Bad parameters answer 400 before payment.

## Attribution
Data: Waltsoft DishPulse (https://dishpulse.waltsoft.net), compiled by Waltsoft Inc. from restaurants' own published information.

## Networks
- Base: eip155:8453 (USDC 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913)
- Solana: solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp (USDC EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v)

## More
- https://dishpulse.waltsoft.net/llms.txt
- https://dishpulse.waltsoft.net/openapi.json
- https://dishpulse.waltsoft.net/tryit (static sample, no payment)
