> ## Documentation Index
> Fetch the complete documentation index at: https://docs.firecrawl.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Tines

> Call Firecrawl search, scrape, extract, map, and crawl from Tines stories with HTTP Request actions

<Note>
  **Tines docs:** [HTTP Request action](https://www.tines.com/docs/actions/types/http-request/) and [Credentials](https://www.tines.com/docs/credentials/)

  Add live web data from Firecrawl to Tines stories
</Note>

## Overview

Tines stories can call any REST API with the HTTP Request action. Pointing that action at the Firecrawl API lets a story search the web, scrape a page into markdown, pull structured data, map a site, or crawl it, and pass the result to the next action in the story.

## Quick start

1. [Create a Firecrawl API key](https://www.firecrawl.dev/app/api-keys)
2. In Tines, open **Credentials**, create a **Text** credential named `firecrawl`, and paste the key as its value
3. Add an **HTTP Request** action to your story and configure it as shown below

Referencing the key as `<<CREDENTIAL.firecrawl>>` keeps it out of the action configuration.

## Scrape a page

This action sends a scrape request and emits the page as markdown:

```json theme={null}
{
  "url": "https://api.firecrawl.dev/v2/scrape",
  "method": "post",
  "content_type": "json",
  "headers": {
    "Authorization": "Bearer <<CREDENTIAL.firecrawl>>"
  },
  "payload": {
    "url": "https://example.com",
    "formats": ["markdown"],
    "integration": "_tines"
  }
}
```

Replace `https://example.com` with a URL from an upstream event, for example `<<receive_event.body.url>>`. The optional `integration` field labels requests that come from Tines.

## What you can do

| Capability | Endpoint | Use case |
| - | - | - |
| **Search** | `POST /v2/search` | Find sources for a question or alert before later actions |
| **Scrape** | `POST /v2/scrape` | Turn a URL into markdown or structured JSON |
| **Extract** | `POST /v2/scrape` with a `json` format | Pull fields such as a title or product details with a prompt and schema |
| **Map** | `POST /v2/map` | List the URLs on a site |
| **Crawl** | `POST /v2/crawl` | Gather pages across a site, then poll for the result |

All endpoints use the base URL `https://api.firecrawl.dev`, the same `Authorization` header, and a JSON body.

## Search the web

```json theme={null}
{
  "url": "https://api.firecrawl.dev/v2/search",
  "method": "post",
  "content_type": "json",
  "headers": {
    "Authorization": "Bearer <<CREDENTIAL.firecrawl>>"
  },
  "payload": {
    "query": "firecrawl web scraping",
    "limit": 5,
    "sources": ["web"],
    "integration": "_tines"
  }
}
```

## Extract structured data

Set the `formats` entry to the `json` type with a prompt and a JSON schema:

```json theme={null}
{
  "url": "https://api.firecrawl.dev/v2/scrape",
  "method": "post",
  "content_type": "json",
  "headers": {
    "Authorization": "Bearer <<CREDENTIAL.firecrawl>>"
  },
  "payload": {
    "url": "https://example.com",
    "formats": [
      {
        "type": "json",
        "prompt": "Extract the page title",
        "schema": {
          "type": "object",
          "properties": { "title": { "type": "string" } }
        }
      }
    ],
    "integration": "_tines"
  }
}
```

## Crawl a site

A crawl runs asynchronously. Use one action to start it and a second action to read the result.

**Start the crawl** with `POST /v2/crawl`:

```json theme={null}
{
  "url": "https://api.firecrawl.dev/v2/crawl",
  "method": "post",
  "content_type": "json",
  "headers": {
    "Authorization": "Bearer <<CREDENTIAL.firecrawl>>"
  },
  "payload": {
    "url": "https://example.com",
    "limit": 10,
    "integration": "_tines"
  }
}
```

The response includes an `id`. **Check the status** with a second HTTP Request action that reads the crawl by that `id`, and repeat it until the `status` is `completed`:

```json theme={null}
{
  "url": "https://api.firecrawl.dev/v2/crawl/<<start_crawl.body.id>>",
  "method": "get",
  "headers": {
    "Authorization": "Bearer <<CREDENTIAL.firecrawl>>"
  }
}
```

Here `start_crawl` is the name of the action that started the crawl.

## Resources

* [Tines HTTP Request action](https://www.tines.com/docs/actions/types/http-request/)
* [Tines credentials](https://www.tines.com/docs/credentials/)
* [Firecrawl API introduction](/api-reference/v2-introduction)
* [Firecrawl scrape docs](/features/scrape)
* [Firecrawl crawl docs](/features/crawl)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.