Search the web and get full page content from results in one call. See the Search feature docs for all options.
from firecrawl import Firecrawlfirecrawl = Firecrawl(api_key="fc-YOUR-API-KEY")results = firecrawl.search( query="firecrawl", limit=3,)print(results)
Response
SDKs will return the data object directly. cURL will return the complete payload.
JSON
{ "success": true, "data": { "web": [ { "url": "https://www.firecrawl.dev/", "title": "Firecrawl - The Web Data API for AI", "description": "The web crawling, scraping, and search API for AI. Built for scale. Firecrawl delivers the entire internet to AI agents and builders.", "position": 1 }, { "url": "https://github.com/firecrawl/firecrawl", "title": "mendableai/firecrawl: Turn entire websites into LLM-ready ... - GitHub", "description": "Firecrawl is an API service that takes a URL, crawls it, and converts it into clean markdown or structured data.", "position": 2 }, ... ], "images": [ { "title": "Quickstart | Firecrawl", "imageUrl": "https://mintlify.s3.us-west-1.amazonaws.com/firecrawl/logo/logo.png", "imageWidth": 5814, "imageHeight": 1200, "url": "https://docs.firecrawl.dev/", "position": 1 }, ... ], "news": [ { "title": "Y Combinator startup Firecrawl is ready to pay $1M to hire three AI agents as employees", "url": "https://techcrunch.com/2025/05/17/y-combinator-startup-firecrawl-is-ready-to-pay-1m-to-hire-three-ai-agents-as-employees/", "snippet": "It's now placed three new ads on YC's job board for “AI agents only” and has set aside a $1 million budget total to make it happen.", "date": "3 months ago", "position": 1 }, ... ] }}
Scrape a page and keep working with it in the same session. Click buttons, fill forms, extract dynamic content, or navigate deeper without re-fetching. Describe what you want in plain English, or write code for full control. See the Interact feature docs for all options.
from firecrawl import Firecrawlapp = Firecrawl(api_key="fc-YOUR-API-KEY")# 1. Scrape Amazon's homepageresult = app.scrape("https://www.amazon.com", formats=["markdown"])scrape_id = result.metadata.scrape_id# 2. Interact — search for a product and get its priceapp.interact(scrape_id, prompt="Search for iPhone 16 Pro Max")response = app.interact(scrape_id, prompt="Click on the first result and tell me the price")print(response.output)# 3. Stop the sessionapp.stop_interaction(scrape_id)
Response
Response
{ "success": true, "liveViewUrl": "https://liveview.firecrawl.dev/...", "interactiveLiveViewUrl": "https://liveview.firecrawl.dev/...", "output": "The iPhone 16 Pro Max (256GB) is priced at $1,199.00.", "exitCode": 0, "killed": false}