How to scrape insurance coverage data from Capital One using the Minexa API
- Minexa.ai

- 8 hours ago
- 4 min read
Credit card benefit data buried inside accordion-based FAQ pages is some of the hardest structured content to extract reliably. Capital One's rental car insurance help page is a good example: each question expands into a body containing card eligibility lists, benefit administrator contacts, and coverage exclusions, all encoded inside Angular components with dynamic display states. This guide shows how to pull that content into a clean, repeatable data pipeline using the Minexa API.
What the Capital One page contains
The target page at capitalone.com/help-center/credit-cards/rental-car-insurance/ presents a series of FAQ accordion items. Each item holds a question, an expanded body with eligibility details, benefit administrator websites and phone numbers by card network (Mastercard, Visa, Discover), coverage notes, and vehicle exclusion lists. The page is Angular-rendered, meaning the content is injected dynamically and each accordion panel carries a display: block or display: none inline style depending on its expanded state.
Watch the full extraction walkthrough
The video below covers the complete workflow from opening the Minexa Chrome extension through training the scraper and generating the API request code.
Training the scraper in the browser extension
Open the Minexa Chrome extension on the Capital One rental car insurance page. The extension detects the page and prompts you to confirm you are on the right URL.
After confirmation, the extension checks for pagination. This page does not paginate in the traditional sense, but the extension still validates the page structure before proceeding. Click Continue to move forward.
Next, choose whether to scrape a single list or follow linked detail pages. For this FAQ page, selecting the single list option is sufficient since all content lives within the accordion items on one URL.
Select simple scraping mode, then highlight the accordion container. Minexa automatically identifies all data points within it and creates the scraper.
Once the scraper is created, all extracted columns are visible with next and previous navigation to review each data point.
Click API Request in the top right to view the pre-generated Python code and JSON request body. Copy the scraper ID shown there for use in your API calls.
Sample extracted data
Below are two representative rows from the extraction output, showing the fields most useful for downstream analysis:
[
{
"content": "Does my credit card cover rental car insurance?",
"website_info": "Venture X",
"vehicle_description": "Venture",
"service_description": "Check your credit card's",
"service_details": "Mastercard",
"trip_information": "If you have questions, contact the benefit administrator listed in your Cardholder Benefits Guide, as some terms, conditions and exclusions apply.",
"benefits_link": "Cardholder Benefits Guide",
"external_link_href": "https://priceless.com/capitalone",
"display_style": "display: block;"
},
{
"content": "Does rental car insurance through Capital One cards include international rentals?",
"service_description": "If you have questions, contact the benefit administrator listed in your Cardholder Benefits Guide, as some terms, conditions and exclusions apply. Not all cards are eligible for cardholder benefits.",
"trip_information": "Tip: Before going on your trip, make sure you have the letter of eligibility for your rental car insurance.",
"external_link_href": "http://www.eclaimsline.com",
"display_style": "display: block;"
}
]
The display_style field is particularly useful here: it tells you which accordion panels were expanded at scrape time, which matters if you want to verify that the full body content was captured for each FAQ item.
Calling the Minexa API
Once your scraper is trained, use the scraper ID in your API request. If you need to process multiple Capital One help pages or run this on a schedule, set up your own cron job and pass the URLs programmatically.
import requests
url = "https://api.minexa.ai/data/"
api_key = "your_api_key"
data = {
"batches": [{
"scraper_id": 6341,
"columns": ["top_40"],
"urls": [
"https://www.capitalone.com/help-center/credit-cards/rental-car-insurance/"
],
"scraping": {
"js_render": True,
"timeout": 30,
"js_code": [
{"wait_time": 2},
{"page_init": True},
{"wait_time": 4}
],
"proxy": "verified",
"retry": 3
}
}],
"threads": 3
}
headers = {"Content-Type": "application/json", "api-key": api_key}
response = requests.post(url, json=data, headers=headers)
print(response.json())
JavaScript rendering is required here because Capital One's help center is Angular-based. The page_init step ensures the accordion components are fully initialized before extraction runs. Without it, collapsed panels may return empty body content.
What you can build with this data
The extracted fields support several practical pipelines. Compliance and benefits teams can monitor which Capital One card products appear in eligibility lists over time, tracking additions or removals of cards like Venture X or SavorOne. Fintech researchers can parse the insurance_details array to extract benefit administrator contact details by card network, building a structured reference of claims contacts across Mastercard, Visa, and Discover. The display_style field can be used to flag any FAQ items that were not expanded at scrape time, triggering a retry with a custom JS click scenario to force expansion before extraction.
If you are building a broader financial product intelligence pipeline, this same scraper pattern applies to other Capital One help center pages that use the same Angular accordion component structure, meaning one training session covers the full help center section.
Ready to start extracting structured financial data from Capital One? Install the Minexa Chrome extension to train your scraper, then use the Minexa API to run it at whatever scale your pipeline requires.
For a related financial data extraction example, see how to scrape finance market data from FRED using the Minexa.ai extension.

Comments