Tavily API Limitation: Cannot Extract JavaScript-Loaded Images
Issue Description
The Tavily Extract API has a significant limitation when extracting images from websites that load content dynamically via JavaScript. This affects our ability to retrieve complete image data from many modern websites.
Key Findings
Example Case: Team Member Images
When attempting to extract team member images from websites:
- Limited Image Extraction: Tavily only extracted 5 images from a page containing dozens of team members
- Blob URLs Instead of Real URLs: Most images show as blob URLs (e.g.,
blob:http://localhost/e6014c5497464ee7ccc5302b229e27a9) - Partial Success: Only the first 4-5 images (typically in static HTML) have real HTTPS URLs
Technical Details
- 228+ images on the page use blob URLs - these are browser-generated temporary references
- Blob URLs only exist in the client's browser memory and cannot be accessed externally
- The website uses JavaScript to dynamically load images (likely for performance/security reasons)
- Tavily Extract doesn't execute JavaScript - it only reads static HTML
Why This Matters
This limitation means we cannot reliably extract images from:
- Team/staff pages
- Product galleries
- Dynamic content sections
- Any website using lazy loading or JavaScript-based image rendering
Current Impact
When using the web_extract_tool with include_images=True, the model correctly implements the feature but cannot provide actual image URLs for JavaScript-loaded content. This results in incomplete data extraction despite correct tool usage.
Potential Solutions
To properly extract all images, we would need one of the following:
- Headless Browser Integration: Use Playwright/Puppeteer to execute JavaScript before extraction
- API Discovery: Find and use the website's image API endpoints directly
- Pattern Recognition: Check if images follow predictable URL patterns that can be reconstructed
Reference
See the relevant JSON response data demonstrating this issue (team member images showing as blob URLs while only static images have real URLs).
Recommendation
Consider implementing a JavaScript-capable extraction option or documenting this limitation clearly in the API documentation to set proper expectations for users.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗