Firecrawl (Firecrawl v1.2.0)

Copy Markdown View Source

Auto-generated Firecrawl API v2 client.

Generated from the OpenAPI spec at: https://raw.githubusercontent.com/firecrawl/firecrawl-docs/main/api-reference/v2-openapi.json

Configuration

Set your API key in application config:

config :firecrawl, api_key: "fc-your-api-key"

Or pass it as an option to any function:

Firecrawl.scrape_and_extract_from_url([url: "https://example.com"], api_key: "fc-your-api-key")

Options

All functions accept an optional keyword list as the last argument with:

  • :api_key - Override the API key for this request
  • :base_url - Override the default API base URL (useful for self-hosted instances)
  • Any other options are passed through to the Req request

Usage

{:ok, response} = Firecrawl.scrape_and_extract_from_url(
  url: "https://example.com"
)

{:ok, response} = Firecrawl.crawl_urls(
  url: "https://example.com",
  limit: 100
)

Summary

Functions

Cancel an agent job

Bang variant of cancel_agent. Raises on error.

Cancel a batch scrape job

Bang variant of cancel_batch_scrape. Raises on error.

Cancel a crawl job

Bang variant of cancel_crawl. Raises on error.

Preview crawl parameters generated from natural language prompt

Bang variant of crawl_params_preview. Raises on error.

Crawl multiple URLs based on options

Bang variant of crawl_urls. Raises on error.

Bang variant of create_browser_session. Raises on error.

Bang variant of delete_browser_session. Raises on error.

Bang variant of execute_browser_code. Raises on error.

Get all active crawls for the authenticated team

Bang variant of get_active_crawls. Raises on error.

List recent API activity

Bang variant of get_activity. Raises on error.

Get the status of an agent job

Bang variant of get_agent_status. Raises on error.

Get the errors of a batch scrape job

Bang variant of get_batch_scrape_errors. Raises on error.

Get the status of a batch scrape job

Bang variant of get_batch_scrape_status. Raises on error.

Get the errors of a crawl job

Bang variant of get_crawl_errors. Raises on error.

Get the status of a crawl job

Bang variant of get_crawl_status. Raises on error.

Get remaining credits for the authenticated team

Bang variant of get_credit_usage. Raises on error.

Get historical credit usage for the authenticated team

Bang variant of get_historical_credit_usage. Raises on error.

Metrics about your team's scrape queue

Bang variant of get_queue_status. Raises on error.

Interact with the browser session associated with a scrape job

Bang variant of interact_with_scrape_browser_session. Raises on error.

Bang variant of list_browser_sessions. Raises on error.

Map multiple URLs based on options

Bang variant of map_urls. Raises on error.

Scrape a single URL and optionally extract information using an LLM

Bang variant of scrape_and_extract_from_url. Raises on error.

Scrape multiple URLs and optionally extract information using an LLM

Bang variant of scrape_and_extract_from_urls. Raises on error.

Search and optionally scrape search results

Bang variant of search_and_scrape. Raises on error.

Start an agent task for agentic data extraction

Bang variant of start_agent. Raises on error.

Stop the interactive browser session associated with a scrape job

Bang variant of stop_interactive_scrape_browser_session. Raises on error.

Types

response()

@type response() :: {:ok, Req.Response.t()} | {:error, Exception.t()}

Functions

cancel_agent(job_id, opts \\ [])

@spec cancel_agent(
  String.t(),
  keyword()
) :: response()

Cancel an agent job

DELETE /agent/{jobId}

Tag: Agent

Path Parameters

  • job_id - Path parameter jobId

Returns

  • {:ok, %Req.Response{}} on success
  • {:error, exception} on HTTP or validation failure

cancel_agent!(job_id, opts \\ [])

@spec cancel_agent!(
  String.t(),
  keyword()
) :: Req.Response.t()

Bang variant of cancel_agent. Raises on error.

cancel_batch_scrape(id, opts \\ [])

@spec cancel_batch_scrape(
  String.t(),
  keyword()
) :: response()

Cancel a batch scrape job

DELETE /batch/scrape/{id}

Tag: Scraping

Path Parameters

  • id - Path parameter id

Returns

  • {:ok, %Req.Response{}} on success
  • {:error, exception} on HTTP or validation failure

cancel_batch_scrape!(id, opts \\ [])

@spec cancel_batch_scrape!(
  String.t(),
  keyword()
) :: Req.Response.t()

Bang variant of cancel_batch_scrape. Raises on error.

cancel_crawl(id, opts \\ [])

@spec cancel_crawl(
  String.t(),
  keyword()
) :: response()

Cancel a crawl job

DELETE /crawl/{id}

Tag: Crawling

Path Parameters

  • id - Path parameter id

Returns

  • {:ok, %Req.Response{}} on success
  • {:error, exception} on HTTP or validation failure

cancel_crawl!(id, opts \\ [])

@spec cancel_crawl!(
  String.t(),
  keyword()
) :: Req.Response.t()

Bang variant of cancel_crawl. Raises on error.

crawl_params_preview(params \\ [], opts \\ [])

@spec crawl_params_preview(keyword(), keyword()) :: response()

Preview crawl parameters generated from natural language prompt

POST /crawl/params-preview

Tag: Crawling

Parameters

Validated by NimbleOptions. Pass params as a keyword list with snake_case keys. See @crawl_params_preview_schema for the full schema.

Returns

  • {:ok, %Req.Response{}} on success
  • {:error, exception} on HTTP or validation failure

crawl_params_preview!(params \\ [], opts \\ [])

@spec crawl_params_preview!(keyword(), keyword()) :: Req.Response.t()

Bang variant of crawl_params_preview. Raises on error.

crawl_urls(params \\ [], opts \\ [])

@spec crawl_urls(keyword(), keyword()) :: response()

Crawl multiple URLs based on options

POST /crawl

Tag: Crawling

Parameters

Validated by NimbleOptions. Pass params as a keyword list with snake_case keys. See @crawl_urls_schema for the full schema.

Returns

  • {:ok, %Req.Response{}} on success
  • {:error, exception} on HTTP or validation failure

crawl_urls!(params \\ [], opts \\ [])

@spec crawl_urls!(keyword(), keyword()) :: Req.Response.t()

Bang variant of crawl_urls. Raises on error.

create_browser_session(params \\ [], opts \\ [])

@spec create_browser_session(keyword(), keyword()) :: response()

Create a browser session

POST /browser

Tag: Browser

Parameters

Validated by NimbleOptions. Pass params as a keyword list with snake_case keys. See @create_browser_session_schema for the full schema.

Returns

  • {:ok, %Req.Response{}} on success
  • {:error, exception} on HTTP or validation failure

create_browser_session!(params \\ [], opts \\ [])

@spec create_browser_session!(keyword(), keyword()) :: Req.Response.t()

Bang variant of create_browser_session. Raises on error.

delete_browser_session(session_id, opts \\ [])

@spec delete_browser_session(
  String.t(),
  keyword()
) :: response()

Delete a browser session

DELETE /browser/{sessionId}

Tag: Browser

Path Parameters

  • session_id - Path parameter sessionId

Returns

  • {:ok, %Req.Response{}} on success
  • {:error, exception} on HTTP or validation failure

delete_browser_session!(session_id, opts \\ [])

@spec delete_browser_session!(
  String.t(),
  keyword()
) :: Req.Response.t()

Bang variant of delete_browser_session. Raises on error.

execute_browser_code(session_id, params \\ [], opts \\ [])

@spec execute_browser_code(String.t(), keyword(), keyword()) :: response()

Execute code in a browser session

POST /browser/{sessionId}/execute

Tag: Browser

Path Parameters

  • session_id - Path parameter sessionId

Parameters

Validated by NimbleOptions. Pass params as a keyword list with snake_case keys. See @execute_browser_code_schema for the full schema.

Returns

  • {:ok, %Req.Response{}} on success
  • {:error, exception} on HTTP or validation failure

execute_browser_code!(session_id, params \\ [], opts \\ [])

@spec execute_browser_code!(String.t(), keyword(), keyword()) :: Req.Response.t()

Bang variant of execute_browser_code. Raises on error.

get_active_crawls(opts \\ [])

@spec get_active_crawls(keyword()) :: response()

Get all active crawls for the authenticated team

GET /crawl/active

Tag: Crawling

Returns

  • {:ok, %Req.Response{}} on success
  • {:error, exception} on HTTP or validation failure

get_active_crawls!(opts \\ [])

@spec get_active_crawls!(keyword()) :: Req.Response.t()

Bang variant of get_active_crawls. Raises on error.

get_activity(params \\ [], opts \\ [])

@spec get_activity(keyword(), keyword()) :: response()

List recent API activity

GET /team/activity

Tag: Account

Query Parameters

  • endpoint — query parameter endpoint
  • limit — query parameter limit
  • cursor — query parameter cursor

Returns

  • {:ok, %Req.Response{}} on success
  • {:error, exception} on HTTP or validation failure

get_activity!(params \\ [], opts \\ [])

@spec get_activity!(keyword(), keyword()) :: Req.Response.t()

Bang variant of get_activity. Raises on error.

get_agent_status(job_id, opts \\ [])

@spec get_agent_status(
  String.t(),
  keyword()
) :: response()

Get the status of an agent job

GET /agent/{jobId}

Tag: Agent

Path Parameters

  • job_id - Path parameter jobId

Returns

  • {:ok, %Req.Response{}} on success
  • {:error, exception} on HTTP or validation failure

get_agent_status!(job_id, opts \\ [])

@spec get_agent_status!(
  String.t(),
  keyword()
) :: Req.Response.t()

Bang variant of get_agent_status. Raises on error.

get_batch_scrape_errors(id, opts \\ [])

@spec get_batch_scrape_errors(
  String.t(),
  keyword()
) :: response()

Get the errors of a batch scrape job

GET /batch/scrape/{id}/errors

Tag: Scraping

Path Parameters

  • id - Path parameter id

Returns

  • {:ok, %Req.Response{}} on success
  • {:error, exception} on HTTP or validation failure

get_batch_scrape_errors!(id, opts \\ [])

@spec get_batch_scrape_errors!(
  String.t(),
  keyword()
) :: Req.Response.t()

Bang variant of get_batch_scrape_errors. Raises on error.

get_batch_scrape_status(id, opts \\ [])

@spec get_batch_scrape_status(
  String.t(),
  keyword()
) :: response()

Get the status of a batch scrape job

GET /batch/scrape/{id}

Tag: Scraping

Path Parameters

  • id - Path parameter id

Returns

  • {:ok, %Req.Response{}} on success
  • {:error, exception} on HTTP or validation failure

get_batch_scrape_status!(id, opts \\ [])

@spec get_batch_scrape_status!(
  String.t(),
  keyword()
) :: Req.Response.t()

Bang variant of get_batch_scrape_status. Raises on error.

get_crawl_errors(id, opts \\ [])

@spec get_crawl_errors(
  String.t(),
  keyword()
) :: response()

Get the errors of a crawl job

GET /crawl/{id}/errors

Tag: Crawling

Path Parameters

  • id - Path parameter id

Returns

  • {:ok, %Req.Response{}} on success
  • {:error, exception} on HTTP or validation failure

get_crawl_errors!(id, opts \\ [])

@spec get_crawl_errors!(
  String.t(),
  keyword()
) :: Req.Response.t()

Bang variant of get_crawl_errors. Raises on error.

get_crawl_status(id, opts \\ [])

@spec get_crawl_status(
  String.t(),
  keyword()
) :: response()

Get the status of a crawl job

GET /crawl/{id}

Tag: Crawling

Path Parameters

  • id - Path parameter id

Returns

  • {:ok, %Req.Response{}} on success
  • {:error, exception} on HTTP or validation failure

get_crawl_status!(id, opts \\ [])

@spec get_crawl_status!(
  String.t(),
  keyword()
) :: Req.Response.t()

Bang variant of get_crawl_status. Raises on error.

get_credit_usage(opts \\ [])

@spec get_credit_usage(keyword()) :: response()

Get remaining credits for the authenticated team

GET /team/credit-usage

Tag: Billing

Returns

  • {:ok, %Req.Response{}} on success
  • {:error, exception} on HTTP or validation failure

get_credit_usage!(opts \\ [])

@spec get_credit_usage!(keyword()) :: Req.Response.t()

Bang variant of get_credit_usage. Raises on error.

get_historical_credit_usage(params \\ [], opts \\ [])

@spec get_historical_credit_usage(keyword(), keyword()) :: response()

Get historical credit usage for the authenticated team

GET /team/credit-usage/historical

Tag: Billing

Query Parameters

  • by_api_key — query parameter byApiKey

Returns

  • {:ok, %Req.Response{}} on success
  • {:error, exception} on HTTP or validation failure

get_historical_credit_usage!(params \\ [], opts \\ [])

@spec get_historical_credit_usage!(keyword(), keyword()) :: Req.Response.t()

Bang variant of get_historical_credit_usage. Raises on error.

get_queue_status(opts \\ [])

@spec get_queue_status(keyword()) :: response()

Metrics about your team's scrape queue

GET /team/queue-status

Tag: Miscellaneous

Returns

  • {:ok, %Req.Response{}} on success
  • {:error, exception} on HTTP or validation failure

get_queue_status!(opts \\ [])

@spec get_queue_status!(keyword()) :: Req.Response.t()

Bang variant of get_queue_status. Raises on error.

interact_with_scrape_browser_session(job_id, params \\ [], opts \\ [])

@spec interact_with_scrape_browser_session(String.t(), keyword(), keyword()) ::
  response()

Interact with the browser session associated with a scrape job

POST /scrape/{jobId}/interact

Tag: Scraping

Path Parameters

  • job_id - Path parameter jobId

Parameters

Validated by NimbleOptions. Pass params as a keyword list with snake_case keys. See @interact_with_scrape_browser_session_schema for the full schema.

Returns

  • {:ok, %Req.Response{}} on success
  • {:error, exception} on HTTP or validation failure

interact_with_scrape_browser_session!(job_id, params \\ [], opts \\ [])

@spec interact_with_scrape_browser_session!(String.t(), keyword(), keyword()) ::
  Req.Response.t()

Bang variant of interact_with_scrape_browser_session. Raises on error.

list_browser_sessions(params \\ [], opts \\ [])

@spec list_browser_sessions(keyword(), keyword()) :: response()

List browser sessions

GET /browser

Tag: Browser

Query Parameters

  • status — query parameter status

Returns

  • {:ok, %Req.Response{}} on success
  • {:error, exception} on HTTP or validation failure

list_browser_sessions!(params \\ [], opts \\ [])

@spec list_browser_sessions!(keyword(), keyword()) :: Req.Response.t()

Bang variant of list_browser_sessions. Raises on error.

map_urls(params \\ [], opts \\ [])

@spec map_urls(keyword(), keyword()) :: response()

Map multiple URLs based on options

POST /map

Tag: Mapping

Parameters

Validated by NimbleOptions. Pass params as a keyword list with snake_case keys. See @map_urls_schema for the full schema.

Returns

  • {:ok, %Req.Response{}} on success
  • {:error, exception} on HTTP or validation failure

map_urls!(params \\ [], opts \\ [])

@spec map_urls!(keyword(), keyword()) :: Req.Response.t()

Bang variant of map_urls. Raises on error.

scrape_and_extract_from_url(params \\ [], opts \\ [])

@spec scrape_and_extract_from_url(keyword(), keyword()) :: response()

Scrape a single URL and optionally extract information using an LLM

POST /scrape

Tag: Scraping

Parameters

Validated by NimbleOptions. Pass params as a keyword list with snake_case keys. See @scrape_and_extract_from_url_schema for the full schema.

Returns

  • {:ok, %Req.Response{}} on success
  • {:error, exception} on HTTP or validation failure

scrape_and_extract_from_url!(params \\ [], opts \\ [])

@spec scrape_and_extract_from_url!(keyword(), keyword()) :: Req.Response.t()

Bang variant of scrape_and_extract_from_url. Raises on error.

scrape_and_extract_from_urls(params \\ [], opts \\ [])

@spec scrape_and_extract_from_urls(keyword(), keyword()) :: response()

Scrape multiple URLs and optionally extract information using an LLM

POST /batch/scrape

Tag: Scraping

Parameters

Validated by NimbleOptions. Pass params as a keyword list with snake_case keys. See @scrape_and_extract_from_urls_schema for the full schema.

Returns

  • {:ok, %Req.Response{}} on success
  • {:error, exception} on HTTP or validation failure

scrape_and_extract_from_urls!(params \\ [], opts \\ [])

@spec scrape_and_extract_from_urls!(keyword(), keyword()) :: Req.Response.t()

Bang variant of scrape_and_extract_from_urls. Raises on error.

search_and_scrape(params \\ [], opts \\ [])

@spec search_and_scrape(keyword(), keyword()) :: response()

Search and optionally scrape search results

POST /search

Tag: Search

Parameters

Validated by NimbleOptions. Pass params as a keyword list with snake_case keys. See @search_and_scrape_schema for the full schema.

Returns

  • {:ok, %Req.Response{}} on success
  • {:error, exception} on HTTP or validation failure

search_and_scrape!(params \\ [], opts \\ [])

@spec search_and_scrape!(keyword(), keyword()) :: Req.Response.t()

Bang variant of search_and_scrape. Raises on error.

start_agent(params \\ [], opts \\ [])

@spec start_agent(keyword(), keyword()) :: response()

Start an agent task for agentic data extraction

POST /agent

Tag: Agent

Parameters

Validated by NimbleOptions. Pass params as a keyword list with snake_case keys. See @start_agent_schema for the full schema.

Returns

  • {:ok, %Req.Response{}} on success
  • {:error, exception} on HTTP or validation failure

start_agent!(params \\ [], opts \\ [])

@spec start_agent!(keyword(), keyword()) :: Req.Response.t()

Bang variant of start_agent. Raises on error.

stop_interactive_scrape_browser_session(job_id, opts \\ [])

@spec stop_interactive_scrape_browser_session(
  String.t(),
  keyword()
) :: response()

Stop the interactive browser session associated with a scrape job

DELETE /scrape/{jobId}/interact

Tag: Scraping

Path Parameters

  • job_id - Path parameter jobId

Returns

  • {:ok, %Req.Response{}} on success
  • {:error, exception} on HTTP or validation failure

stop_interactive_scrape_browser_session!(job_id, opts \\ [])

@spec stop_interactive_scrape_browser_session!(
  String.t(),
  keyword()
) :: Req.Response.t()

Bang variant of stop_interactive_scrape_browser_session. Raises on error.