Envoyer un retour pour une tâche v2
curl --request POST \
--url https://api.firecrawl.dev/v2/feedback \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"jobId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"integration": "<string>",
"missingContent": [
{
"topic": "<string>",
"description": "<string>"
}
],
"origin": "api",
"querySuggestions": "<string>",
"valuableSources": [
{
"url": "<string>",
"reason": "<string>"
}
],
"issues": [
"<string>"
],
"metadata": {},
"note": "<string>",
"pageNumbers": [
2
],
"tags": [
"<string>"
],
"url": "<string>"
}
'import requests
url = "https://api.firecrawl.dev/v2/feedback"
payload = {
"jobId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"integration": "<string>",
"missingContent": [
{
"topic": "<string>",
"description": "<string>"
}
],
"origin": "api",
"querySuggestions": "<string>",
"valuableSources": [
{
"url": "<string>",
"reason": "<string>"
}
],
"issues": ["<string>"],
"metadata": {},
"note": "<string>",
"pageNumbers": [2],
"tags": ["<string>"],
"url": "<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({
jobId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
integration: '<string>',
missingContent: [{topic: '<string>', description: '<string>'}],
origin: 'api',
querySuggestions: '<string>',
valuableSources: [{url: '<string>', reason: '<string>'}],
issues: ['<string>'],
metadata: {},
note: '<string>',
pageNumbers: [2],
tags: ['<string>'],
url: '<string>'
})
};
fetch('https://api.firecrawl.dev/v2/feedback', 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/feedback",
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([
'jobId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'integration' => '<string>',
'missingContent' => [
[
'topic' => '<string>',
'description' => '<string>'
]
],
'origin' => 'api',
'querySuggestions' => '<string>',
'valuableSources' => [
[
'url' => '<string>',
'reason' => '<string>'
]
],
'issues' => [
'<string>'
],
'metadata' => [
],
'note' => '<string>',
'pageNumbers' => [
2
],
'tags' => [
'<string>'
],
'url' => '<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/feedback"
payload := strings.NewReader("{\n \"jobId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"integration\": \"<string>\",\n \"missingContent\": [\n {\n \"topic\": \"<string>\",\n \"description\": \"<string>\"\n }\n ],\n \"origin\": \"api\",\n \"querySuggestions\": \"<string>\",\n \"valuableSources\": [\n {\n \"url\": \"<string>\",\n \"reason\": \"<string>\"\n }\n ],\n \"issues\": [\n \"<string>\"\n ],\n \"metadata\": {},\n \"note\": \"<string>\",\n \"pageNumbers\": [\n 2\n ],\n \"tags\": [\n \"<string>\"\n ],\n \"url\": \"<string>\"\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/feedback")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"jobId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"integration\": \"<string>\",\n \"missingContent\": [\n {\n \"topic\": \"<string>\",\n \"description\": \"<string>\"\n }\n ],\n \"origin\": \"api\",\n \"querySuggestions\": \"<string>\",\n \"valuableSources\": [\n {\n \"url\": \"<string>\",\n \"reason\": \"<string>\"\n }\n ],\n \"issues\": [\n \"<string>\"\n ],\n \"metadata\": {},\n \"note\": \"<string>\",\n \"pageNumbers\": [\n 2\n ],\n \"tags\": [\n \"<string>\"\n ],\n \"url\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.firecrawl.dev/v2/feedback")
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 \"jobId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"integration\": \"<string>\",\n \"missingContent\": [\n {\n \"topic\": \"<string>\",\n \"description\": \"<string>\"\n }\n ],\n \"origin\": \"api\",\n \"querySuggestions\": \"<string>\",\n \"valuableSources\": [\n {\n \"url\": \"<string>\",\n \"reason\": \"<string>\"\n }\n ],\n \"issues\": [\n \"<string>\"\n ],\n \"metadata\": {},\n \"note\": \"<string>\",\n \"pageNumbers\": [\n 2\n ],\n \"tags\": [\n \"<string>\"\n ],\n \"url\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"creditsRefunded": 123,
"feedbackId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"success": true,
"alreadySubmitted": true,
"creditsRefundedToday": 123,
"dailyCapReached": true,
"dailyRefundCap": 123,
"warning": "<string>"
}{
"error": "<string>",
"success": false,
"details": [
{}
],
"feedbackErrorCode": "<string>"
}{
"error": "<string>",
"success": false,
"details": [
{}
],
"feedbackErrorCode": "<string>"
}{
"error": "<string>",
"success": false,
"details": [
{}
],
"feedbackErrorCode": "<string>"
}{
"error": "<string>",
"success": false,
"details": [
{}
],
"feedbackErrorCode": "<string>"
}{
"error": "<string>",
"success": false,
"details": [
{}
],
"feedbackErrorCode": "<string>"
}Points de terminaison de retours
Retour sur le point de terminaison
Envoyez un retour sur une tâche terminée d’un point de terminaison v2.
POST
/
feedback
Envoyer un retour pour une tâche v2
curl --request POST \
--url https://api.firecrawl.dev/v2/feedback \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"jobId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"integration": "<string>",
"missingContent": [
{
"topic": "<string>",
"description": "<string>"
}
],
"origin": "api",
"querySuggestions": "<string>",
"valuableSources": [
{
"url": "<string>",
"reason": "<string>"
}
],
"issues": [
"<string>"
],
"metadata": {},
"note": "<string>",
"pageNumbers": [
2
],
"tags": [
"<string>"
],
"url": "<string>"
}
'import requests
url = "https://api.firecrawl.dev/v2/feedback"
payload = {
"jobId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"integration": "<string>",
"missingContent": [
{
"topic": "<string>",
"description": "<string>"
}
],
"origin": "api",
"querySuggestions": "<string>",
"valuableSources": [
{
"url": "<string>",
"reason": "<string>"
}
],
"issues": ["<string>"],
"metadata": {},
"note": "<string>",
"pageNumbers": [2],
"tags": ["<string>"],
"url": "<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({
jobId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
integration: '<string>',
missingContent: [{topic: '<string>', description: '<string>'}],
origin: 'api',
querySuggestions: '<string>',
valuableSources: [{url: '<string>', reason: '<string>'}],
issues: ['<string>'],
metadata: {},
note: '<string>',
pageNumbers: [2],
tags: ['<string>'],
url: '<string>'
})
};
fetch('https://api.firecrawl.dev/v2/feedback', 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/feedback",
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([
'jobId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'integration' => '<string>',
'missingContent' => [
[
'topic' => '<string>',
'description' => '<string>'
]
],
'origin' => 'api',
'querySuggestions' => '<string>',
'valuableSources' => [
[
'url' => '<string>',
'reason' => '<string>'
]
],
'issues' => [
'<string>'
],
'metadata' => [
],
'note' => '<string>',
'pageNumbers' => [
2
],
'tags' => [
'<string>'
],
'url' => '<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/feedback"
payload := strings.NewReader("{\n \"jobId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"integration\": \"<string>\",\n \"missingContent\": [\n {\n \"topic\": \"<string>\",\n \"description\": \"<string>\"\n }\n ],\n \"origin\": \"api\",\n \"querySuggestions\": \"<string>\",\n \"valuableSources\": [\n {\n \"url\": \"<string>\",\n \"reason\": \"<string>\"\n }\n ],\n \"issues\": [\n \"<string>\"\n ],\n \"metadata\": {},\n \"note\": \"<string>\",\n \"pageNumbers\": [\n 2\n ],\n \"tags\": [\n \"<string>\"\n ],\n \"url\": \"<string>\"\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/feedback")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"jobId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"integration\": \"<string>\",\n \"missingContent\": [\n {\n \"topic\": \"<string>\",\n \"description\": \"<string>\"\n }\n ],\n \"origin\": \"api\",\n \"querySuggestions\": \"<string>\",\n \"valuableSources\": [\n {\n \"url\": \"<string>\",\n \"reason\": \"<string>\"\n }\n ],\n \"issues\": [\n \"<string>\"\n ],\n \"metadata\": {},\n \"note\": \"<string>\",\n \"pageNumbers\": [\n 2\n ],\n \"tags\": [\n \"<string>\"\n ],\n \"url\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.firecrawl.dev/v2/feedback")
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 \"jobId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"integration\": \"<string>\",\n \"missingContent\": [\n {\n \"topic\": \"<string>\",\n \"description\": \"<string>\"\n }\n ],\n \"origin\": \"api\",\n \"querySuggestions\": \"<string>\",\n \"valuableSources\": [\n {\n \"url\": \"<string>\",\n \"reason\": \"<string>\"\n }\n ],\n \"issues\": [\n \"<string>\"\n ],\n \"metadata\": {},\n \"note\": \"<string>\",\n \"pageNumbers\": [\n 2\n ],\n \"tags\": [\n \"<string>\"\n ],\n \"url\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"creditsRefunded": 123,
"feedbackId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"success": true,
"alreadySubmitted": true,
"creditsRefundedToday": 123,
"dailyCapReached": true,
"dailyRefundCap": 123,
"warning": "<string>"
}{
"error": "<string>",
"success": false,
"details": [
{}
],
"feedbackErrorCode": "<string>"
}{
"error": "<string>",
"success": false,
"details": [
{}
],
"feedbackErrorCode": "<string>"
}{
"error": "<string>",
"success": false,
"details": [
{}
],
"feedbackErrorCode": "<string>"
}{
"error": "<string>",
"success": false,
"details": [
{}
],
"feedbackErrorCode": "<string>"
}{
"error": "<string>",
"success": false,
"details": [
{}
],
"feedbackErrorCode": "<string>"
}Utilisez le retour sur le point de terminaison pour indiquer à Firecrawl si le résultat d’une tâche terminée était utile, partiel ou médiocre. Cela concerne la qualité de la sortie au niveau du point de terminaison pour des tâches comme
scrape, parse, map et search.
Le schéma de retour générique peut aussi inclure des champs propres à la recherche, mais Retour sur la recherche est le point d’entrée spécifique à la recherche à privilégier, car il est associé à un ID de tâche de recherche et met en avant les sources utiles, le contenu manquant, les suggestions de requête et la politique de remboursement.
Exemple de requête
curl -X POST "https://api.firecrawl.dev/v2/feedback" \
-H "Authorization: Bearer $FIRECRAWL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"endpoint": "scrape",
"jobId": "550e8400-e29b-41d4-a716-446655440000",
"rating": "partial",
"issues": ["missing_markdown"],
"note": "The pricing table was missing from the markdown output.",
"url": "https://example.com/pricing"
}'
Autorisations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Corps
application/json
Envoyer un retour pour une tâche v2. Incluez au moins un signal significatif, comme issues, note, valuableSources, missingContent, querySuggestions, url ou pageNumbers.
Options disponibles:
good, partial, bad Options disponibles:
search, scrape, parse, map Maximum array length:
20Show child attributes
Show child attributes
Maximum string length:
2000Maximum array length:
50Show child attributes
Show child attributes
Maximum array length:
20Maximum string length:
80Pattern:
^[a-z0-9][a-z0-9_-]*$Petit objet de métadonnées spécifique au point de terminaison. Il doit faire 8KB maximum ; n’incluez pas les résultats complets du point de terminaison.
Maximum string length:
4000Maximum array length:
100Plage requise:
x >= 1Maximum array length:
20Maximum string length:
80Pattern:
^[a-z0-9][a-z0-9_-]*$⌘I

