Site catalog
Chase (secure.chase.com) for AI Agents
secure.chase.com: 21 mapped actions across 8 screens
Chase is one of the largest US banks, and secure.chase.com is its signed-in customer portal. Through Rindler, your agent works both sides of it: the banking surface (accounts, transactions, statements, tax documents, scheduled payments, rewards) and the Chase Travel booking portal that lives inside the authed dashboard, where every flight fare is priced in both cash and points.
The mapping covers 21 actions across 8 screens. An agent can sign in (with the SMS identity check handled as part of the login recipe), pull an accounts overview, download transaction activity as CSV, then hop into Chase Travel to search flights, read Points Boost offers, assemble a round trip, and read the trip cart. No raw HTML, no selectors: each step is a named action with typed params.
What is mapped
On the banking side, your agent opens the accounts overview with view_accounts_overview, drills into a specific card with view_account_detail (by account_id), and reads recent activity with view_transactions. For a machine-readable export, download_transactions walks the See all transactions flow, captures the CSV server-side, and returns a download link in data.download.url. Statements, tax documents, scheduled payments, and profile info each have their own action, and rewards come in two flavors: view_rewards_balance reads the points shown in the Chase Travel header, while view_rewards opens the separate Ultimate Rewards site.
On the travel side, open_travel_tab lands on a product tab (flights, hotels, cars, activities, cruises, tours). For flights, search_flights fills origin, destination, and round-trip dates; filter_results exposes the Recommended / Cheapest / Fastest sort tabs; and view_results reads the itinerary grid where every fare family is priced in both cash and points. view_points_boost reads the Chase-specific points-multiplier discounts, the highest-signal datum for points optimization. From there select_outbound_flight, select_return_flight, and view_trip_cart assemble and review a full round trip.
Quirks worth knowing
These come straight from the mapped action behavior, not guesswork.
**Flight selection is cheapest-only.** select_outbound_flight and select_return_flight always take the cheapest fare of the cheapest listed flight. There is no way to pick a specific flight, airline, or fare class, and your agent should never tell the user a particular carrier was chosen. The recipes handle the messy parts for you: they answer the 'Upgrade for more flexibility' modal some carriers pop over the results, and they confirm the fare-upsell interstitial after Add to trip. Without that confirm the leg never lands and the cart stays empty.
**Search inputs are picky.** search_flights matches the autocomplete on typed text, so pass a city or airport name (San Francisco), not a bare code. Dates must fall within the roughly two months the calendar shows by default; further-out dates are not yet reachable.
**rerun_recent_search is a replay, not a search.** It re-opens whatever route and dates were last searched, which may differ from the current request. Your agent must state the saved route and dates before presenting those results, and must never use it as a silent fallback when search_flights fails.
**CSV vs PDF.** For any export-my-activity request, use download_transactions (CSV). view_statements returns PDF account statements, not transaction data.
Signing in
This is a signed-in portal: every action described on this page except login itself requires auth. The login action takes username, password, and otp, and starts from the secure dashboard login URL. On a fresh browser Chase presents a per-login identity-verification challenge; the recipe auto-selects text (SMS) delivery, advances to the code screen, and pauses for the user's texted code. So the flow is: your agent dispatches login, the session waits, the user reads the code off their phone, and the agent supplies it as otp. From that point the whole banking and travel surface is open for the session.
Reading results
Each stage of a flow lands on a mapped screen, and your agent reads structured output from it rather than scraping. Flight searches resolve on flight_results, where each itinerary row carries airline, times, duration, stops, and every fare family in both cash and points, including Points Boost strikethroughs. The assembled round trip lives on trip_cart, which lists both legs and the total in cash and points; note the round-trip total there is best-effort today, since Chase renders it inside a web-component shadow DOM, so treat cart navigation as the verified part. Account flows resolve on account_detail and transactions, the CSV export runs through download_activity, statements and tax documents surface on documents, and the travel portal entry point is travel_landing.
Example session
start_session(url: "https://secure.chase.com")
dispatch_action(action: "login",
params: { username: "...", password: "...", otp: "..." })
dispatch_action(action: "search_flights",
params: { origin: "San Francisco", destination: "New York",
depart_date: "...", return_date: "..." })
dispatch_action(action: "select_outbound_flight")
dispatch_action(action: "select_return_flight")
dispatch_action(action: "view_trip_cart")
close_session()
Every mapped action
Generated from the live site config. 19 of 21 actions require a signed-in session.
| Action | What it does |
|---|---|
| capture_login | |
| download_transactionsauth | Download recent account transactions as a CSV file (the machine-readable transaction export). Use this for ANY request to download or export transactions / account activity as CSV. Works from the accounts overview: it clicks See all transactions, then Download account activity, then Download, captures the file server-side, and returns a download link in data.download.url for the user to save. Do NOT use view_statements for this -- those are PDF account statements, not CSV transaction data. |
| filter_resultsauth | Open the filter/sort facet bar on the Chase Travel flight results (All filters; sort tabs Recommended / Cheapest / Fastest). |
| login | Sign in to Chase with username and password. On a fresh browser Chase presents a per-login identity-verification challenge: the recipe auto-selects TEXT (SMS) delivery, advances to the code screen, and pauses (await_user_otp) for the user's texted code. |
| open_travel_tabauth | Open the Chase Travel booking portal on a product tab. Valid products: flights, hotels (the Stays tab), cars, activities, cruises, tours. |
| rerun_recent_searchauth | REPLAY the most recent saved FLIGHTS search on Chase Travel and land on its dual cash+points results grid. This does NOT run a new search: it re-opens whatever route and dates were LAST searched, which may DIFFER from the current request. Do NOT use it as a silent fallback when search_flights fails or times out. Whenever you present results from it, FIRST tell the user the results are from their most recent saved search, state the route and dates of that saved search, and confirm they match what was asked; if they do not match, use search_flights instead. Fails honestly when the account has no recent flights search. |
| search_flightsauth | Search flights on the Chase Travel booking portal (inside the authed dashboard). Fills origin, destination, and the round-trip depart/return dates, then runs the search; results price every fare in BOTH cash and points (incl. Points Boost discounts). Pass a city or airport NAME (e.g. San Francisco), not just a bare code: the autocomplete option is matched on the typed text. Dates must be within the ~2 months the calendar shows by default (near-term travel); dates further out are not yet reachable (month-navigation unmapped). |
| select_outbound_flightauth | On the Chase Travel outbound flight results, select the CHEAPEST listed outbound flight (always the cheapest fare of the cheapest flight -- there is NO way to pick a specific flight, airline, or fare class; never tell the user a specific carrier was chosen). Run AFTER search_flights or rerun_recent_search has returned outbound results. Applies the results quick-sort (Cheapest) when present, then clicks the FIRST fare CELL (orxe-desktop-carousel-item; fare classes render cheapest-first inside each tile -- clicking the tile CONTAINER is ambiguous on multi-fare carousels and live-selected the pricier Main Classic over Basic, 2026-07-12) inside the results list (orxe-flight-itinerary-card scope) -- never the Points Boost promo shelf (orxe-flight-shelf-fare-option-tile, #2321). Selecting a fare can pop an 'Upgrade for more flexibility' comparison MODAL (orxe-desktop-create-overlay; Delta, live-observed 2026-07-13) that blocks the whole page until answered -- the recipe clicks its Continue (keeps the already-selected cheapest fare; Close as fallback; optional because most carriers skip it). Then the sticky Choose flight button advances to the inbound (return) results. |
| select_return_flightauth | On the Chase Travel return (inbound) flight results, select the CHEAPEST listed return flight and add it to the trip, assembling the full round trip (always the cheapest fare of the cheapest flight -- there is NO way to pick a specific flight, airline, or fare class; never tell the user a specific carrier was chosen). Run AFTER select_outbound_flight. Applies the results quick-sort (Cheapest) when present, clicks the FIRST fare CELL (orxe-desktop-carousel-item; fare classes render cheapest-first inside each tile -- clicking the tile CONTAINER is ambiguous on multi-fare carousels and live-selected the pricier Main Classic over Basic, 2026-07-12) inside the results list (orxe-flight-itinerary-card scope, never the Points Boost promo shelf, #2321), answers the 'Upgrade for more flexibility' comparison MODAL when a carrier pops one over the results (orxe-desktop-create-overlay; Continue keeps the selected cheapest fare, Close as fallback, optional), clicks Add to trip, then CONFIRMS the fare-upsell interstitial (results/flights/upsell) by clicking its Next button -- without that confirm the leg is NEVER added and the trip cart stays EMPTY (the 2026-07-12 empty-cart incident: three full select cycles all produced 'Your cart is empty'). The Next click is optional:true because some fares (e.g. JetBlue Blue Basic, live-observed 2026-07-04) skip the interstitial and go straight to the assembled cart. After the confirm the header trip-cart button carries the assembled trip; use view_trip_cart to read the full round-trip price. |
| view_account_detailauth | Open the detail screen for a specific account/card by id. |
| view_accounts_overviewauth | Open the accounts overview (all Chase accounts and balances). |
| view_documentsauth | View tax documents and other account documents. |
| view_points_boostauth | Read the Points Boost offers on the Chase Travel flight results: the Chase-specific points-multiplier shown as a strikethrough (e.g. 48,614 pts, was 58,061 pts). The highest-signal Chase award datum for points-optimization. |
| view_profileauth | Open the profile and personal information overview. |
| view_resultsauth | Read the flight results grid on the Chase Travel portal. Each itinerary row carries airline, times, duration, stops, and every fare family priced in BOTH cash and points (e.g. Blue $581 or 48,614 pts), including Points Boost discounts (a was N pts strikethrough). |
| view_rewardsauth | Open Ultimate Rewards points for the card (separate Chase host). |
| view_rewards_balanceauth | Read the points balance for the selected card shown in the Chase Travel portal header (the card selector shows the card and its points, e.g. with 1,688 points). Distinct from view_rewards, which opens the separate Ultimate Rewards site. |
| view_scheduled_paymentsauth | Open scheduled payments / payments activity. |
| view_statementsauth | View account statements and documents. |
| view_transactionsauth | View recent transactions for a specific account by id. |
| view_trip_cartauth | Open the Chase Travel trip cart to surface the assembled round trip and its full price in cash and points. Run AFTER select_return_flight. Navigates to the /checkout/trip-cart review that lists both legs and the total. Round-trip total extraction is best-effort: the cart renders the total via the orxe web-component shadow DOM, so navigation to the cart is the verified part and the total field is pending a richer extraction pass. |
Screens and structured records
account_detail(navigation screen)documents(navigation screen)download_activity(navigation screen)flight_resultsreturns structured _note, fields, container, block_start_contains, block_start_selector recordslandingreturns structured fields, container recordstransactionsreturns structured fields, container recordstravel_landing(navigation screen)trip_cartreturns structured _note, fields records