---
title: "Start a third-party plugin"
method: POST
path: "/api/my_plugins"
tags: ["My Plugins"]
---

# Start a third-party plugin

`POST /api/my_plugins`

## Request

- Base URL: `https://trmnl.com`
- URL: `https://trmnl.com/api/my_plugins`
- Auth: HTTP bearer

Creates the plugin in development status; it publishes from the dashboard after review, not from here. The icon is an upload the dashboard takes. Needs a developer edition device on the account.

## Request body

- MyPluginParams
  - `name` string
  - `description` string
  - `category` string[]: One or more of the categories listCategories answers
  - `refresh_every` 1440 | 720 | 480 | 360 | 240 | 120 | 60 | 30 | 15: Minutes between renders
  - `no_screen_padding` boolean
  - `installation_url` string: Where an installer is sent to connect; your OAuth authorize page
  - `plugin_management_url` string, nullable: Where an installer manages the connection on your site
  - `plugin_markup_url` string: Your endpoint that answers the markup for a render
  - `installation_success_webhook_url` string, nullable
  - `uninstallation_webhook_url` string, nullable
  - `knowledge_base_url` string, nullable

## Response `200`

Created

- object
  - `data` MyPlugin
    - `id` integer
    - `name` string
    - `keyname` string
    - `description` string, nullable
    - `plugin_type` 'third_party'
    - `status` 'development' | 'in_review' | 'published'
    - `category` string[]
    - `refresh_every` integer: Minutes between renders
    - `no_screen_padding` boolean
    - `installation_url` string, nullable
    - `plugin_management_url` string, nullable
    - `plugin_markup_url` string, nullable
    - `installation_success_webhook_url` string, nullable
    - `uninstallation_webhook_url` string, nullable
    - `knowledge_base_url` string, nullable
    - `client_id` string: The plugin client id; its secret is on the dashboard only
    - `created_at` string, date_time
    - `updated_at` string, date_time

## Other responses

- `401`: Unauthorized
- `403`: No developer edition device on the account
- `422`: A refresh rate the plugin API does not offer

---

[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)
