Passer au contenu principal
POST
/
agent
Démarrer une tâche d’agent pour l’extraction de données pilotée par un agent
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."
}
Êtes-vous un agent IA qui a besoin d’une clé API Firecrawl ? Consultez firecrawl.dev/agent-onboarding/SKILL.md pour obtenir des instructions d’intégration automatisée.

Autorisations

Authorization
string
header
requis

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

Corps

application/json
prompt
string
requis

Le prompt décrivant les données à extraire

Maximum string length: 10000
maxCredits
number

<[ { "key": "0", "translation": "Nombre maximal de crédits à utiliser pour cette tâche d’agent. La valeur par défaut est de 2500 si elle n’est pas spécifiée. Les valeurs supérieures à 2 500 sont toujours facturées comme des requêtes payantes." } ]</>

model
enum<string>
défaut:spark-1-mini

Le modèle à utiliser pour les tâches d’agent. spark-1-mini (par défaut) coûte 60 % de moins, tandis que spark-1-pro offre une meilleure précision pour les tâches complexes.

Options disponibles:
spark-1-mini,
spark-1-pro
schema
object

Schéma JSON facultatif pour structurer les données extraites

strictConstrainToURLs
boolean

Si la valeur est true, l’agent ne visitera que les URL fournies dans le tableau urls

threatProtection
Threat Protection Override · object

Dérogation Protection contre les menaces au niveau de la requête. Les champs que vous fournissez remplacent les champs correspondants de la politique de votre organisation pour cette requête uniquement ; les champs omis conservent leurs valeurs définies au niveau de l'organisation. La Protection contre les menaces doit être activée pour votre équipe (fonctionnalité Enterprise) ; sinon, la requête est rejetée avec un code 403. Si votre organisation a désactivé les dérogations par requête, toute requête qui inclut cet objet est rejetée avec un code 403. Si la Protection contre les menaces est appliquée à votre équipe, mode ne peut pas être défini sur off.

urls
string<uri>[]

Liste facultative d’URL servant à limiter l’agent

Réponse

La tâche de l’agent a démarré avec succès

id
string<uuid>
success
boolean