Thanks to visit codestin.com
Credit goes to docs.firecrawl.dev

Skip to main content
POST
/
agent
Start an agent task for agentic data extraction
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",
  "threatProtection": {
    "riskScoreThreshold": 75,
    "blacklist": [
      "<string>"
    ],
    "whitelist": [
      "<string>"
    ],
    "blockedTlds": [
      "<string>"
    ]
  }
}
'
import requests

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

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

],
'maxCredits' => 123,
'strictConstrainToURLs' => true,
'model' => 'spark-1-mini',
'threatProtection' => [
'riskScoreThreshold' => 75,
'blacklist' => [
'<string>'
],
'whitelist' => [
'<string>'
],
'blockedTlds' => [
'<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 \"urls\": [\n \"<string>\"\n ],\n \"schema\": {},\n \"maxCredits\": 123,\n \"strictConstrainToURLs\": true,\n \"model\": \"spark-1-mini\",\n \"threatProtection\": {\n \"riskScoreThreshold\": 75,\n \"blacklist\": [\n \"<string>\"\n ],\n \"whitelist\": [\n \"<string>\"\n ],\n \"blockedTlds\": [\n \"<string>\"\n ]\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 \"urls\": [\n \"<string>\"\n ],\n \"schema\": {},\n \"maxCredits\": 123,\n \"strictConstrainToURLs\": true,\n \"model\": \"spark-1-mini\",\n \"threatProtection\": {\n \"riskScoreThreshold\": 75,\n \"blacklist\": [\n \"<string>\"\n ],\n \"whitelist\": [\n \"<string>\"\n ],\n \"blockedTlds\": [\n \"<string>\"\n ]\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 \"urls\": [\n \"<string>\"\n ],\n \"schema\": {},\n \"maxCredits\": 123,\n \"strictConstrainToURLs\": true,\n \"model\": \"spark-1-mini\",\n \"threatProtection\": {\n \"riskScoreThreshold\": 75,\n \"blacklist\": [\n \"<string>\"\n ],\n \"whitelist\": [\n \"<string>\"\n ],\n \"blockedTlds\": [\n \"<string>\"\n ]\n }\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."
}
Are you an AI agent that needs a Firecrawl API key? See firecrawl.dev/agent-onboarding/SKILL.md for automated onboarding instructions.

Authorizations

Authorization
string
header
required

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

Body

application/json
prompt
string
required

The prompt describing what data to extract

Maximum string length: 10000
urls
string<uri>[]

Optional list of URLs to constrain the agent to

schema
object

Optional JSON schema to structure the extracted data

maxCredits
number

Maximum credits to spend on this agent task. Defaults to 2500 if not set. Values above 2,500 are always billed as paid requests.

strictConstrainToURLs
boolean

If true, agent will only visit URLs provided in the urls array

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

The model to use for the agent task. spark-1-mini (default) is 60% cheaper, spark-1-pro offers higher accuracy for complex tasks

Available options:
spark-1-mini,
spark-1-pro
threatProtection
Threat Protection Override ยท object

Per-request Threat Protection override. Fields you provide replace the corresponding fields of your organization's policy for this request only; omitted fields keep their organization-level values. Requires Threat Protection to be enabled for your team (enterprise feature) โ€” otherwise the request is rejected with a 403. If your organization has disabled request overrides, any request that includes this object is rejected with a 403. If Threat Protection is enforced for your team, mode may not be set to off.

Response

Agent task started successfully

success
boolean
id
string<uuid>