# Ingestion

## Authenticating

To authenticate to the Ingestion API, you need an API key with the `ingestion` scope. You can read more about [generating and using API keys here](https://docs.umbraco.com/umbraco-compose/getting-started/access-control).

## Ingesting data

There are two ways to use the Ingestion API to store your content in Compose:

* If your source application supports webhooks, then you can use a managed [Ingestion Function](https://docs.umbraco.com/umbraco-compose/apis/ingestion/functions) to transform their payload into a format that Compose understands.
* If you are creating a custom integration to Compose, you can use the standard [RESTful Ingestion](https://docs.umbraco.com/umbraco-compose/apis/ingestion/restful-ingestion) endpoint.

Regardless of which Ingestion method your applications use, the [same structure](https://docs.umbraco.com/umbraco-compose/apis/ingestion/ingestion-structure) should be supplied to Compose.

## Prerequisites

In addition to an API key, to ingest data into your Compose project, you also need an [Environment](https://docs.umbraco.com/umbraco-compose/content-orchestration/environments) with a [Collection](https://docs.umbraco.com/umbraco-compose/content-orchestration/collections).

## API Documentation

Check out the [Ingestion API Documentation](https://apidocs.umbracocompose.com/?api=ingestion-api) for an overview and examples on how to make calls.
