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.
Firecrawl s’utilise avec Go via l’API REST. Utilisez net/http pour effectuer des requêtes directement.
package main
import (
" bytes "
" encoding/json "
" fmt "
" io "
" net/http "
" os "
)
func main () {
apiKey := os . Getenv ( "FIRECRAWL_API_KEY" )
body , _ := json . Marshal ( map [ string ] interface {}{
"query" : "firecrawl web scraping" ,
"limit" : 5 ,
})
req , _ := http . NewRequest ( "POST" , "https://api.firecrawl.dev/v2/search" , bytes . NewReader ( body ))
req . Header . Set ( "Authorization" , "Bearer " + apiKey )
req . Header . Set ( "Content-Type" , "application/json" )
resp , err := http . DefaultClient . Do ( req )
if err != nil {
fmt . Fprintf ( os . Stderr , "échec de la requête : %v \n " , err )
os . Exit ( 1 )
}
defer resp . Body . Close ()
result , _ := io . ReadAll ( resp . Body )
fmt . Println ( string ( result ))
}
{
"success" : true ,
"data" : {
"web" : [
{
"url" : "https://docs.firecrawl.dev" ,
"title" : "Firecrawl Documentation" ,
"markdown" : "# Firecrawl \n\n Firecrawl is a web scraping API..."
}
]
}
}
body , _ := json . Marshal ( map [ string ] string {
"url" : "https://example.com" ,
})
req , _ := http . NewRequest ( "POST" , "https://api.firecrawl.dev/v2/scrape" , bytes . NewReader ( body ))
req . Header . Set ( "Authorization" , "Bearer " + apiKey )
req . Header . Set ( "Content-Type" , "application/json" )
resp , err := http . DefaultClient . Do ( req )
if err != nil {
fmt . Fprintf ( os . Stderr , "request failed: %v \n " , err )
os . Exit ( 1 )
}
defer resp . Body . Close ()
result , _ := io . ReadAll ( resp . Body )
fmt . Println ( string ( result ))
{
"success" : true ,
"data" : {
"markdown" : "# Example Domain \n\n This domain is for use in illustrative examples..." ,
"metadata" : {
"title" : "Example Domain" ,
"sourceURL" : "https://example.com"
}
}
}
Démarrez une session de navigateur, interactez avec la page à l’aide d’instructions en langage naturel, puis fermez la session.
Étape 1 — Scrapez pour démarrer une session
body , _ := json . Marshal ( map [ string ] interface {}{
"url" : "https://www.amazon.com" ,
"formats" : [] string { "markdown" },
})
req , _ := http . NewRequest ( "POST" , "https://api.firecrawl.dev/v2/scrape" , bytes . NewReader ( body ))
req . Header . Set ( "Authorization" , "Bearer " + apiKey )
req . Header . Set ( "Content-Type" , "application/json" )
resp , err := http . DefaultClient . Do ( req )
if err != nil {
fmt . Fprintf ( os . Stderr , "request failed: %v \n " , err )
os . Exit ( 1 )
}
defer resp . Body . Close ()
var scrapeResult map [ string ] interface {}
json . NewDecoder ( resp . Body ). Decode ( & scrapeResult )
data := scrapeResult [ "data" ].( map [ string ] interface {})
metadata := data [ "metadata" ].( map [ string ] interface {})
scrapeId := metadata [ "scrapeId" ].( string )
fmt . Println ( "scrapeId:" , scrapeId )
Étape 2 — Envoyer les interactions
// Rechercher un produit
interactBody , _ := json . Marshal ( map [ string ] string {
"prompt" : "Search for iPhone 16 Pro Max" ,
})
interactURL := fmt . Sprintf ( "https://api.firecrawl.dev/v2/scrape/ %s /interact" , scrapeId )
req , _ = http . NewRequest ( "POST" , interactURL , bytes . NewReader ( interactBody ))
req . Header . Set ( "Authorization" , "Bearer " + apiKey )
req . Header . Set ( "Content-Type" , "application/json" )
resp , err = http . DefaultClient . Do ( req )
if err != nil {
fmt . Fprintf ( os . Stderr , "interact failed: %v \n " , err )
os . Exit ( 1 )
}
defer resp . Body . Close ()
result , _ := io . ReadAll ( resp . Body )
fmt . Println ( string ( result ))
// Cliquer sur le premier résultat
interactBody , _ = json . Marshal ( map [ string ] string {
"prompt" : "Click on the first result and tell me the price" ,
})
req , _ = http . NewRequest ( "POST" , interactURL , bytes . NewReader ( interactBody ))
req . Header . Set ( "Authorization" , "Bearer " + apiKey )
req . Header . Set ( "Content-Type" , "application/json" )
resp , err = http . DefaultClient . Do ( req )
if err != nil {
fmt . Fprintf ( os . Stderr , "interact failed: %v \n " , err )
os . Exit ( 1 )
}
defer resp . Body . Close ()
result , _ = io . ReadAll ( resp . Body )
fmt . Println ( string ( result ))
Étape 3 — Mettre fin à la session
req , _ = http . NewRequest ( "DELETE" , interactURL , nil )
req . Header . Set ( "Authorization" , "Bearer " + apiKey )
resp , err = http . DefaultClient . Do ( req )
if err != nil {
fmt . Fprintf ( os . Stderr , "delete failed: %v \n " , err )
os . Exit ( 1 )
}
defer resp . Body . Close ()
fmt . Println ( "Session stopped" )
Fonction utilitaire réutilisable
Pour des usages répétés, encapsulez l’API dans une petite fonction utilitaire :
type FirecrawlClient struct {
APIKey string
BaseURL string
Client * http . Client
}
func NewFirecrawlClient ( apiKey string ) * FirecrawlClient {
return & FirecrawlClient {
APIKey : apiKey ,
BaseURL : "https://api.firecrawl.dev/v2" ,
Client : & http . Client {},
}
}
func ( fc * FirecrawlClient ) post ( endpoint string , payload interface {}) ([] byte , error ) {
body , err := json . Marshal ( payload )
if err != nil {
return nil , err
}
req , err := http . NewRequest ( "POST" , fc . BaseURL + endpoint , bytes . NewReader ( body ))
if err != nil {
return nil , err
}
req . Header . Set ( "Authorization" , "Bearer " + fc . APIKey )
req . Header . Set ( "Content-Type" , "application/json" )
resp , err := fc . Client . Do ( req )
if err != nil {
return nil , err
}
defer resp . Body . Close ()
return io . ReadAll ( resp . Body )
}
func ( fc * FirecrawlClient ) Scrape ( url string ) ([] byte , error ) {
return fc . post ( "/scrape" , map [ string ] string { "url" : url })
}
func ( fc * FirecrawlClient ) Search ( query string , limit int ) ([] byte , error ) {
return fc . post ( "/search" , map [ string ] interface {}{ "query" : query , "limit" : limit })
}
Documentation Search Effectuez une recherche sur le web et obtenez le contenu complet de la page
Documentation Scrape Toutes les options de scrape, y compris les formats, les actions et les proxies
Documentation Interact Cliquez, remplissez des formulaires et extrayez du contenu dynamique
Référence API Documentation complète de l’API REST