Apibara
5565 lines. Apibara came to play.
Dive into Apibara's comprehensive documentation, designed for developers eager to harness the power of their indexing protocol. This resource offers a streamlined setup process, allowing you to quickly start indexing data from Ethereum and Starknet. Unlock the potential of data streaming with Apibara!
Not sure yours is this good? Check it →
Apibara's llms.txt Insights
Overachiever
88 sections. Most sites can barely manage 3. This one went all in.
War and Peace vibes
5565 lines. They really wanted AI to understand them.
What's inside Apibara's llms.txt
Apibara's llms.txt contains 5 sections:
- Installation
- Installation
- Apibara Config
- API Key
- EVM Indexer
How does Apibara's llms.txt compare?
| Apibara | Directory Avg | Top Performer | |
|---|---|---|---|
| Lines | 5,565 | 1029 | 163,447 |
| Sections | 88 | 17 | 3207 |
Cool table. Now the real question — where do you land? Find out →
Apibara's llms.txt preview
First 100 of 5,565 lines
This page contains the Apibara documentation as a single document for consumption by LLMs.
---
title: Apibara documentation
titleShort: Overview
description: "Welcome to the Apibara documentation. Find more information about the Apibara protocol."
priority: 1000
fullpage: true
---
<DocumentationIndex />
---
title: Installation
description: "Learn how to install and get started with Apibara."
diataxis: tutorial
updatedAt: 2025-06-11
---
# Installation
This tutorial shows how to setup an Apibara project from scratch. The goal is to
start indexing data as quickly as possible and to understand the basic structure
of a project. By the end of this tutorial, you will have a basic indexer that
streams data from two networks (Ethereum and Starknet).
## Installation
This tutorial starts with a fresh Typescript project. In the examples, we use
`pnpm` as the package manager, but you can use any package manager you prefer.
Let's start by creating the project. The `--language` flag specifies which language
to use to implement indexers, while the `--no-create-indexer` flag is used to
delay the creation of the indexer.
:::cli-command
```bash [Terminal]
mkdir my-indexer
cd my-indexer
pnpm dlx apibara@next init . --language="ts" --no-create-indexer
```
```
ℹ Initializing project in .
✔ Created package.json
✔ Created tsconfig.json
✔ Created apibara.config.ts
✔ Project initialized successfully
```
:::
After that, you can install the dependencies.
```bash [Terminal]
pnpm install
```
## Apibara Config
Your indexers' configuration goes in the `apibara.config.ts` file. You can
leave the configuration as is for now.
```typescript [apibara.config.ts]
import { defineConfig } from "apibara/config";
export default defineConfig({
runtimeConfig: {},
});
```
## API Key
The streams hosted by Apibara require an API key.
- [Sign up for a free account](https://app.apibara.com),
- Create an API key,
- Export the API key as the `DNA_TOKEN` environment variable.
## EVM Indexer
Let's create the first EVM indexer. All indexers must go in the `indexers`
directory and have a name that ends with `.indexer.ts` or `.indexer.js`.
The Apibara CLI will automatically detect the indexers in this directory and
make them available to the project.
You can use the `apibara add` command to add an indexer to your project. This
command does the following:
- gathers information about the chain you want to index.
- asks about your preferred storage solution.
- creates the indexer.
- adds dependencies to your `package.json`.
:::cli-command
```bash [Terminal]What is llms.txt?
llms.txt is an open standard that helps AI language models understand your website. By placing a structured markdown file at /llms.txt, websites provide AI search engines like ChatGPT, Claude, and Perplexity with a clear map of their content, services, and documentation. Companies like Apibara use it to ensure AI accurately represents their brand when answering user queries. Read the spec.
Apibara showed up. Where's yours?
1000+ companies didn't overthink it. 60 seconds. Go.
Check your site →