---
title: "Install a recipe"
method: POST
path: "/api/recipes/{id}/installs"
tags: ["Recipes"]
---

# Install a recipe

`POST /api/recipes/{id}/installs`

## Request

- Base URL: `https://trmnl.com`
- URL: `https://trmnl.com/api/recipes/{id}/installs`
- Auth: HTTP bearer

Adds the recipe to the account the way getRecipe's install_method says, and to the device playlist when a device_id is given.

## Path parameters

- `id` integer, required

## Request body

- object
  - `device_id` integer: Device whose playlist the install joins
  - `inherit_oauth` boolean: For an oauth_choice recipe: carry the author's OAuth connection

## Response `200`

Installs without a playlist when no device is given

- object
  - `data` object
    - `plugin_setting` PluginSetting
      - `sync` PluginSync
        - `source_kinds` string[], required
        - `upload_allowed` boolean, required
        - `reason` string, nullable
        - `action_id` string, nullable
      - `id` integer
      - `name` string
      - `description` string, nullable
      - `plugin_id` integer
      - `refresh_interval` integer, nullable: Minutes between renders
      - `health_notification_enabled` boolean
      - `icon_url` string, nullable
      - `icon_content_type` string, nullable
      - `read_only?` boolean
      - `strategy` string, nullable
    - `install_method` 'simple_install' | 'read_only_fork' | 'oauth_choice'

## Other responses

- `401`: Unauthorized
- `404`: Not a published recipe

---

[API](https://skmtc.dev/trmnl/apis/trmnl-api.md) · [All operations](https://skmtc.dev/trmnl/apis/trmnl-api/llms.txt) · [OpenAPI document](https://skmtc.dev/trmnl/apis/trmnl-api/revisions/66179e6d663b?raw)
