Skip to Content
Addon DevelopmentAvailable M2C2 APIs

Available M2C2 APIs

Permission tokens

Declare only what you need in manifest.permissions:

TokenCapability
network.fetchhttp.get/post to allowlisted hosts
storage.localKey/value isolated per addonId
voice.registerRegister Piper intents
voice.ttsSpeak responses
smart.readRead device snapshots
smart.writeControl devices (heavily gated)
notify.toastShow non-blocking UI toasts

⚠️ Warning: smart.write triggers extra review in the marketplace — include demo video and safety notes.

HTTP bridge

const res = await http.get("https://api.example.com/v1/price", { cache: "no-store", });

Hosts must match manifest.network.allowlist (field name may vary by core version).

Storage

await storage.set("pairs", ["BTC", "ETH"]); const pairs = await storage.get<string[]>("pairs");

Voice registration

voice.registerIntent("crypto.price", async (slots) => { const sym = slots.symbol; return { speak: `${sym} is …` }; });

💡 Tip: Log intent confidence during development — borderline transcripts should return a clarifying question instead of executing trades.

Last updated on

Was this helpful?