Skip to content

Plugins

"Plugins" in the Trello API are what the UI calls Power-Ups. These endpoints manage Power-Up metadata, listings and privacy disclosures — used mostly by Power-Up authors.

Get plugin metadata

ts
const plugin = await trello.plugins.getPlugin({ idPlugin: pluginId });
console.log(plugin.name, plugin.public, plugin.iconUrl);

Update plugin settings

ts
await trello.plugins.updatePlugin({
  idPlugin: pluginId,
  name: 'My Power-Up',
  iconUrl: 'https://cdn.example.com/icon.svg',
  public: true,
});

Manage marketplace listings

A listing is the per-locale presentation of a Power-Up in the Trello marketplace.

ts
const listing = await trello.plugins.createPluginListing({
  idPlugin: pluginId,
  description: 'Adds amazing features to your board.',
  locale: 'en-US',
  name: 'My Power-Up',
  overview: 'One-sentence pitch shown in marketplace cards.',
});

await trello.plugins.updatePluginListing({
  idPlugin: pluginId,
  idListing: listing.id,
  description: 'Updated description.',
});

Privacy compliance

Trello requires Power-Ups that store member data to declare compliance. Mark your Power-Up as compliant:

ts
await trello.plugins.getPluginMemberPrivacyCompliance({ idPlugin: pluginId });

This call returns void on success and is part of Trello's GDPR / member-data flow.

Enable / disable a Power-Up on a board

These live under the boards namespace:

ts
await trello.boards.enableBoardPlugin({
  id: boardId,
  idPlugin: pluginId,
});

await trello.boards.disableBoardPlugin({
  id: boardId,
  idPlugin: pluginId,
});

Read Power-Up data stored on a card

Power-Ups can attach arbitrary JSON to a card via pluginData:

ts
const pluginData = await trello.cards.getCardPluginData({ id: cardId });