***

title: build_index
slug: /reference/python/agents/search/index-builder/build-index
description: Build a search index from a single directory.
max-toc-depth: 3
---------------------

For a complete index of all SignalWire documentation pages, fetch https://signalwire.com/docs/llms.txt

[build-index-from-sources]: /docs/server-sdks/reference/python/agents/search/index-builder/build-index-from-sources

Build a search index from a single directory. This is a convenience wrapper
around [`build_index_from_sources()`][build-index-from-sources]
for the common case of indexing one directory.

## **Parameters**

<ParamField path="source_dir" type="str" required={true} toc={true}>
  Directory to scan for documents.
</ParamField>

<ParamField path="output_file" type="str" required={true} toc={true}>
  Output `.swsearch` file path.
</ParamField>

<ParamField path="file_types" type="list[str]" required={true} toc={true}>
  File extensions to include.
</ParamField>

<ParamField path="exclude_patterns" type="Optional[list[str]]" toc={true}>
  Glob patterns to exclude.
</ParamField>

<ParamField path="languages" type="Optional[list[str]]" toc={true}>
  Language codes. Defaults to `["en"]`.
</ParamField>

<ParamField path="tags" type="Optional[list[str]]" toc={true}>
  Global tags for all chunks.
</ParamField>

## **Returns**

`None`

## **Example**

```python {4}
from signalwire.search import IndexBuilder

builder = IndexBuilder()
builder.build_index(
    source_dir="./docs",
    output_file="docs.swsearch",
    file_types=["md", "txt"],
)
```