Saltar al contenido principal
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>",
  "maxCredits": 123,
  "model": "spark-1-mini",
  "schema": {},
  "strictConstrainToURLs": true,
  "threatProtection": {
    "blacklist": [
      "<string>"
    ],
    "blockedTlds": [
      "<string>"
    ],
    "riskScoreThreshold": 75,
    "whitelist": [
      "<string>"
    ]
  },
  "urls": [
    "<string>"
  ]
}
'
import requests

url = "https://api.firecrawl.dev/v2/agent"

payload = {
"prompt": "<string>",
"maxCredits": 123,
"model": "spark-1-mini",
"schema": {},
"strictConstrainToURLs": True,
"threatProtection": {
"blacklist": ["<string>"],
"blockedTlds": ["<string>"],
"riskScoreThreshold": 75,
"whitelist": ["<string>"]
},
"urls": ["<string>"]
}
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>',
maxCredits: 123,
model: 'spark-1-mini',
schema: {},
strictConstrainToURLs: true,
threatProtection: {
blacklist: ['<string>'],
blockedTlds: ['<string>'],
riskScoreThreshold: 75,
whitelist: ['<string>']
},
urls: ['<string>']
})
};

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>',
'maxCredits' => 123,
'model' => 'spark-1-mini',
'schema' => [

],
'strictConstrainToURLs' => true,
'threatProtection' => [
'blacklist' => [
'<string>'
],
'blockedTlds' => [
'<string>'
],
'riskScoreThreshold' => 75,
'whitelist' => [
'<string>'
]
],
'urls' => [
'<string>'
]
]),
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 \"maxCredits\": 123,\n \"model\": \"spark-1-mini\",\n \"schema\": {},\n \"strictConstrainToURLs\": true,\n \"threatProtection\": {\n \"blacklist\": [\n \"<string>\"\n ],\n \"blockedTlds\": [\n \"<string>\"\n ],\n \"riskScoreThreshold\": 75,\n \"whitelist\": [\n \"<string>\"\n ]\n },\n \"urls\": [\n \"<string>\"\n ]\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 \"maxCredits\": 123,\n \"model\": \"spark-1-mini\",\n \"schema\": {},\n \"strictConstrainToURLs\": true,\n \"threatProtection\": {\n \"blacklist\": [\n \"<string>\"\n ],\n \"blockedTlds\": [\n \"<string>\"\n ],\n \"riskScoreThreshold\": 75,\n \"whitelist\": [\n \"<string>\"\n ]\n },\n \"urls\": [\n \"<string>\"\n ]\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 \"maxCredits\": 123,\n \"model\": \"spark-1-mini\",\n \"schema\": {},\n \"strictConstrainToURLs\": true,\n \"threatProtection\": {\n \"blacklist\": [\n \"<string>\"\n ],\n \"blockedTlds\": [\n \"<string>\"\n ],\n \"riskScoreThreshold\": 75,\n \"whitelist\": [\n \"<string>\"\n ]\n },\n \"urls\": [\n \"<string>\"\n ]\n}"

response = http.request(request)
puts response.read_body
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "success": true
}
{
"error": "Payment required to access this resource."
}
{
"error": "Rate limit exceeded."
}
¿Eres un agente de IA que necesita una clave de API de Firecrawl? Consulta firecrawl.dev/agent-onboarding/SKILL.md para ver instrucciones de incorporación automatizada.

Autorizaciones

Authorization
string
header
requerido

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Cuerpo

application/json
prompt
string
requerido

El prompt que describe los datos que se van a extraer

Maximum string length: 10000
maxCredits
number

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.

model
enum<string>
predeterminado:spark-1-mini

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
schema
object

Esquema JSON opcional para estructurar los datos extraídos

strictConstrainToURLs
boolean

Si es true, el agente solo visitará las URL proporcionadas en el array urls

threatProtection
Threat Protection Override · object

Anulación por solicitud de Protección contra amenazas. Los campos que proporciones reemplazan los campos correspondientes de la política de tu organización solo para esta solicitud; los campos omitidos conservan sus valores a nivel de organización. Requiere que Protección contra amenazas esté habilitada para tu equipo (función enterprise); de lo contrario, la solicitud se rechaza con un 403. Si tu organización ha deshabilitado las anulaciones por solicitud, cualquier solicitud que incluya este objeto se rechaza con un 403. Si Protección contra amenazas se aplica de forma obligatoria a tu equipo, mode no puede establecerse en off.

urls
string<uri>[]

Lista opcional de URLs a las que se limitará el agente

Respuesta

La tarea del agente se inició correctamente

id
string<uuid>
success
boolean