# Add reference repositories and API docs

Reference repositories and API docs are material the analysis and the Advanced editor read to understand the contracts your app consumes: request and response shapes, types, authentication. Add them when the front-end code alone does not show what an endpoint expects.

Nothing in the agent is generated from reference material. The actions come only from the primary repository, and when a reference disagrees with the app's code, the code wins.

## Before you begin

- For a reference repository, the account that owns it is connected to your workspace, or you can connect it. See [Connect your code](https://docs.faustine.ai/web-agents/connect-your-code/).
- For API docs, you have the file: OpenAPI 3.x or Swagger 2.0 in JSON or YAML, GraphQL SDL, or a GraphQL introspection result in JSON.

## Add a reference repository

To add a repository to an existing agent:

1. In the portal, go to [**Web Agents**](https://auth.faustine.ai/go?to=%2Fweb-assistants) and select your agent.
2. Select the **Settings** tab, then **Reference repositories**.
3. Select **Add repository**.
4. Select the connection, the repository and the branch. To limit the reference to one folder, select the folder.
5. Enter what the repository is, such as `The backend of the app`. The description is required.
6. Select **Add**.

The repository appears in the list with its branch and description. If the account is not connected yet, select **Connect another account** and choose the provider.

## Add API docs

To upload a specification:

1. In the **Settings** tab, select **API docs**.
2. Select **Upload** and choose the file.

The file appears in the list. **Replace file** uploads a newer copy in its place, and **Download** returns the stored file.

## Add them when you create the agent

The **Quick start** wizard has the same two lists in its **Extra resources** step. What you add there is in place before the first analysis starts. If you have nothing to add, select **Skip for now**.

## When the references are read

A reference applies from the next run: an update, a re-analysis, or a conversation in the Advanced editor. Adding one does not change the actions the agent already has. To have existing actions take a new reference into account, re-analyze. See [Keep the agent up to date](https://docs.faustine.ai/web-agents/keep-up-to-date/).

To remove a reference, select **Remove** on its row. The analysis and the Advanced editor stop reading it.

## Limits

| Limit | Value |
| --- | --- |
| Reference repositories for one agent | 3 |
| Size of one API docs file | 5 MB |
| API docs file extensions | `.json`, `.yaml`, `.yml`, `.graphql`, `.gql`, `.txt` |

## Next steps

- [The analysis](https://docs.faustine.ai/web-agents/analysis/): what the analysis reads and what it generates.
- [The Advanced editor](https://docs.faustine.ai/web-agents/advanced-editor/): browse the reference repositories next to your own code.
- [Keep the agent up to date](https://docs.faustine.ai/web-agents/keep-up-to-date/): run an update or a re-analysis after adding a reference.
