> For clean Markdown content of this page, append .md to this URL. For the complete documentation index, see https://buildwithfern.com/learn/llms.txt. # Additional content sources > Extend Ask Fern's knowledge with content from FAQs, support tickets, blogs, and other sources. Extend Ask Fern's knowledge beyond your core documentation by adding additional content sources like internal FAQs, support tickets, blog posts, and knowledge base articles. When Ask Fern references content from custom sources, it includes the associated URL as a citation. ## Publicly available content For content that's publicly accessible on the web — like marketing sites, blog posts, or external knowledge bases — Ask Fern can automatically crawl and index it. There are two ways to set this up: ### `docs.yml` configuration The simplest approach is to add URLs directly in your `docs.yml` configuration under `ai-search.datasources`: **`docs.yml`** ```yaml docs.yml ai-search: datasources: - url: https://example.com/additional-docs title: Additional documentation - url: https://blog.example.com title: Company blog ``` Each datasource requires a `url` and accepts an optional `title` that helps users understand where cited content comes from. ### Websites API For more control over what gets crawled, use the [Websites API](/learn/docs/ai-features/ask-fern/api-reference/website/index-website). This lets you apply filters to target specific subdomains or URL paths: | Filter | Description | Example | | --------------- | --------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `domain_filter` | Restrict crawling to a specific subdomain | `help.example.com` will only crawl pages on that subdomain, not `www.example.com` or `docs.example.com` | | `path_filter` | Restrict crawling to a specific section of the site | `/getting-started` will only crawl URLs containing `/getting-started` in the path, like `docs.example.com/getting-started`, but not `docs.example.com/api-reference` | Here's an example using `path_filter`: **`Example`** ```json Example wordWrap { "base_url": "https://docs.example.com", "path_filter": "/getting-started" } ``` The API returns a `job_id` to track the crawling progress. When referenced, Ask Fern cites the original URL where the content was found. ## Not publicly available content For content that isn't publicly accessible, like internal documentation, support ticket summaries, or proprietary knowledge base articles, use the [Documents API](/learn/docs/ai-features/ask-fern/api-reference/document/create-document) to upload markdown content directly. This gives you precise control over what gets indexed. **`Example`** ```json Example wordWrap { "document": "Ferns are plants native to the tropical and subtropical regions of the world. They are characterized by their fronds, which are large, leaf-like structures that are often found in the understory of forests.", "title": "What are ferns?", "url": "https://en.wikipedia.org/wiki/Fern" } ``` The URL is used solely for citations — Ask Fern doesn't crawl it. You provide the full content in the `document` field. > Extend Ask Fern's knowledge with content from FAQs, support tickets, blogs, and other sources.