Documentation Index Fetch the complete documentation index at: https://firecrawl-mog-search-exclude-include-domains.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Gradle (Kotlin DSL)
Maven
dependencies {
implementation ( "com.firecrawl:firecrawl-java:1.2.0" )
}
< dependency >
< groupId > com.firecrawl </ groupId >
< artifactId > firecrawl-java </ artifactId >
< version > 1.2.0 </ version >
</ dependency >
Adicione sua chave de API ao application.properties:
firecrawl.api-key =${FIRECRAWL_API_KEY}
Ou defina como uma variável de ambiente:
export FIRECRAWL_API_KEY = fc-YOUR-API-KEY
Crie um bean de configuração
Crie FirecrawlConfig.java:
import com.firecrawl.client.FirecrawlClient;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@ Configuration
public class FirecrawlConfig {
@ Bean
public FirecrawlClient firecrawlClient (
@ Value ( "${firecrawl.api-key}" ) String apiKey ) {
return FirecrawlClient . builder ()
. apiKey (apiKey)
. build ();
}
}
Crie FirecrawlController.java:
import com.firecrawl.client.FirecrawlClient;
import com.firecrawl.models.Document;
import com.firecrawl.models.SearchData;
import com.firecrawl.models.SearchOptions;
import com.firecrawl.models.ScrapeOptions;
import com.firecrawl.models.BrowserExecuteResponse;
import org.springframework.web.bind.annotation. * ;
import java.util.List;
import java.util.Map;
@ RestController
@ RequestMapping ( "/api" )
public class FirecrawlController {
private final FirecrawlClient firecrawl ;
public FirecrawlController ( FirecrawlClient firecrawl ) {
this . firecrawl = firecrawl;
}
@ PostMapping ( "/search" )
public SearchData search (@ RequestBody Map < String , Object > body ) {
return firecrawl . search (
(String) body . get ( "query" ),
SearchOptions . builder ()
. limit (( int ) body . getOrDefault ( "limit" , 5 ))
. build ()
);
}
@ PostMapping ( "/scrape" )
public Map < String , Object > scrape (@ RequestBody Map < String , String > body ) {
Document doc = firecrawl . scrape ( body . get ( "url" ));
return Map . of (
"markdown" , doc . getMarkdown (),
"metadata" , doc . getMetadata ()
);
}
@ PostMapping ( "/interact" )
public Map < String , Object > interact (@ RequestBody Map < String , String > body ) {
Document doc = firecrawl . scrape ( body . get ( "url" ),
ScrapeOptions . builder (). formats ( List . of ((Object) "markdown" )). build ());
String scrapeId = (String) doc . getMetadata (). get ( "scrapeId" );
BrowserExecuteResponse response = firecrawl . interact (scrapeId,
body . getOrDefault ( "code" , "const title = await page.title(); console.log(title);" ));
firecrawl . stopInteractiveBrowser (scrapeId);
return Map . of ( "result" , response . getStdout ());
}
}
# Fazer uma busca na web
curl -X POST http://localhost:8080/api/search \
-H "Content-Type: application/json" \
-d '{"query": "firecrawl web scraping"}'
# Fazer scraping de uma página
curl -X POST http://localhost:8080/api/scrape \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com"}'
# Interagir com uma página
curl -X POST http://localhost:8080/api/interact \
-H "Content-Type: application/json" \
-d '{"url": "https://www.amazon.com", "code": "const title = await page.title(); console.log(title);"}'
Documentação de busca Faça uma busca na web e obtenha o conteúdo completo da página
Documentação de scraping Todas as opções de scraping, incluindo formatos, ações e proxies
Documentação de interação Clique, preencha formulários e extraia conteúdo dinâmico
Referência do SDK Java Referência completa do SDK com rastreamento, map, extração em lote e muito mais