# Requirement

> A Python package from PyPI that an integration needs, listed with a pinned version in its manifest.

Source: https://contributors.home-assistant.io/glossary/requirement/

- In code: `"requirements" in manifest.json`
- Also: requirements, dependency

Code that talks to a specific device or service belongs in a library on PyPI, not in the integration. The integration lists that library as a requirement, and Home Assistant installs it when needed.

Requirements are pinned to an exact version, so every installation runs the same code.

## Related terms

- [Manifest](https://contributors.home-assistant.io/glossary/manifest/): The `manifest.json` file of an integration: its domain, name, integration owners, requirements, and how it can be discovered.
- [Integration](https://contributors.home-assistant.io/glossary/integration/): A package of code that connects Home Assistant to a device, service, or protocol, or adds a feature like automations.
