2885 lines · 97.7 KB · JSON
RawDownload
{  "openapi": "3.0.0",  "info": {    "title": "Firecrawl API",    "version": "1.0.0",    "description": "API for interacting with Firecrawl services to perform web scraping and crawling tasks.",    "contact": {      "name": "Firecrawl Support",      "url": "https://firecrawl.dev/support",      "email": "support@firecrawl.dev"    }  },  "servers": [    {      "url": "https://api.firecrawl.dev/v1"    }  ],  "paths": {    "/scrape": {      "post": {        "summary": "Scrape a single URL and optionally extract information using an LLM",        "operationId": "scrapeAndExtractFromUrl",        "tags": ["Scraping"],        "security": [          {            "bearerAuth": []          }        ],        "requestBody": {          "required": true,          "content": {            "application/json": {              "schema": {                "allOf": [                  {                    "type": "object",                    "properties": {                      "url": {                        "type": "string",                        "format": "uri",                        "description": "The URL to scrape"                      }                    },                    "required": ["url"]                  },                  {                    "$ref": "#/components/schemas/ScrapeOptions"                  }                ]              }            }          }        },        "responses": {          "200": {            "description": "Successful response",            "content": {              "application/json": {                "schema": {                  "$ref": "#/components/schemas/ScrapeResponse"                }              }            }          },          "402": {            "description": "Payment required",            "content": {              "application/json": {                "schema": {                  "type": "object",                  "properties": {                    "error": {                      "type": "string",                      "example": "Payment required to access this resource."                    }                  }                }              }            }          },          "429": {            "description": "Too many requests",            "content": {              "application/json": {                "schema": {                  "type": "object",                  "properties": {                    "error": {                      "type": "string",                      "example": "Request rate limit exceeded. Please wait and try again later."                    }                  }                }              }            }          },          "500": {            "description": "Server error",            "content": {              "application/json": {                "schema": {                  "type": "object",                  "properties": {                    "error": {                      "type": "string",                      "example": "An unexpected error occurred on the server."                    }                  }                }              }            }          }        }      }    },    "/batch/scrape": {      "post": {        "summary": "Scrape multiple URLs and optionally extract information using an LLM",        "operationId": "scrapeAndExtractFromUrls",        "tags": ["Scraping"],        "security": [          {            "bearerAuth": []          }        ],        "requestBody": {          "required": true,          "content": {            "application/json": {              "schema": {                "allOf": [                  {                    "type": "object",                    "properties": {                      "urls": {                        "type": "array",                        "items": {                          "type": "string",                          "format": "uri",                          "description": "The URL to scrape"                        }                      },                      "webhook": {                        "type": "object",                        "description": "A webhook specification object.",                        "properties": {                          "url": {                            "type": "string",                            "description": "The URL to send the webhook to. This will trigger for batch scrape started (batch_scrape.started), every page scraped (batch_scrape.page) and when the batch scrape is completed (batch_scrape.completed or batch_scrape.failed). The response will be the same as the `/scrape` endpoint."                          },                          "headers": {                            "type": "object",                            "description": "Headers to send to the webhook URL.",                            "additionalProperties": {                              "type": "string"                            }                          },                          "metadata": {                            "type": "object",                            "description": "Custom metadata that will be included in all webhook payloads for this crawl",                            "additionalProperties": true                          },                          "events": {                            "type": "array",                            "description": "Type of events that should be sent to the webhook URL. (default: all)",                            "items": {                              "type": "string",                              "enum": ["completed", "page", "failed", "started"]                            }                          }                        },                        "required": ["url"]                      },                      "ignoreInvalidURLs": {                        "type": "boolean",                        "default": false,                        "description": "If invalid URLs are specified in the urls array, they will be ignored. Instead of them failing the entire request, a batch scrape using the remaining valid URLs will be created, and the invalid URLs will be returned in the invalidURLs field of the response."                      }                    },                    "required": ["urls"]                  },                  {                    "$ref": "#/components/schemas/ScrapeOptions"                  }                ]              }            }          }        },        "responses": {          "200": {            "description": "Successful response",            "content": {              "application/json": {                "schema": {                  "$ref": "#/components/schemas/BatchScrapeResponseObj"                }              }            }          },          "402": {            "description": "Payment required",            "content": {              "application/json": {                "schema": {                  "type": "object",                  "properties": {                    "error": {                      "type": "string",                      "example": "Payment required to access this resource."                    }                  }                }              }            }          },          "429": {            "description": "Too many requests",            "content": {              "application/json": {                "schema": {                  "type": "object",                  "properties": {                    "error": {                      "type": "string",                      "example": "Request rate limit exceeded. Please wait and try again later."                    }                  }                }              }            }          },          "500": {            "description": "Server error",            "content": {              "application/json": {                "schema": {                  "type": "object",                  "properties": {                    "error": {                      "type": "string",                      "example": "An unexpected error occurred on the server."                    }                  }                }              }            }          }        }      }    },    "/batch/scrape/{id}": {      "parameters": [        {          "name": "id",          "in": "path",          "description": "The ID of the batch scrape job",          "required": true,          "schema": {            "type": "string",            "format": "uuid"          }        }      ],      "get": {        "summary": "Get the status of a batch scrape job",        "operationId": "getBatchScrapeStatus",        "tags": ["Scraping"],        "security": [          {            "bearerAuth": []          }        ],        "responses": {          "200": {            "description": "Successful response",            "content": {              "application/json": {                "schema": {                  "$ref": "#/components/schemas/BatchScrapeStatusResponseObj"                }              }            }          },          "402": {            "description": "Payment required",            "content": {              "application/json": {                "schema": {                  "type": "object",                  "properties": {                    "error": {                      "type": "string",                      "example": "Payment required to access this resource."                    }                  }                }              }            }          },          "429": {            "description": "Too many requests",            "content": {              "application/json": {                "schema": {                  "type": "object",                  "properties": {                    "error": {                      "type": "string",                      "example": "Request rate limit exceeded. Please wait and try again later."                    }                  }                }              }            }          },          "500": {            "description": "Server error",            "content": {              "application/json": {                "schema": {                  "type": "object",                  "properties": {                    "error": {                      "type": "string",                      "example": "An unexpected error occurred on the server."                    }                  }                }              }            }          }        }      },      "delete": {        "summary": "Cancel a batch scrape job",        "operationId": "cancelBatchScrape",        "tags": ["Scraping"],        "security": [          {            "bearerAuth": []          }        ],        "responses": {          "200": {            "description": "Successful cancellation",            "content": {              "application/json": {                "schema": {                  "type": "object",                  "properties": {                    "success": {                      "type": "boolean",                      "example": true                    },                    "message": {                      "type": "string",                      "example": "Batch scrape job successfully cancelled."                    }                  }                }              }            }          },          "404": {            "description": "Batch scrape job not found",            "content": {              "application/json": {                "schema": {                  "type": "object",                  "properties": {                    "error": {                      "type": "string",                      "example": "Batch scrape job not found."                    }                  }                }              }            }          },          "500": {            "description": "Server error",            "content": {              "application/json": {                "schema": {                  "type": "object",                  "properties": {                    "error": {                      "type": "string",                      "example": "An unexpected error occurred on the server."                    }                  }                }              }            }          }        }      }    },    "/batch/scrape/{id}/errors": {      "parameters": [        {          "name": "id",          "in": "path",          "description": "The ID of the batch scrape job",          "required": true,          "schema": {            "type": "string",            "format": "uuid"          }        }      ],      "get": {        "summary": "Get the errors of a batch scrape job",        "operationId": "getBatchScrapeErrors",        "tags": ["Scraping"],        "security": [          {            "bearerAuth": []          }        ],        "responses": {          "200": {            "description": "Successful response",            "content": {              "application/json": {                "schema": {                  "$ref": "#/components/schemas/CrawlErrorsResponseObj"                }              }            }          },          "402": {            "description": "Payment required",            "content": {              "application/json": {                "schema": {                  "type": "object",                  "properties": {                    "error": {                      "type": "string",                      "example": "Payment required to access this resource."                    }                  }                }              }            }          },          "429": {            "description": "Too many requests",            "content": {              "application/json": {                "schema": {                  "type": "object",                  "properties": {                    "error": {                      "type": "string",                      "example": "Request rate limit exceeded. Please wait and try again later."                    }                  }                }              }            }          },          "500": {            "description": "Server error",            "content": {              "application/json": {                "schema": {                  "type": "object",                  "properties": {                    "error": {                      "type": "string",                      "example": "An unexpected error occurred on the server."                    }                  }                }              }            }          }        }      }    },    "/crawl/{id}": {      "parameters": [        {          "name": "id",          "in": "path",          "description": "The ID of the crawl job",          "required": true,          "schema": {            "type": "string",            "format": "uuid"          }        }      ],      "get": {        "summary": "Get the status of a crawl job",        "operationId": "getCrawlStatus",        "tags": ["Crawling"],

Lines 1–500 of 2885.