Skip to main content
ODAI includes eight integrations for local services, entertainment, weather, and shopping. All authenticate via server-side API keys — no user account linking is required.
Authentication: Yelp Fusion API key (server-side, no user action required)Yelp lets you find restaurants, coffee shops, businesses, and services near a location, and retrieve detailed customer reviews for any listed business. Business hours use a day index where 0 = Monday, 1 = Tuesday, and so on.Capabilities:
  • Search for businesses by keyword and location
  • Sort by rating or best match
  • Retrieve up to 50 results per search
  • Fetch up to 3 Yelp-sorted customer reviews per business
  • Returns name, rating, price tier, address, and hours
Key functions (connectors/yelp.py):
def search_businesses_at_yelp(
    location: str,
    search_term: str,
    sort_by_rating: Optional[bool],
    limit: Optional[int],
) -> dict
Searches the Yelp Fusion API. location accepts city/state, ZIP code, or address. sort_by_rating=True orders by highest rating; False or None uses Yelp’s best-match algorithm. Default limit is 10, maximum is 50.
def get_business_reviews_at_yelp(business_id: str) -> dict
Retrieves up to 3 reviews for a specific business using the Yelp business ID returned from a search.Example prompts:
  • Find the best pizza places near me
  • Show me reviews for Flour Bakery in Cambridge, MA
  • Any kid-friendly restaurants in downtown Boston?
  • Best coffee shops open late in Harvard Square
Authentication: TripAdvisor Content API key (server-side, no user action required)TripAdvisor surfaces hotels, restaurants, and attractions worldwide. You can search by keyword with optional category filtering and location coordinates, retrieve detailed information about a specific location, and fetch customer reviews.Capabilities:
  • Search restaurants, hotels, and attractions by keyword
  • Filter by category: restaurants, hotels, or attractions
  • Narrow results by GPS coordinates with a 10 km radius
  • Retrieve full location details (address, hours, contact info, ratings)
  • Fetch customer reviews for any listed location
Key functions (connectors/tripadvisor.py):
def search_tripadvisor(
    wrapper,
    query: str,
    category: Optional[TripAdvisorCategory] = None,
    latitude: Optional[float] = None,
    longitude: Optional[float] = None,
) -> dict
Searches TripAdvisor’s Content API. When latitude and longitude are provided, results are limited to a 10 km radius. category accepts TripAdvisorCategory.RESTAURANTS, .HOTELS, or .ATTRACTIONS.
def get_tripadvisor_location_details(wrapper, location_id: str) -> dict
Returns detailed information for a location using the TripAdvisor location_id from search results.
def get_tripadvisor_location_reviews(wrapper, location_id: str) -> dict
Returns customer reviews for a specific location.Example prompts:
  • Search for top-rated hotels in Miami Beach
  • Are there any must-see attractions near Niagara Falls?
  • List Italian restaurants with outdoor seating in New York City
  • Show me reviews for the Boston Museum of Fine Arts
Authentication: Ticketmaster Discovery API key (server-side, no user action required)Ticketmaster covers concerts, sports, comedy, theater, and all live events. You can search events by location and keyword, look up artists and performers, find venues, and get full event details including pricing and seating.Capabilities:
  • Search events by city, state, country, and keyword
  • Retrieve full event details: name, dates, venue, and price ranges
  • Search for artists, bands, and sports teams (attractions)
  • Get an artist’s full tour schedule
  • Find venues by location and retrieve venue details (parking, accessibility, box office)
  • List all upcoming events at a specific venue
Key functions (connectors/ticketmaster.py):
def get_ticketmaster_events_near_location(
    wrapper,
    query: str,
    city: str,
    stateCode: str,
    countryCode: str,
) -> dict
Searches events by location. query accepts an artist name, event name, or genre (pass empty string for all events). stateCode is a 2-letter state/province code; countryCode is a 2-letter ISO country code.
def get_ticketmaster_event_details(wrapper, eventId: str) -> dict
Returns complete event info including pricing tiers, seating chart, and venue details.
def get_ticketmaster_attractions_by_query(wrapper, query: str) -> dict
Searches for artists, bands, sports teams, or comedians and returns their attraction IDs and genres.
def get_ticketmaster_events_by_attraction_id(wrapper, attractionId: str) -> dict
Returns the full tour schedule for an artist or team using their Ticketmaster attraction ID.
def find_ticketmaster_venues_near_location(
    wrapper,
    query: str,
    stateCode: str,
    countryCode: str,
) -> dict
Searches for venues by name or type in a given location.
def get_ticketmaster_venue_details(wrapper, venueId: str) -> dict
Returns venue details including address, box office hours, parking, and ADA accessibility.
def get_ticketmaster_events_by_venue_id(wrapper, venueId: str) -> dict
Returns all upcoming events at a specific venue in chronological order.Example prompts:
  • Find concerts in Boston for the next month
  • What are the next 3 Goo Goo Dolls concerts
  • What events are coming up at TD Garden?
  • Are there any comedy shows this weekend nearby?
Authentication: MovieGlu API key and authorization header (server-side, no user action required)MovieGlu provides movie showtimes and theater information. All requests are location-aware — you supply coordinates and MovieGlu returns results within range. The agent can find what’s playing, search for specific films or theaters, and retrieve showtimes.Capabilities:
  • List all films currently showing near a location
  • Search for films by title or keyword
  • Find nearby theaters sorted by distance
  • Search theaters by name or feature (e.g., IMAX)
  • Retrieve showtimes for a specific film at a specific theater on a given date
  • Retrieve all showtimes for a film across all nearby theaters
Key functions (connectors/movieglu.py):
def get_films_showing_near_location(latitude: float, longitude: float) -> dict
Returns up to 20 films currently showing in theaters near the given coordinates.
def search_films_near_location(latitude: float, longitude: float, query: str) -> dict
Searches for films matching query near the location. Returns up to 20 results.
def get_nearby_theaters_near_location(latitude: float, longitude: float) -> dict
Returns up to 20 theaters near the coordinates, sorted by distance.
def search_theaters_near_location(latitude: float, longitude: float, query: str) -> dict
Searches theaters by name or feature (e.g., "IMAX") near the location.
def get_theater_showtimes_near_location(
    latitude: float,
    longitude: float,
    theater_id: int,
    film_id: int,
    date: str,
) -> dict
Retrieves showtimes for a specific film at a specific theater. date must be in YYYY-MM-DD format.
def get_film_showtimes_near_location(
    latitude: float,
    longitude: float,
    film_id: str,
    date: str,
) -> dict
Retrieves showtimes for a film across all nearby theaters on the given date.Example prompts:
  • What movies are playing tonight near me?
  • Show me showtimes for the new Jurassic Park movie
  • Find theaters with IMAX in Boston
Authentication: AccuWeather API key (server-side, no user action required)AccuWeather provides current conditions, a 10-day daily forecast, and a 72-hour hourly forecast. All requests use latitude and longitude coordinates. The AccuWeather integration runs as async functions.Capabilities:
  • Current conditions: temperature, humidity, wind, precipitation, UV index
  • 10-day daily forecast with precipitation chances and sunrise/sunset times
  • 72-hour hourly forecast for time-specific weather questions
Key functions (connectors/accuweather.py):
async def get_current_weather_by_latitude_longitude(
    wrapper,
    latitude: float,
    longitude: float,
) -> dict
Returns current weather conditions for the given coordinates using the AccuWeather Python library.
async def get_daily_forecast_weather_by_latitude_longitude(
    wrapper,
    latitude: float,
    longitude: float,
) -> dict
Returns a 10-day daily forecast in imperial units.
async def get_hourly_forecast_weather_by_latitude_longitude(
    wrapper,
    latitude: float,
    longitude: float,
) -> dict
Returns a 72-hour hourly forecast. Use this when asking about weather at a specific time within the next 3 days.Example prompts:
  • What’s the weather in Cambridge, MA this weekend?
  • Will it rain in New York City tomorrow?
  • Show me the 7-day forecast for Chicago
  • How humid is it in Los Angeles right now?
Authentication: WeatherAPI key (server-side, no user action required)WeatherAPI is an alternative weather provider offering current conditions and 1–14 day forecasts with hourly breakdowns. Unlike AccuWeather, it accepts flexible location inputs beyond coordinates.Capabilities:
  • Current weather: temperature (°C/°F), humidity, wind speed and direction, precipitation, UV index
  • Forecasts from 1 to 14 days with daily and hourly breakdowns
  • Sunrise and sunset times
  • Precipitation probability per hour
Location formats accepted:
  • City name (e.g., "Boston, MA")
  • ZIP or postal code (e.g., "02139")
  • Latitude/longitude (e.g., "42.36,-71.06")
  • Airport IATA code (e.g., "BOS")
  • IP-based auto-detection ("auto:ip")
Key functions (connectors/weatherapi.py):
def get_current_weather_by_location(wrapper, location: str) -> dict
Returns the current weather for the specified location.
def get_forecast_weather_by_location(wrapper, location: str, days: int = 5) -> dict
Returns a forecast for 1–14 days (default 5). Includes daily and hourly breakdowns with precipitation chances.Example prompts:
  • What’s the weather in Cambridge, MA this weekend?
  • Will it rain in New York City tomorrow?
  • Show me the 7-day forecast for Chicago
Authentication: Canopy API key (server-side, no user action required)The Amazon integration searches Amazon products and retrieves detailed product information, including reviews, via the Canopy GraphQL API. It returns the top 2 search results per query.
This agent responds only to requests that explicitly mention Amazon. For cross-retailer product comparisons, use Google Shopping.
Capabilities:
  • Search Amazon by product name, category, or brand
  • Retrieve price, ratings, Prime status, and brand per result
  • Get full product details including top reviews and verified purchase status
  • Returns ASIN for direct Amazon product linking
Key functions (connectors/amazon.py):
def search_amazon(wrapper, query: str) -> dict
Searches Amazon via the Canopy GraphQL API. Returns up to 2 results with asin, url, title, price, rating, isPrime, brand, and image URLs.
def get_product_details(wrapper, asin: str) -> dict
Fetches full product details for a given ASIN, including pricing, total ratings, top reviews (with helpful votes and verified purchase flag), and all image URLs.Example prompts:
  • Search Amazon for noise-canceling headphones
  • Show me Amazon reviews for ASIN B08N5WRWNW
Authentication: EasyPost API key (server-side, no user action required)EasyPost tracks packages across all major carriers (USPS, UPS, FedEx, DHL, and more) using a single unified API. Tracked packages are stored per user so you can retrieve status for all your shipments without re-entering tracking numbers.Capabilities:
  • Track any package by carrier tracking number
  • Supports USPS, UPS, FedEx, DHL, and other major carriers
  • Retrieve full tracking history and current status
  • List all previously tracked packages for your account
  • EasyPost tracker IDs are persisted to avoid duplicate API calls
Key functions (connectors/easypost_agent.py):
def get_tracking_info_with_easypost(wrapper, tracking_number: str) -> dict
Fetches real-time tracking status and location history for the given tracking number. If the package has been tracked before, it retrieves the existing EasyPost tracker; otherwise it creates a new one and saves it to the user’s account.
def get_all_packages_with_easypost(wrapper) -> dict
Returns current tracking info for all packages previously tracked by the user.Example prompts:
  • Track my UPS package with tracking number 1Z12345
  • Show all my packages
  • Is my FedEx delivery still on schedule?

Build docs developers (and LLMs) love