Inicia una tarea de agente para la extracción de datos mediante agentes
curl --request POST \
--url https://api.firecrawl.dev/v2/agent \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"prompt": "<string>",
"urls": [
"<string>"
],
"schema": {},
"maxCredits": 123,
"strictConstrainToURLs": true,
"model": "spark-1-mini"
}
'import requests
url = "https://api.firecrawl.dev/v2/agent"
payload = {
"prompt": "<string>",
"urls": ["<string>"],
"schema": {},
"maxCredits": 123,
"strictConstrainToURLs": True,
"model": "spark-1-mini"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
prompt: '<string>',
urls: ['<string>'],
schema: {},
maxCredits: 123,
strictConstrainToURLs: true,
model: 'spark-1-mini'
})
};
fetch('https://api.firecrawl.dev/v2/agent', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.firecrawl.dev/v2/agent",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'prompt' => '<string>',
'urls' => [
'<string>'
],
'schema' => [
],
'maxCredits' => 123,
'strictConstrainToURLs' => true,
'model' => 'spark-1-mini'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.firecrawl.dev/v2/agent"
payload := strings.NewReader("{\n \"prompt\": \"<string>\",\n \"urls\": [\n \"<string>\"\n ],\n \"schema\": {},\n \"maxCredits\": 123,\n \"strictConstrainToURLs\": true,\n \"model\": \"spark-1-mini\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.firecrawl.dev/v2/agent")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"prompt\": \"<string>\",\n \"urls\": [\n \"<string>\"\n ],\n \"schema\": {},\n \"maxCredits\": 123,\n \"strictConstrainToURLs\": true,\n \"model\": \"spark-1-mini\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.firecrawl.dev/v2/agent")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"prompt\": \"<string>\",\n \"urls\": [\n \"<string>\"\n ],\n \"schema\": {},\n \"maxCredits\": 123,\n \"strictConstrainToURLs\": true,\n \"model\": \"spark-1-mini\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"error": "Payment required to access this resource."
}{
"error": "Rate limit exceeded."
}Endpoints de agente
Agente
POST
/
agent
Inicia una tarea de agente para la extracción de datos mediante agentes
curl --request POST \
--url https://api.firecrawl.dev/v2/agent \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"prompt": "<string>",
"urls": [
"<string>"
],
"schema": {},
"maxCredits": 123,
"strictConstrainToURLs": true,
"model": "spark-1-mini"
}
'import requests
url = "https://api.firecrawl.dev/v2/agent"
payload = {
"prompt": "<string>",
"urls": ["<string>"],
"schema": {},
"maxCredits": 123,
"strictConstrainToURLs": True,
"model": "spark-1-mini"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
prompt: '<string>',
urls: ['<string>'],
schema: {},
maxCredits: 123,
strictConstrainToURLs: true,
model: 'spark-1-mini'
})
};
fetch('https://api.firecrawl.dev/v2/agent', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.firecrawl.dev/v2/agent",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'prompt' => '<string>',
'urls' => [
'<string>'
],
'schema' => [
],
'maxCredits' => 123,
'strictConstrainToURLs' => true,
'model' => 'spark-1-mini'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.firecrawl.dev/v2/agent"
payload := strings.NewReader("{\n \"prompt\": \"<string>\",\n \"urls\": [\n \"<string>\"\n ],\n \"schema\": {},\n \"maxCredits\": 123,\n \"strictConstrainToURLs\": true,\n \"model\": \"spark-1-mini\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.firecrawl.dev/v2/agent")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"prompt\": \"<string>\",\n \"urls\": [\n \"<string>\"\n ],\n \"schema\": {},\n \"maxCredits\": 123,\n \"strictConstrainToURLs\": true,\n \"model\": \"spark-1-mini\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.firecrawl.dev/v2/agent")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"prompt\": \"<string>\",\n \"urls\": [\n \"<string>\"\n ],\n \"schema\": {},\n \"maxCredits\": 123,\n \"strictConstrainToURLs\": true,\n \"model\": \"spark-1-mini\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"error": "Payment required to access this resource."
}{
"error": "Rate limit exceeded."
}Autorizaciones
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Cuerpo
application/json
El prompt que describe los datos que se van a extraer
Maximum string length:
10000Lista opcional de URLs a las que se limitará el agente
Esquema JSON opcional para estructurar los datos extraídos
Créditos máximos que se pueden gastar en esta tarea del agente. El valor predeterminado es 2500 si no se especifica. Los valores superiores a 2.500 siempre se facturan como solicitudes de pago.
Si es true, el agente solo visitará las URL proporcionadas en el array urls
El modelo que utilizará el agente para la tarea. spark-1-mini (predeterminado) es un 60 % más barato; spark-1-pro ofrece mayor precisión para tareas complejas.
Opciones disponibles:
spark-1-mini, spark-1-pro 
