---
type: "firecrawl-provider"
description: "Find scientific papers, inspect metadata, read relevant passages and follow citation relationships."
use_when: "search scientific papers.\n\ninspect scientific papers.\n\nread scientific papers.\n\nrelated scientific papers."
categories: "Research"
capabilities: 4
credits_per_call: 0
---
# Research Index on Firecrawl Alexandria

Find scientific papers, inspect metadata, read relevant passages and follow citation relationships.

- Categories: Research
- Category index: [Research category](https://firecrawl.dev/alexandria/agents/categories/research)
- Provider key: `firecrawl-research-index`
- Access: Firecrawl credits
- Cost: 0 credits per call

## More

- [Human guide](https://firecrawl.dev/app/alexandria/firecrawl-research-index)
- [OpenAPI spec](https://firecrawl.dev/alexandria/agents/providers/firecrawl-research-index/openapi.json)

## Capabilities

- [Search papers](https://firecrawl.dev/alexandria/agents/providers/firecrawl-research-index/search): Ranked papers. Preserve paperId for follow-up calls; web: IDs are link-only results. Partial and pool metadata remain in the envelope.
- [Inspect paper](https://firecrawl.dev/alexandria/agents/providers/firecrawl-research-index/inspect): Canonical paper metadata.
- [Read paper passages](https://firecrawl.dev/alexandria/agents/providers/firecrawl-research-index/read): Relevant full-text passages with paper metadata in the envelope.
- [Find related papers](https://firecrawl.dev/alexandria/agents/providers/firecrawl-research-index/related): Ranked papers. Preserve paperId for follow-up calls; web: IDs are link-only results. Partial and pool metadata remain in the envelope.

## 1. Choose this provider when

search scientific papers.

inspect scientific papers.

read scientific papers.

related scientific papers.

## 2. Minimal request

Call `POST https://api.firecrawl.dev/v2/scrape` with `{ alexandria: { provider, capability, options } }`. For a batch, send `{ alexandria: [...] }` with up to 10 calls.

```json
{
  "provider": "firecrawl-research-index",
  "capability": "search",
  "options": {
    "query": "<query>",
    "k": 40
  }
}
```

## 3. Add provider options

Use only the options needed for the task:

- `query` (string, required): Question or search phrase. Example: `<query>`
- `k` (number): Maximum results to return. Example: `40`
- `authors` (string[]): Author filters. Example: `[]`
- `categories` (string[]): Paper categories. Example: `[]`
- `from` (string): Inclusive start date, YYYY-MM-DD. Example: `<from>`
- `to` (string): Inclusive end date, YYYY-MM-DD. Example: `<to>`

## 4. Request through your preferred interface

### JavaScript

```javascript
const result = await firecrawl.scrape({
  alexandria: {
    provider: "firecrawl-research-index",
    capability: "search",
    options: {
      query: "<query>",
      k: 40,
    },
  },
});
```

### Python

```python
result = firecrawl.scrape_alexandria({
  "provider": "firecrawl-research-index",
  "capability": "search",
  "options": {
    "query": "<query>",
    "k": 40
  }
})
```

### cURL

```sh
curl https://api.firecrawl.dev/v2/scrape \
  -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "alexandria": {
    "provider": "firecrawl-research-index",
    "capability": "search",
    "options": {
      "query": "<query>",
      "k": 40
    }
  }
}'
```

### CLI

```sh
firecrawl scrape 'firecrawl-research-index/search' \
  --options '{"query":"<query>","k":40}'
```


### MCP

Call the FCX MCP retrieve tool with this object:

```json
{
  "provider": "firecrawl-research-index",
  "capability": "search",
  "options": {
    "query": "<query>",
    "k": 40
  }
}
```

Ask for only the returned fields needed by the task.

## 5. Full request shape

```json
{
  "provider": "firecrawl-research-index",
  "capability": "search",
  "options": {
    "query": "<query>",
    "k": 40
  }
}
```

## 6. Response data

The response includes `success`, `provider`, `capability`, `creditsCost` and `data`. This example shows the provider payload in `data`:

```json
{
  "results": [
    {
      "paperId": "<paperId>",
      "primaryId": "<primaryId>",
      "title": "<title>",
      "abstract": "<abstract>"
    }
  ]
}
```

## API reference-derived contract

The following capability contract is generated from the same normalized Alexandria API reference exposed in the API spec.

### Search papers

- Capability: `search`
- Description: Ranked papers. Preserve paperId for follow-up calls; web: IDs are link-only results. Partial and pool metadata remain in the envelope.
- Instructions: Find scientific papers about a research question, then use indexed paperIds for follow-up calls.
- Cost: 0 credits per call
- Capability file: [Search papers](https://firecrawl.dev/alexandria/agents/providers/firecrawl-research-index/search)

Accepted options:
- `query` (string, required): Question or search phrase. Example: `<query>`
- `k` (number): Maximum results to return. Example: `40`
- `authors` (string[]): Author filters. Example: `[]`
- `categories` (string[]): Paper categories. Example: `[]`
- `from` (string): Inclusive start date, YYYY-MM-DD. Example: `<from>`
- `to` (string): Inclusive end date, YYYY-MM-DD. Example: `<to>`

Response schema example:
```json
{
  "results": [
    {
      "paperId": "<paperId>",
      "primaryId": "<primaryId>",
      "title": "<title>",
      "abstract": "<abstract>"
    }
  ]
}
```

### Inspect paper

- Capability: `inspect`
- Description: Canonical paper metadata.
- Instructions: Read a paper's metadata and abstract without retrieving full text.
- Cost: 0 credits per call
- Capability file: [Inspect paper](https://firecrawl.dev/alexandria/agents/providers/firecrawl-research-index/inspect)

Accepted options:
- `paperId` (string, required): Indexed paperId returned by search. web: IDs cannot be inspected or read. Example: `<paperId>`

Response schema example:
```json
{
  "paper": {
    "paperId": "<paperId>",
    "title": "<title>",
    "abstract": "<abstract>"
  }
}
```

### Read paper passages

- Capability: `read`
- Description: Relevant full-text passages with paper metadata in the envelope.
- Instructions: Retrieve paper passages relevant to a question. Empty passages do not mean the full paper was read.
- Cost: 0 credits per call
- Capability file: [Read paper passages](https://firecrawl.dev/alexandria/agents/providers/firecrawl-research-index/read)

Accepted options:
- `paperId` (string, required): Indexed paperId returned by search. web: IDs cannot be inspected or read. Example: `<paperId>`
- `query` (string, required): Question or search phrase. Example: `<query>`
- `k` (number): Maximum results to return. Example: `4`

Response schema example:
```json
{
  "passages": [
    {
      "text": "<text>"
    }
  ]
}
```

### Find related papers

- Capability: `related`
- Description: Ranked papers. Preserve paperId for follow-up calls; web: IDs are link-only results. Partial and pool metadata remain in the envelope.
- Instructions: Find similar work, papers citing a seed or its references, ranked for your research question.
- Cost: 0 credits per call
- Capability file: [Find related papers](https://firecrawl.dev/alexandria/agents/providers/firecrawl-research-index/related)

Accepted options:
- `paperId` (string, required): Indexed paperId returned by search. web: IDs cannot be inspected or read. Example: `<paperId>`
- `intent` (string, required): Question to rank related papers against. Example: `<intent>`
- `k` (number): Maximum results to return. Example: `40`
- `mode` (string): Citation relationship. Defaults to similar. Example: `similar`
- `anchor` (string[]): Additional indexed paper IDs. Example: `[]`
- `rerank` (boolean): Apply additional reranking. Example: `false`

Response schema example:
```json
{
  "results": [
    {
      "paperId": "<paperId>",
      "primaryId": "<primaryId>",
      "title": "<title>",
      "abstract": "<abstract>"
    }
  ]
}
```
