# Accept or reject a proposed recipe

A proposed recipe is a draft: the analysis, an import or Faustine AI wrote it, and it does nothing until you decide. Accept it to make it an operation of the API. Reject it to keep it out.

## Find the proposals

1. In the portal, go to [**APIs**](https://auth.faustine.ai/go?to=%2Fintegrations%2Fapis) and select your API.
2. Select the **Recipes** tab.
3. Over the list, select the chip that counts the proposed recipes. The list shows only proposals.

When an API has proposals, its **Overview** tab also shows them under **To review**. **Decide** opens the same filtered list.

## Read a proposal

1. Select the recipe's row. It unfolds to show the description, the **Steps** it runs in order, and why it was proposed.
2. Check the **Kind** column. It shows whether the recipe writes and whether it requires confirmation, both taken from its steps.
3. Check the **Valid** column. A warning icon means the code does not pass validation, for example because it calls an operation that no longer exists.
4. To read the code, open the row's menu and select **Recipe code**. The recipe editor opens.
5. To run it, select **Test** in the editor, choose a connection, enter an input and select **Run**.

> **Warning:** A test makes real calls to your API through the connection you select. A recipe that writes changes data in that deployment.

A recipe imported from client code has one more file in the editor, **From the client code**, with the files and lines where the application makes the same sequence of calls.

## Accept a recipe

1. In the recipe's row, select **Accept**.
2. In **Accept this recipe?**, check the kind it runs as and confirm.
3. Select **Publish** in the API's header.

The recipe becomes a composite operation of the draft, and the published version includes it. A gateway serves it once the operation is exposed in the gateway's **Operations** tab. See [Choose which operations are exposed](https://docs.faustine.ai/agent-gateway/choose-operations/).

In the recipe editor, **Accept** is available after you save your changes.

## Reject a recipe

1. In the recipe's row, select **Reject**.
2. Confirm in **Reject this recipe?**.

A rejected recipe stays in the list with the **Rejected** status and is not an operation. Rejecting deletes its saved versions. An import does not propose it again. To accept it later, open its menu and select **Accept**.

To remove a recipe from the list, open its menu and select **Delete…**.

## Fix a proposal before accepting it

- To edit the code or a schema yourself, open the recipe, make the change and select **Save**.
- To describe the change, open the **Faustine AI** panel in the recipe editor.
- To work on it with the API's code at hand, open the row's menu and select **Refine in the advanced editor**. See [The AI editor](https://docs.faustine.ai/apis/ai-editor/).

A recipe with the **New proposal** badge is one for which the latest analysis wrote new code. Open it to compare the proposal with the current code, then apply or discard it.

## Next steps

- [Recipes](https://docs.faustine.ai/apis/recipes/): what a recipe's code can use.
- [Versions and updates](https://docs.faustine.ai/apis/versions/): publish the draft so that gateways serve the recipe.
- [Import recipes from client code](https://docs.faustine.ai/apis/import-recipes/): get more proposals from an application that calls the API.
