Search tours and activities within a geographic bounding box via Amadeus, pay $0.05 per request.
What it does
This endpoint searches for tours, experiences, and activities within a geographic square defined by north/south/east/west latitude and longitude boundaries. It is part of StableTravel, a pay-per-request travel API suite that wraps Amadeus GDS data (flights, hotels, activities, transfers) and FlightAware AeroAPI (flight tracking, airport info, history). No API keys or subscriptions are required — payment via USDC on Base, Solana, or Tempo (x402/MPP protocol) serves as authentication.
The `/api/activities/by-square` endpoint accepts four required query parameters (`north`, `south`, `east`, `west`) defining the bounding box, plus an optional `max` parameter (default 50) to limit results. It returns an array of activity objects in JSON. The cost is $0.054 per call (listed as ~$0.05 in the docs). Data is sourced from Amadeus's Tours & Activities API.
This endpoint is one of three activity-related endpoints on StableTravel. Use `/api/activities/search` for radius-based searches around a lat/lng point, `/api/activities/by-square` for bounding-box searches (useful for map viewports), and `/api/activities/details` to retrieve full details for a specific activity by ID. The typical workflow is: search by area → get activity IDs → fetch details.
Capabilities
Use cases
- —Finding tours and activities visible in a map viewport for a travel planning agent
- —Building a destination guide by querying activities in a city's bounding box
- —Comparing available experiences across neighborhoods within a city
- —Populating an itinerary planner with bookable activities in a geographic area
Fit
Best for
- —AI travel agents that plan itineraries autonomously
- —Map-based UIs that need activities within a visible viewport
- —Agents that need pay-per-call access to Amadeus activity data without API key management
Not for
- —Booking activities directly (this endpoint only searches; no booking endpoint exists for activities)
- —High-volume bulk scraping of activity catalogs (pay-per-request model adds up)
Quick start
npx agentcash fetch "https://stabletravel.dev/api/activities/by-square?north=48.9&south=48.8&east=2.4&west=2.3&max=5"Example
Response
{
"data": [
{
"id": "123456",
"name": "Eiffel Tower Skip-the-Line Tour",
"type": "activity",
"price": {
"amount": "45.00",
"currencyCode": "EUR"
},
"geoCode": {
"latitude": 48.8584,
"longitude": 2.2945
},
"shortDescription": "Skip the long lines..."
}
],
"meta": {
"count": 1
}
}Endpoint
Quality
Full OpenAPI 3.1 schema with parameter definitions, clear pricing ($0.054/call), live 402 MPP challenge captured, comprehensive guidance docs. No example response in the schema (items are empty `{}`), so the example response is inferred from Amadeus conventions.
Warnings
- —Response schema items are untyped (empty `{}`) — actual response structure is inferred from Amadeus conventions, not documented in the OpenAPI spec.
- —No example response is provided in the OpenAPI spec for this endpoint.
Citations
- —Endpoint costs $0.054 per request (listed as ~$0.05)https://stabletravel.dev/openapi.json
- —Required parameters are north, south, east, west; optional max defaults to 50https://stabletravel.dev/openapi.json
- —Payment via USDC on Base, Solana, or Tempo; no API keys neededhttps://stabletravel.dev
- —Data sourced from Amadeus Tours & Activities APIhttps://stabletravel.dev/docs
- —MPP challenge is live with method=tempo, intent=chargehttps://stabletravel.dev/api/activities/by-square
- —Typical workflow: search by area → get activity IDs → fetch detailshttps://stabletravel.dev/openapi.json