# Auto AI summary Source: https://docs.magicmealkits.com/api-reference/ai-comments-&-users/auto-ai-summary /api-reference/notion/openapi.json post /api/v2/notion/database/{database_id}/ai-summary-auto Auto-discovers AI properties on a database and summarizes them. Unofficial API — also requires `X-Notion-Space-ID` and `X-Notion-User-ID`. **Pro license required.** # Create a comment Source: https://docs.magicmealkits.com/api-reference/ai-comments-&-users/create-a-comment /api-reference/notion/openapi.json post /api/v1/notion/comments Adds a comment to a page/discussion (official Notion API). Requires the `X-Notion-Official-Token` header. **Pro license required.** # Get a user Source: https://docs.magicmealkits.com/api-reference/ai-comments-&-users/get-a-user /api-reference/notion/openapi.json get /api/v1/notion/users/{user_id} Returns a single workspace user (official Notion API). Requires the `X-Notion-Official-Token` header. **Pro license required.** # List comments Source: https://docs.magicmealkits.com/api-reference/ai-comments-&-users/list-comments /api-reference/notion/openapi.json get /api/v1/notion/comments Lists comments on a page/block (official Notion API). Requires the `X-Notion-Official-Token` header (your official Notion integration token). **Pro license required.** # List users Source: https://docs.magicmealkits.com/api-reference/ai-comments-&-users/list-users /api-reference/notion/openapi.json get /api/v1/notion/users Lists workspace users (official Notion API). Requires the `X-Notion-Official-Token` header. **Pro license required.** # Trigger AI summary (v1) Source: https://docs.magicmealkits.com/api-reference/ai-comments-&-users/trigger-ai-summary-v1 /api-reference/notion/openapi.json post /api/v1/notion/database/{database_id}/ai-summary Triggers a Notion AI summary for a database. Unofficial API — also requires `X-Notion-Space-ID` and `X-Notion-User-ID`. **Pro license required.** # Trigger AI summary (v2) Source: https://docs.magicmealkits.com/api-reference/ai-comments-&-users/trigger-ai-summary-v2 /api-reference/notion/openapi.json post /api/v2/notion/database/{database_id}/ai-summary Triggers an AI summary for a database via the v2 path. Unofficial API — also requires `X-Notion-Space-ID` and `X-Notion-User-ID`. **Pro license required.** # Get AI task status Source: https://docs.magicmealkits.com/api-reference/ai/get-ai-task-status /api-reference/plaud/openapi.json get /plaud/ai/status Returns the AI (transcribe/summarize) task status for the given files. `file_ids` is a required comma-separated query parameter. **Pro license required.** A Basic key is rejected with `400` and `you are not a magic meal kits PRO user`. # Get transcription quota flags Source: https://docs.magicmealkits.com/api-reference/ai/get-transcription-quota-flags /api-reference/plaud/openapi.json get /plaud/user/transcription-quota Returns the two booleans driving the web client's out-of-quota UI: `is_starter` and `usage_reached`. **Pro license required.** A Basic key is rejected with `400` and `you are not a magic meal kits PRO user`. # Get transcription seconds Source: https://docs.magicmealkits.com/api-reference/ai/get-transcription-seconds /api-reference/plaud/openapi.json get /plaud/ai/trans-status Returns the account's total and remaining transcription seconds. **Pro license required.** A Basic key is rejected with `400` and `you are not a magic meal kits PRO user`. # List summary models Source: https://docs.magicmealkits.com/api-reference/ai/list-summary-models /api-reference/plaud/openapi.json get /plaud/summary/models Lists the LLM models Plaud offers for summary generation. `model_name` is the identifier you pass as `llm` to the transsumm endpoints. **Pro license required.** A Basic key is rejected with `400` and `you are not a magic meal kits PRO user`. # Start transcribe + summarize Source: https://docs.magicmealkits.com/api-reference/ai/start-transcribe-+-summarize /api-reference/plaud/openapi.json post /plaud/files/{id}/transsumm Triggers Plaud's automatic transcript + summary pipeline for a recording without blocking, returning the immediate upstream response (the task runs async). All body fields are optional (zero values map to Plaud defaults: auto language, auto LLM, diarization on). When `check_quota` is `true`, insufficient transcription seconds return `402`. **Pro license required.** A Basic key is rejected with `400` and `you are not a magic meal kits PRO user`. # Transcribe + summarize (wait) Source: https://docs.magicmealkits.com/api-reference/ai/transcribe-+-summarize-wait /api-reference/plaud/openapi.json post /plaud/files/{id}/transsumm/wait Triggers transcribe + summarize, polls until the task completes, then returns the composed file bundle (transcript + summary + optional audio URL) — the same shape as `GET /files/{id}/fetch`. Pre-flight quota check is ON by default here (`{"check_quota": false}` to skip). Returns `402` on insufficient quota and `504` if the task does not finish within the timeout. **Pro license required.** A Basic key is rejected with `400` and `you are not a magic meal kits PRO user`. # Bulk check for duplicates Source: https://docs.magicmealkits.com/api-reference/bulk-operations/bulk-check-for-duplicates /api-reference/notion/openapi.json post /api/v1/notion/bulk-duplicate-check Read-only. Checks which input records already exist (matched by `lookup_properties`) and returns ready-to-pipe `unique_records` / `duplicate_records` arrays. **Pro license required.** # Bulk delete (trash) pages Source: https://docs.magicmealkits.com/api-reference/bulk-operations/bulk-delete-trash-pages /api-reference/notion/openapi.json post /api/v1/notion/bulk-delete Moves up to 100 pages to trash by `page_ids`. Requires a **Basic** license. # Bulk insert records Source: https://docs.magicmealkits.com/api-reference/bulk-operations/bulk-insert-records /api-reference/notion/openapi.json post /api/v1/notion/bulk-insert Creates up to 100 pages in a Notion database/data source from simple property maps. Identify the target with `data_source_id` (multi-data-source DBs), `notion_id` (auto-detect), or `database_id`. Requires a **Basic** license. # Bulk page update (raw) Source: https://docs.magicmealkits.com/api-reference/bulk-operations/bulk-page-update-raw /api-reference/notion/openapi.json post /api/v1/notion/bulk-page-update Batch PATCH page parameters directly (erase content, icon, cover, template, in_trash, archived, is_locked, properties) without schema conversion — properties must be in Notion API format. **Pro license required.** # Bulk update records Source: https://docs.magicmealkits.com/api-reference/bulk-operations/bulk-update-records /api-reference/notion/openapi.json post /api/v1/notion/bulk-update Updates up to 100 pages. Each record must include `page_id` and the properties to change. Requires a **Basic** license. # Bulk upsert records Source: https://docs.magicmealkits.com/api-reference/bulk-operations/bulk-upsert-records /api-reference/notion/openapi.json post /api/v1/notion/bulk-upsert Insert-or-update by matching `lookup_properties` (like SQL upsert). Requires a **Basic** license. # Get AI summary Source: https://docs.magicmealkits.com/api-reference/content/get-ai-summary /api-reference/plaud/openapi.json get /plaud/files/{id}/summary Returns the AI-generated Markdown summary. Relative image paths are rewritten to pre-signed S3 URLs (~15-min TTL). **Pro license required.** # Get audio URL Source: https://docs.magicmealkits.com/api-reference/content/get-audio-url /api-reference/plaud/openapi.json get /plaud/files/{id}/audio-url Returns a pre-signed S3 URL for the original audio file. **Pro license required.** # Get note tab content Source: https://docs.magicmealkits.com/api-reference/content/get-note-tab-content /api-reference/plaud/openapi.json get /plaud/files/{id}/tabs/content Fetches the content of one note tab, selected by exactly one of `tab_id` or `template`. **Pro license required.** # Get transcript Source: https://docs.magicmealkits.com/api-reference/content/get-transcript /api-reference/plaud/openapi.json get /plaud/files/{id}/transcript Returns the decoded transcript with speaker labels and millisecond timestamps. Pass `format` to also get a rendered `text` string. **Pro license required.** # List note tabs Source: https://docs.magicmealkits.com/api-reference/content/list-note-tabs /api-reference/plaud/openapi.json get /plaud/files/{id}/tabs Lists the named AI note tabs for a recording (Summary, Key Points, Highlights, template outputs). **Pro license required.** # Apply a template to a page Source: https://docs.magicmealkits.com/api-reference/data-sources-v2/apply-a-template-to-a-page /api-reference/notion/openapi.json post /api/v2/notion/page/{page_id}/apply-template Applies a data-source template to an existing page. Requires a **Basic** license. # Get a page Source: https://docs.magicmealkits.com/api-reference/data-sources-v2/get-a-page /api-reference/notion/openapi.json get /api/v2/notion/page/{page_id} Fetches a single page/database item with simplified properties. Requires a **Basic** license. # Get simplified schema Source: https://docs.magicmealkits.com/api-reference/data-sources-v2/get-simplified-schema /api-reference/notion/openapi.json get /api/v2/notion/database/{database_id}/simplified-schema Returns a flattened, easy-to-read schema for a database/data source. Requires a **Basic** license. # List data sources Source: https://docs.magicmealkits.com/api-reference/data-sources-v2/list-data-sources /api-reference/notion/openapi.json get /api/v2/notion/database/{database_id}/data-sources Lists the data sources attached to a multi-data-source database. Requires a **Basic** license. # Query a data source Source: https://docs.magicmealkits.com/api-reference/data-sources-v2/query-a-data-source /api-reference/notion/openapi.json post /api/v2/notion/data-source/{data_source_id}/query Same as the database query but targets a specific data source ID directly. Requires a **Basic** license. # Query a database Source: https://docs.magicmealkits.com/api-reference/data-sources-v2/query-a-database /api-reference/notion/openapi.json post /api/v2/notion/database/{database_id}/query Queries pages with simple `filters` (auto-converted to Notion filter syntax), sorts, and pagination. Returns flattened `simple_properties` alongside raw properties. Requires a **Basic** license. # Get database schema Source: https://docs.magicmealkits.com/api-reference/database-&-schema/get-database-schema /api-reference/notion/openapi.json get /api/v1/notion/database/{database_id}/schema Returns the property schema (names, types, options) for a database. For multi-data-source databases, properties live on the data source — see the v2 endpoints. Requires a **Basic** license. # Get duplicate-check schema Source: https://docs.magicmealkits.com/api-reference/database-&-schema/get-duplicate-check-schema /api-reference/notion/openapi.json get /api/v1/notion/database/{database_id}/duplicate-check-schema Schema describing the lookup fields accepted by bulk-duplicate-check. Requires a **Basic** license. # Get property options Source: https://docs.magicmealkits.com/api-reference/database-&-schema/get-property-options /api-reference/notion/openapi.json get /api/v1/notion/database/property-options Returns the available option values for a select/multi-select/status property. Requires a **Basic** license. # Get update schema Source: https://docs.magicmealkits.com/api-reference/database-&-schema/get-update-schema /api-reference/notion/openapi.json get /api/v1/notion/database/{database_id}/update-schema Schema variant describing the fields accepted by bulk-update for this database. Requires a **Basic** license. # Get upsert schema Source: https://docs.magicmealkits.com/api-reference/database-&-schema/get-upsert-schema /api-reference/notion/openapi.json get /api/v1/notion/database/{database_id}/upsert-schema Schema variant describing the fields accepted by bulk-upsert (including lookup properties). Requires a **Basic** license. # List database items Source: https://docs.magicmealkits.com/api-reference/database-&-schema/list-database-items /api-reference/notion/openapi.json get /api/v1/notion/listDatabaseItems Lists items (pages) in a database with simplified properties. Requires a **Basic** license. # List devices Source: https://docs.magicmealkits.com/api-reference/devices/list-devices /api-reference/plaud/openapi.json get /plaud/devices Lists the Plaud hardware devices bound to the account (Note, Note Pro, etc.). **Pro license required.** # Acknowledge device pull Source: https://docs.magicmealkits.com/api-reference/files/acknowledge-device-pull /api-reference/plaud/openapi.json post /plaud/files/{id}/ack-pull Acknowledges that a recording was pulled from the device — decrements Plaud's `wait_pull` counter so the file stops surfacing as unread. Empty body. Returns `204 No Content` on success. **Pro license required.** A Basic key is rejected with `400` and `you are not a magic meal kits PRO user`. # Bundle multiple recordings Source: https://docs.magicmealkits.com/api-reference/files/bundle-multiple-recordings /api-reference/plaud/openapi.json get /plaud/sync Backend-for-frontend aggregator: lists recordings and composes each one's requested attachments (transcript/summary/share/audio) in a single call. Backs `mmk plaud file list --with transcripts,summaries`. **Pro license required.** A Basic key is rejected with `400` and `you are not a magic meal kits PRO user`. # Export a page Source: https://docs.magicmealkits.com/api-reference/files/export-a-page /api-reference/notion/openapi.json post /api/v1/notion/download Generates an export/download URL for a Notion page. Unofficial API — also requires `X-Notion-Space-ID` and `X-Notion-User-ID`. Requires a **Basic** license. # Get recording bundle Source: https://docs.magicmealkits.com/api-reference/files/get-recording-bundle /api-reference/plaud/openapi.json get /plaud/files/{id}/fetch Backend-for-frontend: returns the file plus any combination of transcript, summary, share state, and audio URL in a single call. **Pro license required.** # Get recording metadata Source: https://docs.magicmealkits.com/api-reference/files/get-recording-metadata /api-reference/plaud/openapi.json get /plaud/files/{id} Returns metadata for a single recording (no transcript/summary fetch). **Pro license required.** # Get share states Source: https://docs.magicmealkits.com/api-reference/files/get-share-states /api-reference/plaud/openapi.json get /plaud/files/{id}/share Returns the private and public share state for a recording. Each side is a loose upstream envelope (shape varies depending on whether a share exists). **Pro license required.** A Basic key is rejected with `400` and `you are not a magic meal kits PRO user`. # List recordings Source: https://docs.magicmealkits.com/api-reference/files/list-recordings /api-reference/plaud/openapi.json get /plaud/files Lists your Plaud recordings, newest first by default. **Pro license required.** # Rename a recording Source: https://docs.magicmealkits.com/api-reference/files/rename-a-recording /api-reference/plaud/openapi.json patch /plaud/files/{id} Renames a recording. Returns `204 No Content` on success. **Pro license required.** A Basic key is rejected with `400` and `you are not a magic meal kits PRO user`. # Trash recordings Source: https://docs.magicmealkits.com/api-reference/files/trash-recordings /api-reference/plaud/openapi.json post /plaud/files/trash Soft-deletes one or more recordings (moves them to trash with `is_trash=true`). This is recoverable — it is NOT a permanent delete. An empty `file_ids` list is rejected with `400`. Returns `204 No Content` on success. **Pro license required.** A Basic key is rejected with `400` and `you are not a magic meal kits PRO user`. # Upload a file Source: https://docs.magicmealkits.com/api-reference/files/upload-a-file /api-reference/notion/openapi.json post /api/v1/notion/file-upload Uploads an external file and attaches it to a Notion page/database property. **Pro license required.** # Upload a file (direct) Source: https://docs.magicmealkits.com/api-reference/files/upload-a-file-direct /api-reference/notion/openapi.json post /api/v1/notion/file-upload-direct Direct file upload variant. Requires a **Basic** license. # Assign or clear a tag Source: https://docs.magicmealkits.com/api-reference/folders/assign-or-clear-a-tag /api-reference/plaud/openapi.json post /plaud/files/update-tags Assigns a tag to (or clears it from) one or more recordings. Pass an empty `filetag_id` to clear the tag from every file in `file_id_list`. An empty `file_id_list` is rejected with `400`. Returns `204 No Content` on success. **Pro license required.** A Basic key is rejected with `400` and `you are not a magic meal kits PRO user`. # Create a tag Source: https://docs.magicmealkits.com/api-reference/folders/create-a-tag /api-reference/plaud/openapi.json post /plaud/tags Creates a new tag (folder). The response echoes the upstream create envelope, which includes the new tag id — pass it to `POST /files/update-tags` to assign it. **Pro license required.** A Basic key is rejected with `400` and `you are not a magic meal kits PRO user`. # List tags Source: https://docs.magicmealkits.com/api-reference/folders/list-tags /api-reference/plaud/openapi.json get /plaud/tags Lists the account's tags (used as folders). **Pro license required.** A Basic key is rejected with `400` and `you are not a magic meal kits PRO user`. # Organize into a folder Source: https://docs.magicmealkits.com/api-reference/folders/organize-into-a-folder /api-reference/plaud/openapi.json post /plaud/files/organize One-call BFF: resolve a tag by name (creating it when missing), then assign it to every listed file. The verb users and AI agents actually want — 'put these recordings into this folder'. **Pro license required.** A Basic key is rejected with `400` and `you are not a magic meal kits PRO user`. # Notion Source: https://docs.magicmealkits.com/api-reference/notion/overview Bulk Notion operations, database queries, markdown, publishing, workspace management, files, and transcription. The Notion group powers the **Notion Plus (Magic Meal Kits)** Make.com app. It spans the official Notion API (bulk operations, data-source queries, comments, users) and the unofficial workspace API (publish, teams, invites, AI summaries). ## Authentication Notion calls need **two** credentials (see [Authentication](/authentication)): * `X-API-KEY` — your MMK deployment key. * `X-Notion-Token` — your Notion integration / internal token. **The caller supplies this** (it is not stored server-side, unlike Plaud/Tiro). Unofficial-API operations (publish, teams, invites, config, AI summary, transcription, download) additionally need `X-Notion-Space-ID` and `X-Notion-User-ID`. These map to the Notion Token / Space ID / User ID fields on the Make connection. Most Notion endpoints are **Basic**. A few are **Pro** (`bulk-duplicate-check`, `bulk-page-update`, file-upload, AI summaries, comments, users, native markdown update). A Basic key on a Pro route gets `400` `you are not a magic meal kits PRO user`. ## Endpoint groups | Group | Examples | Tier | | ------------------------ | ------------------------------------------------------------------------------------------ | ------- | | **Bulk operations** | insert / update / upsert / delete | Basic | | | duplicate-check, page-update (raw) | **Pro** | | **Database & schema** | schema, update/upsert/duplicate-check schema, property options, list items | Basic | | **Pages & content** | markdown (blocks/native), create page from markdown | Basic | | | native page markdown update (v3) | **Pro** | | **Data sources (v2)** | list data sources, query database/data source, get page, apply template, simplified schema | Basic | | **Publishing** | publish / unpublish, page & database-item config | Basic | | **Workspace & teams** | teams, team/workspace invite & remove, guest invite/revoke, subscription | Basic | | **Files** | file-upload-direct, export/download | Basic | | | file-upload | **Pro** | | **Transcription** (v2) | page transcriptions, get transcription by block | Basic | | **AI, comments & users** | AI summary (v1/v2/auto), comments, users | **Pro** | The official-API **comments** and **users** endpoints additionally require an `X-Notion-Official-Token` header (your official Notion integration token). ## Notes * **Database vs data source.** Multi-data-source databases return empty properties from the database ID — pass `data_source_id` (or `notion_id` to auto-detect) so schema and writes resolve correctly. Bulk requests accept all three identifiers (priority: `data_source_id` > `notion_id` > `database_id`). * **Bulk limits.** Up to 100 records/page IDs per call; tune throughput with the optional `config` block. Rate limited to \~3 req/s (matching Notion's API). * **Query results** include both raw `properties` and flattened `simple_properties`, plus `warnings` for invalid filters — check them when a filter silently matches nothing. * **Markdown engines.** `engine: "blocks"` (default) uses the in-process parser; `engine: "native"` routes to Notion's native markdown API for in-place edits. * **Page permission is required (most common `401`).** Issuing the integration token is not enough — the integration must be **granted access to the page/database** you operate on (add it via the page's **Connections** menu, at the top-level page/DB). A token without that access returns `401` / permission errors on every call. See [Fix Notion connection & permission errors](/operations/notion-connection). * **Rich Text 2,000-char block limit.** Notion caps each rich-text block at 2,000 characters, so long markdown is split across multiple blocks on conversion. `raw` and `refined` outputs can differ slightly in length/wording — choose the one that fits your use case. Use the interactive playground on each endpoint page to try a request with your own deployment host, API key, and Notion token. # API Reference Source: https://docs.magicmealkits.com/api-reference/overview Base URL, conventions, and the endpoint groups documented here. ## Base URL ``` https://magic-meal-kits-xxxxx.run.app/api/v1 ``` Replace the host with your deployment's Cloud Run URL. Some features live under `/api/v2/notion` and `/api/v3/notion`. ## Conventions * **Auth:** `X-API-KEY` header on every request (see [Authentication](/authentication)). * **Errors:** `{ "success": false, "error": "..." }` with standard HTTP status codes. * **Compatibility:** shipped request/response shapes are kept backward compatible — new behavior is opt-in via a query param or flag. Existing callers keep their wire contract. ## Documented groups **Skeleton page.** Per-group reference pages and the interactive OpenAPI playground land in follow-up PRs. The groupings below are the planned public surface — adjust the public/private split before authoring. ### Core (planned: documented + interactive playground) The broadly useful, stable endpoints most automations are built on: * **Documents & media** — PDF, YouTube, Transcription, Video * **Content & utilities** — Notion (bulk ops, AI summary, data sources, official API), Slack (markdown → blocks), JSON extract, ISO 8601, Parser, JavaScript execution * **Social & messaging** — Threads, Plaud, Tiro ### Vertical / regional integrations (planned: documented) Narrower-audience integrations, grouped separately: * Naver Commerce, Naver Blog, Coupang, Imweb, Skool, Solapi, Kakao, Paymint, Remember ### Internal (not published) Operational and transport endpoints intentionally kept out of the public reference — OAuth2 token internals, the MCP JSON-RPC transport (covered in the [MCP](/mcp/overview) tab instead), the Make.com RPC passthrough, Cloud Tasks plumbing, and license/activation endpoints. # Append/convert markdown Source: https://docs.magicmealkits.com/api-reference/pages-&-content/appendconvert-markdown /api-reference/notion/openapi.json post /api/v1/notion/markdown Converts markdown to Notion blocks and appends to a page. `engine` selects the legacy in-process parser (`blocks`, default) or Notion's native enhanced-markdown API (`native`). Requires a **Basic** license. # Create page from markdown Source: https://docs.magicmealkits.com/api-reference/pages-&-content/create-page-from-markdown /api-reference/notion/openapi.json post /api/v1/notion/page/create-markdown Creates a new page (under a parent page or database) with content built from markdown. Requires a **Basic** license. # Update page markdown (native) Source: https://docs.magicmealkits.com/api-reference/pages-&-content/update-page-markdown-native /api-reference/notion/openapi.json patch /api/v3/notion/page/{page_id}/markdown In-place edit of a page's content via Notion's native markdown API (insert/replace/update content). **Pro license required.** # Plaud Source: https://docs.magicmealkits.com/api-reference/plaud/overview Read your Plaud voice-recorder library — recordings, transcripts, AI summaries, note tabs, devices, and search. The Plaud group powers the **Plaud (Magic Meal Kits)** Make.com app. It is a facade over Plaud's web API — mostly reads (recordings, transcripts, summaries, search) plus a set of writes (rename, trash, tag/organize, and auto transcribe + summarize). Your server holds your Plaud credentials in Secret Manager, so callers only ever send the MMK `X-API-KEY` header (see [Authentication](/authentication)). **Every Plaud endpoint requires a Pro license.** A Basic key is rejected with `400` and `you are not a magic meal kits PRO user`. ## Endpoints Every endpoint below is **Pro**-only. ### User & system | Endpoint | What it does | | ---------------------------------- | --------------------------------------------------------- | | `GET /plaud/user/me` | Profile, membership tier, remaining transcription seconds | | `GET /plaud/user/feature-access` | Feature-flag payload (loose upstream envelope) | | `GET /plaud/doctor` | Live connectivity health check (`ok`, per-check status) | | `GET /plaud/membership/status` | Membership / free-trial state | | `GET /plaud/config` | Client config (`config/init`) | | `GET /plaud/combine/running-tasks` | In-flight combine (merge-audio) tasks | ### Files | Endpoint | What it does | | ------------------------------------- | --------------------------------------------------------------- | | `GET /plaud/files` | List recordings (paginated, sortable) | | `GET /plaud/files/{id}` | Recording metadata only | | `PATCH /plaud/files/{id}` | Rename a recording → `204` | | `GET /plaud/files/{id}/fetch` | Bundle: file + transcript + summary + share + audio in one call | | `GET /plaud/files/{id}/share` | Private/public share states | | `POST /plaud/files/{id}/ack-pull` | Acknowledge device pull → `204` | | `POST /plaud/files/trash` | Soft-delete (trash) recordings, recoverable → `204` | | `GET /plaud/sync` | Aggregate multiple recordings + attachments in one call | | `GET /plaud/files/webhook-candidates` | Poll ready-to-ship recordings (new-recording trigger) | ### Content | Endpoint | What it does | | ------------------------------------ | --------------------------------------------------------- | | `GET /plaud/files/{id}/transcript` | Transcript (optionally rendered to text/markdown/srt/vtt) | | `GET /plaud/files/{id}/summary` | AI Markdown summary (images as pre-signed URLs) | | `GET /plaud/files/{id}/tabs` | List named note tabs (Summary, Key Points, …) | | `GET /plaud/files/{id}/tabs/content` | One tab's content, by `tab_id` or `template` | | `GET /plaud/files/{id}/audio-url` | Pre-signed S3 URL for the original audio | ### Folders (tags) | Endpoint | What it does | | ------------------------------- | ------------------------------------------------------- | | `GET /plaud/tags` | List tags (folders) | | `POST /plaud/tags` | Create a tag → returns the new tag id | | `POST /plaud/files/update-tags` | Assign a tag (or clear with empty `filetag_id`) → `204` | | `POST /plaud/files/organize` | One-call resolve-or-create tag + assign | ### AI (transcribe + summarize) | Endpoint | What it does | | --------------------------------------- | --------------------------------------------------------- | | `POST /plaud/files/{id}/transsumm` | Start transcribe + summarize (async) — `402` on low quota | | `POST /plaud/files/{id}/transsumm/wait` | Trigger, poll to completion, return the bundle | | `GET /plaud/ai/status` | AI task status for `file_ids` (comma-separated) | | `GET /plaud/ai/trans-status` | Total / remaining transcription seconds | | `GET /plaud/user/transcription-quota` | `is_starter` / `usage_reached` flags | | `GET /plaud/summary/models` | LLM models available for summaries | ### Search | Endpoint | What it does | | --------------------------- | ----------------------------------- | | `GET /plaud/search` | Full-text search across transcripts | | `GET /plaud/search/history` | Recent search queries | ### Devices & webhooks | Endpoint | What it does | | --------------------------------- | -------------------------------------------------- | | `GET /plaud/devices` | Bound Plaud hardware | | `POST /plaud/files/{id}/dispatch` | POST a recording's payload to a caller webhook URL | ## Triggers The **Watch New Note** instant trigger in the Make app is delivered by your server's webhook orchestrator — it is not an endpoint you call. The **Watch New Recordings** polling trigger reads `GET /plaud/files/webhook-candidates`, which returns only recordings that are ready (not trashed, transcribed, and summarized). ## Notes * **Readiness.** Use the `is_trans` / `is_summary` flags (on file objects) or the `409` not-ready response to skip recordings whose transcript/summary is still generating. * **Pre-signed URLs expire.** Audio URLs and summary image URLs are short-lived S3 links (\~15 minutes) — fetch and use them promptly. * **One bundle call.** Prefer `/files/{id}/fetch?include=transcript,summary` over three separate round trips when you need multiple attachments for the same recording. * **Reconnect on `401`.** A `401` means your stored Plaud credentials were rejected (revoked/expired) — reconnect your Plaud account on the Magic Meal Kits app. Use the interactive playground on each endpoint page to try a request with your own deployment host and API key. # Publish a page Source: https://docs.magicmealkits.com/api-reference/publishing/publish-a-page /api-reference/notion/openapi.json post /api/v1/notion/publish Makes a Notion page publicly accessible and returns the public URL. Uses the unofficial API — also requires `X-Notion-Space-ID` and `X-Notion-User-ID`. Requires a **Basic** license. # Set database item configuration Source: https://docs.magicmealkits.com/api-reference/publishing/set-database-item-configuration /api-reference/notion/openapi.json post /api/v1/notion/database-item/config Updates the visual configuration of a database item block. Unofficial API — also requires `X-Notion-Space-ID` and `X-Notion-User-ID`. Requires a **Basic** license. # Set page block configuration Source: https://docs.magicmealkits.com/api-reference/publishing/set-page-block-configuration /api-reference/notion/openapi.json post /api/v1/notion/page/config Updates the visual configuration of a page block (width, text formatting, table of contents, etc.). Unofficial API — also requires `X-Notion-Space-ID` and `X-Notion-User-ID`. Requires a **Basic** license. # Unpublish a page Source: https://docs.magicmealkits.com/api-reference/publishing/unpublish-a-page /api-reference/notion/openapi.json post /api/v1/notion/unpublish Removes public access from a previously published page. Unofficial API — also requires `X-Notion-Space-ID` and `X-Notion-User-ID`. Requires a **Basic** license. # Get search history Source: https://docs.magicmealkits.com/api-reference/search/get-search-history /api-reference/plaud/openapi.json get /plaud/search/history Returns recent search queries with counts. **Pro license required.** # Search transcripts Source: https://docs.magicmealkits.com/api-reference/search/search-transcripts /api-reference/plaud/openapi.json get /plaud/search Full-text search across all your transcripts. Returns matching files with hit context. **Pro license required.** # Get client config Source: https://docs.magicmealkits.com/api-reference/system/get-client-config /api-reference/plaud/openapi.json get /plaud/config Returns Plaud's `config/init` payload (feature toggles and client configuration) as a loose upstream envelope. **Pro license required.** A Basic key is rejected with `400` and `you are not a magic meal kits PRO user`. # Get membership status Source: https://docs.magicmealkits.com/api-reference/system/get-membership-status /api-reference/plaud/openapi.json get /plaud/membership/status Returns the account's free-trial / membership state as a loose upstream envelope. **Pro license required.** A Basic key is rejected with `400` and `you are not a magic meal kits PRO user`. # Health check Source: https://docs.magicmealkits.com/api-reference/system/health-check /api-reference/plaud/openapi.json get /plaud/doctor Runs a live connectivity probe against Plaud (user profile + device list in parallel) and reports whether the stored credentials work. Returns `200` when both checks pass, `401` when Plaud rejected the token (reconnect), `502` on other upstream failures. **Pro license required.** A Basic key is rejected with `400` and `you are not a magic meal kits PRO user`. # List running combine tasks Source: https://docs.magicmealkits.com/api-reference/system/list-running-combine-tasks /api-reference/plaud/openapi.json get /plaud/combine/running-tasks Returns the currently in-flight combine (merge-audio) tasks. The web app polls this to drive a progress indicator; the list is usually empty. **Pro license required.** A Basic key is rejected with `400` and `you are not a magic meal kits PRO user`. # Threads Source: https://docs.magicmealkits.com/api-reference/threads/overview Read your Meta Threads posts, insights, replies, and conversations — and sync them into Notion for search and analysis. The Threads group powers the **Threads automation (beta)** Make.com app. It reads your Meta Threads posts, engagement insights, replies, and full conversation trees so you can store and search them in a Notion database. Callers authenticate with the MMK `X-API-KEY` header (or a Bearer token). The Threads account itself is connected once from the **Magic Meal Kits app's connection page** — the credential is stored **server-side** on your deployment, so callers never pass the Threads token directly (see [Authentication](/authentication)). **Closed beta — approved accounts only.** The Threads automation is currently an invite-only beta. Only accounts that **applied and were approved** can use it. Apply on the [Threads beta application page](https://magicmealkits.notion.site/mmk-threads), and the team will send account-activation instructions after review. Requests from non-approved accounts will not be provisioned. After approval, a **tester invite** is sent to your Threads account. You must **accept it in the Threads app** (profile → menu ☰ → **Settings → Account → Website permissions → Invites** → accept **Magic Meal Kits**) *before* connecting the account — otherwise the connection fails with `The user has not accepted the invite to test the app` (error `1349245`). See the [FAQ](/faq) for the step-by-step walkthrough. **The data endpoints require a Pro license.** A Basic key is rejected with `400` and `you are not a magic meal kits PRO user`. The `health` endpoint only requires a valid API key or Bearer token. ## Endpoints | Endpoint | Tier | What it does | | ---------------------------------------------- | ------- | ----------------------------------------------------------------- | | `GET /threads/health` | API key | Liveness check for the Threads routes | | `GET /threads/user/threads` | **Pro** | Paginated list of a user's posts (optional per-post insights) | | `GET /threads/user/insights` | **Pro** | Profile insights — views, likes, follower demographics, … | | `GET /threads/media/replies` | **Pro** | Direct replies to a single post | | `GET /threads/media/conversation` | **Pro** | Full conversation tree for a single post | | `POST /threads/media/conversations` | **Pro** | Conversations for multiple posts in one call | | `GET /threads/media/conversation/emails` | **Pro** | Email addresses surfaced in a post's conversation | | `GET /threads/user/threads-with-conversations` | **Pro** | Posts from the last N months with all their conversations | | `GET /threads/analytics/top-engaged-users` | **Pro** | Top engaged users with reply / participation / engagement metrics | All paths are under the `/api/v1` prefix (e.g. `GET /api/v1/threads/user/threads`). ## Notes * **Connect once from the app.** Link your Threads account on the [connection page](https://make.magicmealkits.com/connections) in the Magic Meal Kits app; the credential is stored server-side, so you call the data endpoints with just your MMK API key. If the stored token expires, reconnect there and redeploy your MCP server with the latest version. * **Page in batches.** The Threads API caps a page at 100 items. When syncing to Notion, keep batches under 100 records (enable the date-range advanced option) to avoid performance issues. * **Insights are optional and slower.** `include_insights=true` on `/user/threads` fetches per-post metrics with bounded concurrency (`max_concurrency`) — expect longer response times for large accounts. Server not responding, Google Cloud billing, or stopping/reinstalling the service? See [Troubleshooting](/troubleshooting) — those topics apply to every deployment, not just Threads. # Tiro Source: https://docs.magicmealkits.com/api-reference/tiro/overview Upload audio and manage Tiro meeting notes — transcripts, summaries, threads, webhooks, and API keys. The Tiro group powers the **티로 Tiro (Magic Meal Kits)** Make.com app. Upload audio for AI transcription, then read transcripts and summaries, organize notes into threads, subscribe to events via webhooks, and manage Tiro API keys. All routes are under `/api/v1/tiro` and authenticate with the `X-API-KEY` header only (see [Authentication](/authentication)). Your Tiro token is set once on the connection page in the Magic Meal Kits app and resolved server-side, so no per-request token header is needed. **Every Tiro endpoint requires a Pro license.** A Basic key is rejected with `400` `you are not a magic meal kits PRO user`. A missing/invalid Tiro token returns `401`. This documents the **MMK-proxy** Tiro app (it calls your Magic Meal Kits server). A separate official-API-direct Tiro app talks to `api.tiro.ooo` directly and is **not** covered here. ## Endpoints | Endpoint | Tier | What it does | | --------------------------------------- | ------- | --------------------------------------------------------- | | `POST /tiro/upload` | **Pro** | Upload an audio file (multipart) for transcription | | `POST /tiro/upload-from-url` | **Pro** | Transcribe audio from an external URL (e.g. Google Drive) | | `POST /tiro/notes` | **Pro** | Create a meeting note | | `GET /tiro/notes/{note_id}` | **Pro** | Get note status & metadata | | `PUT /tiro/notes/{note_id}` | **Pro** | Replace note settings | | `PATCH /tiro/notes/{note_id}` | **Pro** | Partially update a note | | `DELETE /tiro/notes/{note_id}` | **Pro** | Delete a note | | `GET /tiro/notes/{note_id}/transcripts` | **Pro** | Raw / refined / translated transcripts | | `GET /tiro/notes/{note_id}/summaries` | **Pro** | Summaries keyed by template | | `GET /tiro/threads` | **Pro** | List threads (folders) | | `GET /tiro/locales` | **Pro** | Supported locales | | `GET\|POST /tiro/webhooks` | **Pro** | List / create webhooks | | `PATCH\|DELETE /tiro/webhooks/{id}` | **Pro** | Update / delete a webhook | | `GET /tiro/webhook-event-types` | **Pro** | Available webhook event types | | `GET\|POST /tiro/api-keys` | **Pro** | List / create Tiro API keys | | `DELETE /tiro/api-keys/{id}` | **Pro** | Delete a Tiro API key | ## Notes * **Auth applies to every route.** All `/api/v1/tiro` routes run the Tiro auth middleware, so a Tiro connection must be configured (server-side stored token) — `GET /tiro/locales` included, even though its handler doesn't use the token. * **Numeric IDs.** `note_id` and `webhook_id` are numeric — the handlers parse them as integers, so a note GUID won't work; use the numeric `note_id`. * **Locale codes** use the `xx_YY` form, e.g. `en_US`, `ko_KR`, `ja_JP`. * **Transcription is async.** After an upload, poll `GET /tiro/notes/{note_id}` until `is_transcribed` is true, then fetch transcripts/summaries. * **Threads = folders.** Assign a note to threads at create time (`thread_ids`) or with `add_thread_ids` on `PATCH`. Removing a note from a thread via `remove_thread_ids` is not yet implemented (the API returns `501`). * **Use the MMK "Watch … Events" webhooks — don't mix them with other Tiro webhooks.** Each webhook encodes how to read values from its specific event type, so create the webhook with the Magic Meal Kits **Watch … Events** trigger and use it on its own. Mixing it with a webhook created elsewhere in Tiro won't map the event fields correctly. Use the interactive playground on each endpoint page to try a request with your own deployment host, API key, and Tiro API key. # Get a transcription Source: https://docs.magicmealkits.com/api-reference/transcription/get-a-transcription /api-reference/notion/openapi.json get /api/v2/notion/transcription/{block_id} Returns the transcription for a single audio block. Also requires `X-Notion-User-ID`. Requires a **Basic** license. # List page transcriptions Source: https://docs.magicmealkits.com/api-reference/transcription/list-page-transcriptions /api-reference/notion/openapi.json get /api/v2/notion/page/{page_id}/transcriptions Lists audio-block transcriptions found on a page. Also requires `X-Notion-User-ID`. Requires a **Basic** license. # Upload audio Source: https://docs.magicmealkits.com/api-reference/upload/upload-audio /api-reference/tiro/openapi.json post /tiro/upload Uploads an audio file (multipart/form-data) and starts transcription. **Pro license required.** # Upload audio from URL Source: https://docs.magicmealkits.com/api-reference/upload/upload-audio-from-url /api-reference/tiro/openapi.json post /tiro/upload-from-url Uploads audio from an external URL (e.g. Google Drive) — Tiro downloads it directly. **Pro license required.** # Get current user Source: https://docs.magicmealkits.com/api-reference/user/get-current-user /api-reference/plaud/openapi.json get /plaud/user/me Returns the current Plaud user's profile, membership tier, and remaining transcription seconds. **Pro license required.** # Get feature access Source: https://docs.magicmealkits.com/api-reference/user/get-feature-access /api-reference/plaud/openapi.json get /plaud/user/feature-access Returns the account's feature-flag payload as a loose upstream envelope (the flag set changes over time, so it is passed through verbatim). **Pro license required.** A Basic key is rejected with `400` and `you are not a magic meal kits PRO user`. # Dispatch a recording to a webhook Source: https://docs.magicmealkits.com/api-reference/webhooks/dispatch-a-recording-to-a-webhook /api-reference/plaud/openapi.json post /plaud/files/{id}/dispatch Fetches the recording (with transcript + summary), flattens it into a webhook payload, and POSTs it to the caller-supplied `webhook_url`. Stateless — deduplication is the orchestrator's job. A `200` with `success=false` means the dispatch ran end-to-end but your webhook URL returned a non-2xx status. **Pro license required.** A Basic key is rejected with `400` and `you are not a magic meal kits PRO user`. # Poll new-recording candidates Source: https://docs.magicmealkits.com/api-reference/webhooks/poll-new-recording-candidates /api-reference/plaud/openapi.json get /plaud/files/webhook-candidates Returns the most-recently-edited recordings that are READY to ship (not trashed, transcribed, and summarized), newest first. This is the polling source behind the **Watch New Recordings** Make trigger. **Pro license required.** # Get workspace subscription Source: https://docs.magicmealkits.com/api-reference/workspace-&-teams/get-workspace-subscription /api-reference/notion/openapi.json get /api/v1/notion/subscription Returns subscription/plan info for the workspace. Unofficial API — also requires `X-Notion-Space-ID` and `X-Notion-User-ID`. Requires a **Basic** license. # Invite guest to a page Source: https://docs.magicmealkits.com/api-reference/workspace-&-teams/invite-guest-to-a-page /api-reference/notion/openapi.json post /api/v1/notion/invite Invites a guest to a specific page with a permission level. Unofficial API — also requires `X-Notion-Space-ID` and `X-Notion-User-ID`. Requires a **Basic** license. # Invite user to team Source: https://docs.magicmealkits.com/api-reference/workspace-&-teams/invite-user-to-team /api-reference/notion/openapi.json post /api/v1/notion/team-invite Adds a user to a team by email. Unofficial API — also requires `X-Notion-Space-ID` and `X-Notion-User-ID`. Requires a **Basic** license. # Invite user to workspace Source: https://docs.magicmealkits.com/api-reference/workspace-&-teams/invite-user-to-workspace /api-reference/notion/openapi.json post /api/v1/notion/workspace-invite Invites a user to the workspace with a role. Unofficial API — also requires `X-Notion-Space-ID` and `X-Notion-User-ID`. Requires a **Basic** license. # List teams Source: https://docs.magicmealkits.com/api-reference/workspace-&-teams/list-teams /api-reference/notion/openapi.json post /api/v1/notion/teams Lists workspace teams (optionally filtered by `teamTypes`). Unofficial API — also requires `X-Notion-Space-ID` and `X-Notion-User-ID`. Requires a **Basic** license. # Remove user from team Source: https://docs.magicmealkits.com/api-reference/workspace-&-teams/remove-user-from-team /api-reference/notion/openapi.json post /api/v1/notion/team-remove Removes a user from a team by email. Unofficial API — also requires `X-Notion-Space-ID` and `X-Notion-User-ID`. Requires a **Basic** license. # Remove user from workspace Source: https://docs.magicmealkits.com/api-reference/workspace-&-teams/remove-user-from-workspace /api-reference/notion/openapi.json post /api/v1/notion/workspace-remove Removes a user from the workspace by email. Unofficial API — also requires `X-Notion-Space-ID` and `X-Notion-User-ID`. Requires a **Basic** license. # Revoke a guest invitation Source: https://docs.magicmealkits.com/api-reference/workspace-&-teams/revoke-a-guest-invitation /api-reference/notion/openapi.json post /api/v1/notion/revoke Revokes a guest's access to a page. Unofficial API — also requires `X-Notion-Space-ID` and `X-Notion-User-ID`. Requires a **Basic** license. # Authentication Source: https://docs.magicmealkits.com/authentication API key authentication and license tiers for the Magic Meal Kits API. ## API key Every API request authenticates with the API key set on your deployment (`MMK_API_KEY`). Send it in the `X-API-KEY` header: ```bash theme={null} curl -X POST "https://magic-meal-kits-xxxxx.run.app/api/v1/youtube/transcript/v2" \ -H "X-API-KEY: your-api-key" \ -H "Content-Type: application/json" \ -d '{"video_url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ", "format": "json"}' ``` The MCP endpoint also accepts `Authorization: Bearer your-api-key` for clients that prefer the bearer scheme (e.g. Claude.ai). See [MCP Overview](/mcp/overview). ## Where to get your API URL and key Your deployment's **API URL** (your Cloud Run host) and **API key** are shown on the **app status / connection page in the Magic Meal Kits app** — not configured by hand. Open your deployment there, copy the URL and key, and use them wherever you call the API. In the Make.com custom apps, you register these once on the connection: enter the **Magic Meal Kits service URL** and **API key**, and every module reuses them. Connection setup and management is centralized at [make.magicmealkits.com/connections](https://make.magicmealkits.com/connections). For most products (Plaud, Tiro, Threads) the per-service credentials are stored **server-side** on your deployment — the MMK API key is the only secret the caller handles. Connect or reconnect those accounts (including the Threads OAuth account) from the Magic Meal Kits app, not through these endpoints. If a stored token expires, reconnect from the app and redeploy your server with the latest version. **Notion is the exception:** the caller supplies the Notion token per request via the `X-Notion-Token` header (plus `X-Notion-Space-ID` / `X-Notion-User-ID` for unofficial operations). See the [Notion overview](/api-reference/notion/overview). ## License tiers Endpoints are gated by your license tier: | Tier | Applies to | | --------- | -------------------------------------------------------------------- | | **Basic** | Core utility endpoints (group-level default on most routes) | | **Pro** | Pro-only features — added per-route; the default for newer endpoints | A Pro-gated route called with a Basic key returns a license error. Most Pro gates (`license.RequirePro()` — **Plaud**, **Tiro**, and **Notion**'s Pro-only operations) reject with **`400`** and the message `you are not a magic meal kits PRO user`. The **YouTube** `metadata` Pro gate is the exception — it returns **`403`** with `Pro account required`. Per group: YouTube transcript is Basic (metadata is Pro); Plaud and Tiro are Pro-only; Notion is Basic with selected Pro-only operations. ## Error format Error shapes vary slightly by group — rely on each operation's response schema. Most errors carry an `error` (or `success: false` + `error`) field with a message. | Status | Meaning | | ----------- | ----------------------------------------------------------------------------------------------------------------------------- | | `400` | Invalid parameters/body, or a `license.RequirePro()` route called with a Basic key (`you are not a magic meal kits PRO user`) | | `401` | Missing/invalid API key, or a rejected third-party credential (reconnect the account) | | `402` | Quota exhausted (e.g. Plaud transcription) | | `403` | YouTube `metadata` Pro gate (`Pro account required`) | | `404` | Not found | | `409` | Resource not ready yet (e.g. transcript still generating) | | `429` | Rate limited | | `500`–`504` | Upstream/server error or timeout | # FAQ Source: https://docs.magicmealkits.com/faq Answers to the most common Magic Meal Kits questions — finding modules, Notion connection/permission errors, timeouts and duplicate runs, and where to manage connections. The most common questions from the community, with the fix for each. For server-level operations (503 errors, slow server, logs, stopping the service) see the [Troubleshooting](/troubleshooting) guides. Two things to check: * **Notion Plus is a Pro feature.** It requires a **Pro** license — make sure your deployment uses a Pro license. * **Add the Notion Plus app and set up its connection.** The modules appear in Make once the Notion Plus custom app is added and connected. Manage connections at [make.magicmealkits.com/connections](https://make.magicmealkits.com/connections). **Bulk Notion (벌크노션) is a separate product.** It automates Notion template updates directly and does **not** require a Magic Meal Kits install or a Make connection — so its features won't appear as Make modules. The most common cause is that your Notion integration **hasn't been granted access to the page or database** you're automating. Issuing the token is not enough — you must add the integration to the page/DB itself. Full step-by-step fix: [Fix Notion connection & permission errors](/operations/notion-connection). Two separate effects to know about: * **Timeouts.** When a Notion write fails, the Magic Meal Kits server **retries internally**. Those retries can exceed the Make module's time limit and surface as a timeout. Set an explicit request **timeout** and keep payloads within limits. * **Duplicate runs.** Make's **"allow storing of incomplete executions"** option re-runs failed scenarios, which can look like duplicate writes. Review that setting if you see repeats. More detail: [Make integration tips & gotchas](/operations/make-integration-tips). When linking your Threads account you may see this error: ```json theme={null} {"error_message":"Invalid Request: The user has not accepted the invite to test the app.","error_code":1349245} ``` The Threads automation is a **closed beta**. After your [beta application](https://magicmealkits.notion.site/mmk-threads) is approved, the team sends a **tester invite** to your Threads account — and Meta requires you to **accept that invite inside the Threads app** before the account can be connected. Accept the invite in the Threads mobile app: 1. Open your **profile** and tap the **menu (☰)** in the top-right corner. 2. Go to **Settings** → **Account**. 3. Tap **Website permissions**. 4. On the **Apps and Websites** screen, open the **Invites** tab. 5. Find **Magic Meal Kits** and tap **Accept**. Then return to [make.magicmealkits.com/connections](https://make.magicmealkits.com/connections) and connect your Threads account again. **No invite under the Invites tab?** Your account may not be approved as a tester yet — apply on the [beta application page](https://magicmealkits.notion.site/mmk-threads) and wait for the approval confirmation. Also make sure you're logged in to the **same Threads account** you applied with. A screenshot walkthrough is in the [Threads automation guide (Korean)](https://magicmealkits.notion.site/threads). Cookie/session formats change over time. If a connection starts failing with a cookie or auth error, **re-register (reconnect) the connection** — this clears it in most cases. For Notion specifically, re-setting the Make Notion connection (log out of Notion, then log back in while reconnecting) resolves it. Manage connections at [make.magicmealkits.com/connections](https://make.magicmealkits.com/connections). Connection setup and management is centralized at [make.magicmealkits.com/connections](https://make.magicmealkits.com/connections). Your deployment's API URL and key are shown there (and on the App Status page) — you don't configure them by hand. See [Authentication](/authentication). These are covered by the Troubleshooting guides: # Installation Source: https://docs.magicmealkits.com/installation Deploy the Magic Meal Kits server into your own Google Cloud project, and upgrade it later. You install Magic Meal Kits from the web app at [make.magicmealkits.com](https://make.magicmealkits.com) — a one-click wizard deploys the MMK image into **your own** Google Cloud project. You own the deployment, the data, and the URL. ## Prerequisites Your subscription provides a **license key** and an **API key** used by the server. Use the **same** account you sign in to Google Cloud with. Cloud Run requires **billing enabled**. MMK itself is free — infrastructure is billed by Google, and the free tier covers light usage. **Install with a personal Gmail account, not a Google Workspace account.** The deployment wizard currently supports installing into the GCP environment of a **regular Gmail account** only. (Your Make account and the accounts you connect from Make may use Workspace freely — this restriction applies only to the Magic Meal Kits install.) ## Deploy your server Open [make.magicmealkits.com/deploy](https://make.magicmealkits.com/deploy) and follow the wizard. Click **Connect to Google Cloud** and grant access. Use the **same Google account** you use for Google Cloud so the wizard can see your projects and create resources. Choose the **Magic Meal Kits** template (or **Magic Meal Kits Pro**, depending on your plan). Select an existing GCP project, or **create a new one** (project names are 6–30 characters, lowercase letters/numbers/hyphens, and must start with a letter). The wizard then **checks billing** and blocks deployment until it's enabled — enable it in the Google Cloud Billing console and click **Recheck Billing**. Pick a **resource tier**, then click **Let's Go!**. | Tier | Resources | Suited for | Approx. GCP cost | | --------------- | --------------- | ----------------------- | ---------------------- | | **Free** | 1 vCPU / 256 MB | Development & testing | Free within GCP limits | | **Basic** | 1 vCPU / 512 MB | Production workloads | \~\$5/month | | **Performance** | 2 vCPU / 1 GB | High-traffic production | \~\$15/month | Magic Meal Kits is free to use. Infrastructure costs are billed directly by Google Cloud, which includes a generous free tier (vCPU-seconds, memory-seconds, and \~2M requests/month). Actual cost depends on your usage and region. On the success screen, use **Visit Your Application** to open your server, or **View Deployment Status** to open the [App Status](https://make.magicmealkits.com/app-status) page. ## What gets set up The installer provisions everything the server needs **in your project**: * **Cloud Run** service `magic-meal-kits` (region `us-west1`) * **Firestore** `(default)` database — jobs and sync state * **BigQuery** dataset `threads_data` — search-heavy posts/replies storage * **Secret Manager** and **Cloud Tasks** * The required Google APIs and IAM roles, and a public (invokable) URL It also sets these environment variables on the service: | Variable | Purpose | | ---------------------- | ------------------------------------- | | `GOOGLE_CLOUD_PROJECT` | Your project ID | | `MMK_LICENSE_KEY` | Your license key | | `MMK_API_KEY` | API key used to authenticate requests | | `APP_TYPE` | Application type | ## After deploying Your **server URL** and **API key** are shown on the [App Status](https://make.magicmealkits.com/app-status) page — that's where you copy them from (you don't hand-configure them). How the `X-API-KEY` header and license tiers work. Make your first call to your deployment. ## Upgrading (redeploy) To move your deployment to a newer server version, open [App Status](https://make.magicmealkits.com/app-status) and click **Update Service (Redeploy)** under **Service Management**. The page shows your current **Version** and **Last Deployed** time. The redeploy is an **in-place upgrade** — it replaces the running container with the latest version and creates a new Cloud Run revision. | Preserved | Changes | | ------------------------------ | ----------------------------------- | | Server URL, API key, license | The container **image / version** | | GCP project and region | A new Cloud Run revision is created | | **Firestore & BigQuery data** | — | | Environment variables / config | — | Redeploying does **not** lose data and does **not** change your URL or API key — only the server version moves forward. There's no automatic "update available" banner; you trigger the upgrade from App Status when you want it. # Magic Meal Kits Source: https://docs.magicmealkits.com/introduction An automation server you deploy into your own GCP project — drive it from your code, from Make.com, or from an LLM over MCP. ## What is Magic Meal Kits? Magic Meal Kits (MMK) is a self-hosted automation server. When you purchase a license, the installer deploys the MMK image into **your own Google Cloud project** (Cloud Run, `us-west1`) together with the Firestore, BigQuery, Secret Manager, and Cloud Tasks resources it needs. You own the deployment, the data, and the URL. Once it's running you can drive it three ways: \~130 endpoints for Notion, Threads, Plaud, Tiro, PDF, YouTube, transcription, Slack, and more. The surface you build automations against. Connect the server's MCP tools to Claude, Cursor, or any MCP client and let the model call MMK directly. The `mmk` CLI wraps the most common operations for the terminal — and powers the ready-made [skills](/cli/skills). ## Vibe-code against your server These docs are also available to your LLM as an **MCP server** (`/mcp`) and as `llms.txt`. Point Claude or Cursor at the docs, describe the automation you want, and the model reads this API reference and writes the code that calls *your* MMK deployment. See [Docs as MCP](/mcp/docs-as-mcp). The docs MCP serves **documentation content** — it lets an LLM read and search this reference. It is not a live proxy to your server; the code the LLM writes calls your own deployment's URL with your own API key. ## Where to go next # Fix persistent 503 errors (force re-activate) Source: https://docs.magicmealkits.com/operations/fix-503-force-sync Use this when Make.com scenarios keep failing with 503 from Magic Meal Kits modules — force-reactivate the server from the App Status page. When your Magic Meal Kits modules in Make repeatedly return **503**, the link between Make and your server has dropped. Forcing the server to re-activate from **App Status** restores it. ## When you need this **Symptom:** A Make scenario keeps failing on a Magic Meal Kits module with a **503** error, and retrying doesn't help — the errors repeat. This means your server is temporarily unreachable. Make scenario showing repeated 503 errors on a Magic Meal Kits module ## Fix Go to [make.magicmealkits.com/app-status](https://make.magicmealkits.com/app-status). Magic Meal Kits App Status page Find the **Magic Meal Kits server** entry and click it. Selecting the Magic Meal Kits server on App Status Click **Activate** to force the server connection to re-activate. This clears the 503 errors. Activate button to force re-activation After re-activating, give it a moment and re-run your scenario. If 503s persist for more than a few minutes, the server may still be warming up — see [Troubleshooting](/troubleshooting) for cold-start behavior, or [upgrade the memory tier](/operations/upgrade-performance) if the errors coincide with heavy load. ## Still stuck? If the errors continue after re-activating, contact support and include your account email and a short description of the symptom: [Contact 푸르공 on KakaoTalk](https://open.kakao.com/me/pureugong). For a faster diagnosis, attach your [system logs](/operations/share-system-logs). # Activate Google Cloud billing (upgrade) Source: https://docs.magicmealkits.com/operations/google-cloud-billing Keep your Magic Meal Kits server running after the Google Cloud free trial: activate billing (upgrade) so the project isn't suspended — plus what it costs. Your Magic Meal Kits server runs in **your own Google Cloud project**. If you started on the Google Cloud **free trial**, you must **activate billing (upgrade)** before the trial ends — otherwise Google Cloud suspends the project and your server stops. **Upgrade is required.** If you were on the Google Cloud free trial, the service is **suspended once the trial ends** unless you complete the upgrade (activate billing). ## How to upgrade On the Magic Meal Kits **App Status** screen, click **Open in Google Cloud Console**. Open in Google Cloud Console button on the Magic Meal Kits App Status screen In Google Cloud Console, look at the notice banner across the top. A free-trial message with an **Activate** (활성화) / **Upgrade** (업그레이드) button means you're still on the free trial. Google Cloud free-trial notice banner with Activate button Click **Upgrade** (업그레이드) / **Activate** (활성화) in the banner and follow the prompt to add a billing account. Once billing is active, the project is no longer time-limited and the server keeps running. Google Cloud Upgrade button in the free-trial banner After upgrading, **double-check that billing is active** on your project. The installer's **Recheck Billing** step (see the [installation guide](/installation)) confirms it before deploying. ## Google Cloud billing * Google Cloud is a **pay-as-you-go** service. * After the free trial ends, an **active billing account is required**. * If billing isn't set up correctly, the service **cannot run**. ## Does Google Cloud charge you? * The service is designed to run **within Google Cloud's free usage tier**. * For **normal use, you typically pay nothing extra**. * Only **heavy/excessive traffic** may incur a small Google Cloud charge. ## Still stuck? If the server doesn't recover right after you activate billing, give it **20–30 minutes** — cold start / propagation can return `503` or `429` for a while, which is normal; don't redeploy repeatedly. If it still fails, [contact support](https://open.kakao.com/me/pureugong) with your account email. # Make integration tips & gotchas Source: https://docs.magicmealkits.com/operations/make-integration-tips Use this when building Make scenarios with Magic Meal Kits — find the modules, set request timeouts, avoid duplicate runs, and stay within Notion rate limits. A few practices that prevent the most common Make-side problems with Magic Meal Kits modules. ## Finding the modules * **Notion Plus is a Pro feature** — it requires a **Pro** license. If a module is missing in Make, also make sure the Notion Plus app is added and its connection is set up. * Set up and manage all connections at [make.magicmealkits.com/connections](https://make.magicmealkits.com/connections). ## Timeouts and retries When a Notion write fails, the Magic Meal Kits server **retries internally** before giving up. If those retries run long, the Make module can hit its time limit and surface a **timeout**. Set an explicit **timeout** on long-running requests (a few seconds is typical), and keep each call within limits — for bulk operations, stay at **≤100 records per call**. ## Avoid duplicate runs Make's **"allow storing of incomplete executions"** option re-runs failed scenarios. Combined with the server-side retry above, this can look like **duplicate writes**. If you see repeats, review that setting on the scenario and decide whether re-running on failure is what you want. ## Stay within Notion rate limits The Notion Plus modules are rate limited to about **3 requests/second** (matching Notion's own API). Don't fan out parallel branches that blow past this — throttle or batch instead. See the [Notion API overview](/api-reference/notion/overview) for bulk limits and the optional `config` block. ## Markdown content Notion **Rich Text blocks have a 2,000-character limit per block**, so Magic Meal Kits splits long markdown into multiple blocks when converting. **Raw** and **Refined** outputs can differ slightly in length/wording — pick the one that matches your use case. Details in the [Notion API overview](/api-reference/notion/overview). # Fix Notion connection & permission errors Source: https://docs.magicmealkits.com/operations/notion-connection Use this when Notion modules fail with 401 or a permission error — grant your Notion integration access to the page/database and re-set the Make connection. By far the most common Notion issue is a **permission error**: the integration token is valid, but it hasn't been **granted access to the specific page or database** you're automating. Issuing the token is only half the setup. ## When you need this **Symptom:** Notion modules fail with **`401`**, a permission error, or "the connection page has no permission" — even though the token looks correct. ## Fix In Notion, create an internal integration and copy its token. This is the value you put in the **Notion Token** field of the Make connection. Open the **page or database you want to automate**, and add your integration to it via its **Connections** menu (top-right **•••** → **Connections** → add your integration). Add it at the **top-level** page/DB so child pages inherit access. This is the step most people miss. A token with no access to the target page returns `401` / permission errors on every call. Enter the **Notion Token** (and, for unofficial operations, the **Space ID** and **User ID**) on the Make Notion Plus connection. Manage your connections at [make.magicmealkits.com/connections](https://make.magicmealkits.com/connections). Run the module with a **plain text** input to confirm the connection works, then build up to your real payload. This isolates a permission problem from a data/formatting problem. ## Still failing? Re-set the connection If access is granted but calls still fail, the stored session may be stale. **Re-register the Notion connection** — log out of Notion, then reconnect while logging back in. Re-creating the connection clears most cookie/session errors. For other Magic Meal Kits products (Plaud, Tiro, Threads) the per-service credentials are stored server-side — reconnect those accounts from [make.magicmealkits.com/connections](https://make.magicmealkits.com/connections). Notion is the exception: the token is supplied per request. See [Authentication](/authentication) and the [Notion API overview](/api-reference/notion/overview). # Reissue (rotate) your API key Source: https://docs.magicmealkits.com/operations/reissue-api-key Use this when your Magic Meal Kits API key (MMK_API_KEY) has leaked — exposed in code, a screenshot, or a public repo. Reissue it to invalidate the old key and redeploy with a new one. If your API key ([`MMK_API_KEY`](/authentication)) was exposed — pasted into client-side code, shared in a screenshot, or committed to a public repository — reissue it. Reissuing generates a brand-new key and redeploys your service so the new key takes effect, making the leaked key useless. ## When you need this Reissue your API key if any of these happened: * The key was committed to a public GitHub repo (including through "vibe coding"). * It appeared in a screenshot, a support message, or client-side code. * You simply suspect someone else has seen it. Your API key authenticates every request to your deployment, so a leaked key lets someone else call your service. See [Authentication](/authentication) for what the key is and where it's used. **Reissuing immediately invalidates your current key — every existing connection that uses it breaks at once.** Your Make.com connection, the CLI, and any MCP client all start failing with `401 Unauthorized` until you update each one with the new key. Your service also redeploys (\~1–2 minutes), during which requests may briefly fail. **Only reissue when you're ready to update every connection right afterward.** Your service URL, license, and data are all kept. ## Reissue your API key Sign in at [make.magicmealkits.com/google-connection](https://make.magicmealkits.com/google-connection). Go to [make.magicmealkits.com/app-status](https://make.magicmealkits.com/app-status). In the **Connection & Access** card, under **API Key**, click **Reissue API key** and confirm. Your service redeploys with a freshly generated key. When the new key appears, copy it. You can also view it any time later with the eye (👁) button next to the API Key field on this page. ## After reissuing — update your clients The old key stops working right away, so update everything that uses it: * **Make.com connection** — this lives in **your Make account**, not on make.magicmealkits.com. Open the **Connections** page for your Make zone — `https://.make.com//connections` — where `` is the region in your Make address bar (e.g. `us1`, `us2`, `eu1`, `eu2`). Open the Magic Meal Kits connection and replace the API key with the new one. * **CLI** — set the new key in your CLI config (the stored `api-key` value). * **MCP clients** — update any MCP client configured with the key. Until each connection has the new key, its requests will fail with `401`. ## Also remove the exposed key Reissuing makes the leaked key useless, but still clean up where it leaked: * Delete the key from your code, screenshots, and any public location. * If it was committed to git, removing it from the current files **does not** erase it from the commit history. Make the repository private, or scrub the key from the history. ## Still stuck? If the reissue doesn't complete or your clients still can't connect after updating the key, [contact support](https://open.kakao.com/me/pureugong) with your account email and a short description of what you're seeing. # Share system logs with support Source: https://docs.magicmealkits.com/operations/share-system-logs Use this when support asks for your Magic Meal Kits logs — download the system logs from Google Cloud and send them, along with your account email and symptom, to support. When you report a problem, support often needs your **system logs** to diagnose it. This guide shows how to capture the logs from Google Cloud and what to send. ## Before you start * You need a Magic Meal Kits account. * You need access to [make.magicmealkits.com/app-status](https://make.magicmealkits.com/app-status). * Have your **account email** and a short **description of the symptom** ready. ## Download your system logs Go to [make.magicmealkits.com/app-status](https://make.magicmealkits.com/app-status) and click **System Logs**. System Logs button on App Status In Google Cloud, click the **magic-meal-kits** service. Selecting the magic-meal-kits service in Google Cloud Take a screenshot of **all** the graphs shown on the screen — you'll send these to support. Service metrics graphs to screenshot Click **Logs** on the left, then click the button on the right. Logs menu in Google Cloud When the view changes, click **Action** on the right. Action button in the logs view Click **Download** at the bottom. Download option for logs Change the number to **10,000**, then start the download. Setting the log download count to 10,000 Check that the download completed. Confirming the log file download When the log file has downloaded, you're ready. Downloaded log file ## Send these to support Share the following **four items** with support via KakaoTalk: * **Your Magic Meal Kits account email** * **A description of the symptom** * **The metrics graph screenshots** (from Step 3) * **The log file** (from Steps 7–8) KakaoTalk support chat: [pf.kakao.com/\_fMgxdn/chat](http://pf.kakao.com/_fMgxdn/chat) # Stop or reinstall the service Source: https://docs.magicmealkits.com/operations/stop-reinstall Use this when you want to stop the Magic Meal Kits service in your Google Cloud project, or reinstall it — including the billing prerequisite for a successful reinstall. You can stop the Magic Meal Kits service at any time and reinstall it whenever you like. ## Stop the service Sign in at [make.magicmealkits.com/google-connection](https://make.magicmealkits.com/google-connection). Sign in to Google Cloud If you're already signed in, you'll see a screen like this. Signed-in Google Cloud connection screen Go to [make.magicmealkits.com/app-status](https://make.magicmealkits.com/app-status). Magic Meal Kits App Status page Click **Stop Service** and type `magic-meal-kits` to confirm. The service stops. Stop Service confirmation, typing magic-meal-kits ## Reinstall the service The service can be installed again at any time — reinstall from [make.magicmealkits.com](https://make.magicmealkits.com) (see the full [installation guide](/installation)). **Reinstalling requires a healthy Google Cloud billing account.** If your billing has an issue, the install will fail — fix the billing problem first, then reinstall. If you can't verify the billing status, the cleanest path is to **fully delete and reinstall** after fixing billing. See [Troubleshooting](/troubleshooting) for billing details. **After reinstalling, give it 20–30 minutes — don't redeploy repeatedly.** A freshly reinstalled server may return `503` (cold start) or `429` (rate exceeded) for a while. This is normal warm-up and usually clears on its own; repeatedly redeploying does not speed it up. ## Still stuck? If a reinstall keeps failing after you've confirmed billing is healthy, [contact support](https://open.kakao.com/me/pureugong) with your account email and a short description of what you're seeing. # Upgrade performance (memory tier) Source: https://docs.magicmealkits.com/operations/upgrade-performance Use this when Magic Meal Kits is slow or runs out of memory under heavy load — upgrade the server from Free (256 MB) to Basic (512 MB) from App Status. Magic Meal Kits is designed to run within Google Cloud's **free tier**. Under heavier use it can slow down — upgrading the memory tier from **Free (256 MB)** to **Basic (512 MB)** usually resolves it. ## When you need this Performance can degrade when: * You process **large volumes of data** frequently, or * **Multiple scenarios** hit the server at the same time. In these cases, upgrading memory from **256 MB to 512 MB** typically fixes the slowdown. If you need **more than 512 MB**, [contact support](https://open.kakao.com/me/pureugong) — larger upgrades are handled separately. ## Upgrade to Basic Sign in with the account you use for your deployment. Go to [make.magicmealkits.com/app-status](https://make.magicmealkits.com/app-status). In the top-left, confirm that **Service Tier** shows **Free**. Service Tier showing Free on App Status Click **Upgrade to Basic** near the bottom of the page, then click **Confirm Changes**. Upgrade to Basic and Confirm Changes buttons Memory is updated to 512 MB automatically in about **30 seconds**. In the top-left, confirm that **Service Tier** now shows **Basic**. Service Tier showing Basic after upgrade The tier names match the [installation tiers](/installation#deploy-your-server): **Free** is 1 vCPU / 256 MB and **Basic** is 1 vCPU / 512 MB. Infrastructure is billed by Google Cloud — Basic is roughly **\~\$5/month** depending on usage and region. ## Still stuck? If performance problems continue after upgrading to Basic, you may need more memory. [Contact support](https://open.kakao.com/me/pureugong) with your account email — and attach your [system logs](/operations/share-system-logs) so we can diagnose faster. # Quickstart Source: https://docs.magicmealkits.com/quickstart Make your first call to your Magic Meal Kits deployment. ## 1. Find your base URL Your deployment runs at the Cloud Run URL created during [installation](/installation): ``` https://magic-meal-kits-xxxxx.run.app ``` The HTTP API lives under `/api/v1` (with some features under `/api/v2` and `/api/v3`). ## 2. Make a request A health check needs no auth: ```bash theme={null} curl "https://magic-meal-kits-xxxxx.run.app/health" ``` An authenticated call uses your [API key](/authentication): ```bash theme={null} curl -X POST "https://magic-meal-kits-xxxxx.run.app/api/v1/youtube/metadata" \ -H "X-API-KEY: your-api-key" \ -H "Content-Type: application/json" \ -d '{"video_url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"}' ``` ## 3. Build automations Find the endpoint for what you want to automate. Point Claude or Cursor at these docs over MCP and describe the automation. **Skeleton page.** Worked end-to-end examples to be added with the API Reference. # Troubleshooting Source: https://docs.magicmealkits.com/troubleshooting Keep your Magic Meal Kits deployment running: Google Cloud billing, stopping/reinstalling the service, and what to do when the server is slow to come back. These notes apply to **every** Magic Meal Kits deployment (all apps — Threads, Plaud, Notion, …), since the server runs in your own Google Cloud project. **Start here when something's wrong** — pick the symptom that matches. ### Server stopped or erroring Your Google Cloud free trial ended and the server stopped — upgrade (activate billing). Make scenarios repeatedly fail with `503` — force-reactivate the server. Notion modules fail with `401` or a permission error — grant access and re-set the connection. ### Tuning & maintenance Slow under heavy load — upgrade the memory tier from Free to Basic. Find the modules, set timeouts, and avoid duplicate runs in Make.com. Download your system logs from Google Cloud and send them to support. Stop the service, or reinstall it (with the billing prerequisite). ## Keeping your deployment running The Magic Meal Kits server runs in **your own Google Cloud project** and stays within Google Cloud's free usage tier for normal use — but the **free trial is time-limited**. If you started on the Google Cloud **free trial**, your server is **stopped once the trial ends** unless you **activate billing (upgrade)** first. See [Activate Google Cloud billing (upgrade)](/operations/google-cloud-billing) for the step-by-step guide and what it costs. ## Stopping or reinstalling the service You can stop and reinstall the Magic Meal Kits service at any time: 1. Sign in to Google Cloud at [make.magicmealkits.com/google-connection](https://make.magicmealkits.com/google-connection). 2. Open [make.magicmealkits.com/app-status](https://make.magicmealkits.com/app-status). 3. Click **Stop Service** and type `magic-meal-kits` to confirm. Full step-by-step guide: [Stop or reinstall the service](/operations/stop-reinstall). **Reinstalling requires a healthy Google Cloud billing account.** If your Google Cloud billing has an issue, the installation will fail — you must resolve the billing problem first, then reinstall. If you can't verify the billing status, the cleanest path is to **fully delete and reinstall** after fixing billing. **After fixing billing or reinstalling, give it 20–30 minutes — don't redeploy repeatedly.** When a server has been down for a while and you reinstall or correct your billing info, the service often does **not** respond right away: you may see `503` (cold start) or `429` (Rate exceeded) for a time. This is normal warm-up / propagation and usually clears on its own within **20–30 minutes**. Please just wait — repeatedly redeploying does not speed it up and can make recovery take longer. # Create an API key Source: https://docs.magicmealkits.com/api-reference/api-keys/create-an-api-key /api-reference/tiro/openapi.json post /tiro/api-keys Creates a new Tiro API key. **Pro license required.** # Delete an API key Source: https://docs.magicmealkits.com/api-reference/api-keys/delete-an-api-key /api-reference/tiro/openapi.json delete /tiro/api-keys/{api_key_id} Deletes a Tiro API key. **Pro license required.** # List API keys Source: https://docs.magicmealkits.com/api-reference/api-keys/list-api-keys /api-reference/tiro/openapi.json get /tiro/api-keys Lists the Tiro API keys on your account. **Pro license required.** # Charge via AutoPay Source: https://docs.magicmealkits.com/api-reference/autopay/charge-via-autopay /api-reference/paymint/openapi.json post /paymint/autopay/request Charges a registered AutoPay method. Requires a **Pro** or **Paymint-only** license and **draws down your Paymint balance**. # Delete an AutoPay method Source: https://docs.magicmealkits.com/api-reference/autopay/delete-an-autopay-method /api-reference/paymint/openapi.json delete /paymint/autopay/delete Removes a registered AutoPay method. Requires a **Pro** or **Paymint-only** license. # List AutoPay methods Source: https://docs.magicmealkits.com/api-reference/autopay/list-autopay-methods /api-reference/paymint/openapi.json get /paymint/autopay/methods Lists a payer's registered AutoPay methods. Requires a **Pro** or **Paymint-only** license. # Manage an AutoPay method Source: https://docs.magicmealkits.com/api-reference/autopay/manage-an-autopay-method /api-reference/paymint/openapi.json post /paymint/autopay/manage Updates an existing AutoPay method. Requires a **Pro** or **Paymint-only** license. # Register AutoPay Source: https://docs.magicmealkits.com/api-reference/autopay/register-autopay /api-reference/paymint/openapi.json post /paymint/autopay/register Registers a payer for AutoPay (recurring billing). Requires a **Pro** or **Paymint-only** license. # Get a card deep link Source: https://docs.magicmealkits.com/api-reference/cards/get-a-card-deep-link /api-reference/remember/openapi.json get /remember/card-link Creates a shareable deep link for a Remember business card. Omit both `cardId` and `name` to use the token owner's own profile card; otherwise pass **both** together. **Pro license required.** # Get a category Source: https://docs.magicmealkits.com/api-reference/catalog/get-a-category /api-reference/coupang/openapi.json post /coupang/category Looks up a Coupang display category by code. Requires a **Basic** license. # Bulk grant/revoke course access Source: https://docs.magicmealkits.com/api-reference/classrooms/bulk-grantrevoke-course-access /api-reference/skool/openapi.json post /skool/member-courses/bulk Applies the same `grant` / `revoke` course lists to multiple members in one call. Requires a **Basic** license. Rate limited (1 request / 20 s). # Get a member's course permissions Source: https://docs.magicmealkits.com/api-reference/classrooms/get-a-members-course-permissions /api-reference/skool/openapi.json get /skool/member-courses Returns a member's course/classroom access. Requires a **Basic** license. Rate limited. # Grant/revoke a member's course access Source: https://docs.magicmealkits.com/api-reference/classrooms/grantrevoke-a-members-course-access /api-reference/skool/openapi.json post /skool/member-courses Grants and/or revokes a member's access to courses (classrooms). Provide at least one of `grant` / `revoke` (each is a list of course IDs). Requires a **Basic** license. Rate limited. # List classrooms Source: https://docs.magicmealkits.com/api-reference/classrooms/list-classrooms /api-reference/skool/openapi.json get /skool/classrooms Lists the community's classrooms (courses). Requires a **Basic** license. Rate limited. # Get supported locales Source: https://docs.magicmealkits.com/api-reference/config/get-supported-locales /api-reference/tiro/openapi.json get /tiro/locales Returns the locales supported for transcription/translation/summary. The handler itself doesn't use the Tiro token, but the route still runs the Tiro auth middleware — so a Tiro connection must be configured (server-side stored token), same as the other endpoints. **Pro license required.** # Get threads (folders) Source: https://docs.magicmealkits.com/api-reference/config/get-threads-folders /api-reference/tiro/openapi.json get /tiro/threads Returns the user's threads/folders for organizing notes. **Pro license required.** # Get note summaries Source: https://docs.magicmealkits.com/api-reference/content/get-note-summaries /api-reference/tiro/openapi.json get /tiro/notes/{note_id}/summaries Returns summaries for a note keyed by template title. **Pro license required.** # Get note transcripts Source: https://docs.magicmealkits.com/api-reference/content/get-note-transcripts /api-reference/tiro/openapi.json get /tiro/notes/{note_id}/transcripts Returns merged transcripts for a note — raw, refined, and (if enabled) translated — plus duration. **Pro license required.** # Coupang Source: https://docs.magicmealkits.com/api-reference/coupang/overview Retrieve Coupang seller orders and order sheets. The Coupang group powers the **Coupang** Make.com app — pull seller order sheets and consumer orders. ## Authentication Send the MMK `X-API-KEY` — that's the only credential the caller handles. Your Coupang token is set once on the connection page in the Magic Meal Kits app and resolved server-side, so no per-request token header is needed — see [Authentication](/authentication). Order sheets and category lookup are **Basic**. The two **consumer-order** endpoints (`orders`, `flattened-orders`) are **Pro** — a Basic key gets `400` `you are not a magic meal kits PRO user`. ## Endpoints | Endpoint | Tier | What it does | | -------------------------------- | ------- | -------------------------------------------------------- | | `POST /coupang/ordersheets` | Basic | Seller order sheets for a created-at window | | `POST /coupang/category` | Basic | Look up a display category | | `POST /coupang/orders` | **Pro** | Consumer orders (paged by `pageIndex`/`pageSize`/`year`) | | `POST /coupang/flattened-orders` | **Pro** | Consumer orders flattened to one row per item | ## Notes * **Order sheets** take a created-at window (`createdAtFrom` / `createdAtTo`, optional `status`). **Consumer orders** take `pageIndex` / `pageSize` / `year` instead. * **Flattened orders** give you one row per order item — handy when mapping straight into a spreadsheet or downstream module. Use the interactive playground to try a request with your own deployment host, API key, and Coupang token. # Decompose an ISO 8601 duration Source: https://docs.magicmealkits.com/api-reference/iso-8601/decompose-an-iso-8601-duration /api-reference/utilities/openapi.json post /iso8601/components Parses an ISO 8601 duration into numeric days/hours/minutes/seconds. **Pro license required.** # Format an ISO 8601 duration Source: https://docs.magicmealkits.com/api-reference/iso-8601/format-an-iso-8601-duration /api-reference/utilities/openapi.json post /iso8601/format Formats an ISO 8601 duration string (e.g. `PT1H30M`) into one or more human-readable formats. **Pro license required.** # Execute JavaScript Source: https://docs.magicmealkits.com/api-reference/javascript/execute-javascript /api-reference/utilities/openapi.json post /javascript Runs JavaScript in a secure sandbox with a timeout. Requires a **Basic** license. Code is capped at 10 KB; timeout defaults to 5000 ms (max 10000 ms). Values in `args` are exposed to the script as the `args` array. # Extract JSON from text Source: https://docs.magicmealkits.com/api-reference/json/extract-json-from-text /api-reference/utilities/openapi.json post /json/extract Extracts and parses the first JSON object or array embedded in arbitrary text. **Pro license required.** # List members Source: https://docs.magicmealkits.com/api-reference/members/list-members /api-reference/skool/openapi.json get /skool/members Lists community members by page. Requires a **Basic** license. Rate limited. # Get YouTube video metadata Source: https://docs.magicmealkits.com/api-reference/metadata/get-youtube-video-metadata /api-reference/youtube/openapi.json post /youtube/metadata Returns title, author, thumbnails, channel info, and counts for a video. Identify it by either `video_url` or `video_id`. **Pro license required** — a Basic key returns `403` with `Pro account required`. This route is rate limited. # Create a note Source: https://docs.magicmealkits.com/api-reference/notes/create-a-note /api-reference/tiro/openapi.json post /tiro/notes Creates a new meeting note with optional context, threads, and locales. **Pro license required.** # Delete a note Source: https://docs.magicmealkits.com/api-reference/notes/delete-a-note /api-reference/tiro/openapi.json delete /tiro/notes/{note_id} Deletes a meeting note. This cannot be undone. **Pro license required.** # Get note status Source: https://docs.magicmealkits.com/api-reference/notes/get-note-status /api-reference/tiro/openapi.json get /tiro/notes/{note_id} Returns a note's status and metadata (transcription state, duration, paragraph count). **Pro license required.** # Replace note settings Source: https://docs.magicmealkits.com/api-reference/notes/replace-note-settings /api-reference/tiro/openapi.json put /tiro/notes/{note_id} Full replace of a note's settings (title, locales, feature toggles). **Pro license required.** # Update a note Source: https://docs.magicmealkits.com/api-reference/notes/update-a-note /api-reference/tiro/openapi.json patch /tiro/notes/{note_id} Partial update of a note — title, context, locales, thread add/remove, feature toggles. **Pro license required.** # Get consumer orders Source: https://docs.magicmealkits.com/api-reference/orders/get-consumer-orders /api-reference/coupang/openapi.json post /coupang/orders Returns Coupang consumer orders, paginated by `pageIndex` / `pageSize` and filtered by `year`. **Pro license required.** # Get flattened consumer orders Source: https://docs.magicmealkits.com/api-reference/orders/get-flattened-consumer-orders /api-reference/coupang/openapi.json post /coupang/flattened-orders Same as consumer orders but flattened to one row per item — convenient for spreadsheet/automation mapping. **Pro license required.** # Get order sheets Source: https://docs.magicmealkits.com/api-reference/orders/get-order-sheets /api-reference/coupang/openapi.json post /coupang/ordersheets Returns Coupang seller order sheets for a created-at window. Requires a **Basic** license. # Cancel a payment Source: https://docs.magicmealkits.com/api-reference/payments/cancel-a-payment /api-reference/paymint/openapi.json post /paymint/cancel Cancels a previously sent payment request. Requires a **Pro** or **Paymint-only** license. # Destroy a payment Source: https://docs.magicmealkits.com/api-reference/payments/destroy-a-payment /api-reference/paymint/openapi.json post /paymint/destroy Permanently removes a payment request. Requires a **Pro** or **Paymint-only** license. # Read a payment Source: https://docs.magicmealkits.com/api-reference/payments/read-a-payment /api-reference/paymint/openapi.json post /paymint/read Returns the status/details of a payment request. Requires a **Pro** or **Paymint-only** license. # Resend a payment request Source: https://docs.magicmealkits.com/api-reference/payments/resend-a-payment-request /api-reference/paymint/openapi.json post /paymint/resend Re-sends an existing payment request to the payer. Requires a **Pro** or **Paymint-only** license and **draws down your Paymint balance**. # Send a payment request Source: https://docs.magicmealkits.com/api-reference/payments/send-a-payment-request /api-reference/paymint/openapi.json post /paymint/request Sends a Paymint payment request to a payer. Requires a **Pro** or **Paymint-only** license and **draws down your Paymint balance**. # Paymint Source: https://docs.magicmealkits.com/api-reference/paymint/overview Send and manage Paymint (결제선생) payment requests and AutoPay. The Paymint group powers the **Paymint** Make.com app — send payment requests to payers, read/cancel them, and manage AutoPay (recurring billing). New to Paymint? Start with the **[Getting started guide](/guides/paymint/getting-started)** — sign up for 결제선생, pass the card-company review, and connect it to Magic Meal Kits. ## Authentication Send the MMK `X-API-KEY` plus your Paymint connection fields, which you set once on the connection page in the Magic Meal Kits app (see [Authentication](/authentication)). Two modes: * **MMK mode** — send `X-Paymint-MMK-Mode: true` (optionally `X-Paymint-Member-ID` / `X-Paymint-Merchant-ID` to pick a specific license). Easiest; uses a license configured on your deployment. * **Traditional mode** — send `X-Paymint-Host`, `X-Paymint-Api-Key`, `X-Paymint-Member-ID`, `X-Paymint-Merchant-ID`, `X-Paymint-Business-Number`. The protected endpoints require a **Pro** or **Paymint-only** license — a Basic deployment gets `402` (upgrade required). On top of that, payment-sending calls (`request`, `resend`, `autopay/request`) **draw down your Paymint balance**, which also returns `402` when the balance is insufficient. ## Endpoints | Endpoint | Auth | What it does | | ----------------------------------- | ---------- | -------------------------------------------------- | | `GET /paymint/licenses` | None | List approved licenses (to pick a member/merchant) | | `POST /paymint/format-phone-number` | None | Normalize a phone number | | `POST /paymint/request` | Connection | Send a payment request (uses balance) | | `POST /paymint/read` | Connection | Read a payment's status | | `POST /paymint/cancel` | Connection | Cancel a payment | | `POST /paymint/destroy` | Connection | Permanently remove a payment | | `POST /paymint/resend` | Connection | Resend a payment request (uses balance) | | `POST /paymint/autopay/register` | Connection | Register a payer for AutoPay | | `POST /paymint/autopay/manage` | Connection | Update an AutoPay method | | `GET /paymint/autopay/methods` | Connection | List a payer's AutoPay methods | | `POST /paymint/autopay/request` | Connection | Charge via AutoPay (uses balance) | | `DELETE /paymint/autopay/delete` | Connection | Delete an AutoPay method | ## Notes * **Public helpers.** `licenses` and `format-phone-number` need no Paymint auth — handy for setup and input formatting. * **Balance.** Top up your Paymint balance to keep `request` / `resend` / `autopay/request` working. * **Callback.** Paymint posts payment status updates to a server-side `callback` endpoint; it's inbound from Paymint, not something you call. Use the interactive playground to try a request with your own deployment host, API key, and Paymint connection fields. # Remember Source: https://docs.magicmealkits.com/api-reference/remember/overview Generate Remember business-card deep links. The Remember group powers the **Remember** Make.com app. It generates a shareable deep link for a Remember business card. ## Authentication Send the MMK `X-API-KEY` — that's the only credential the caller handles. Your Remember token is set once on the connection page in the Magic Meal Kits app and resolved server-side, so no per-request token header is needed — see [Authentication](/authentication). **Pro license required.** A Basic key gets `400` `you are not a magic meal kits PRO user`. ## Endpoints | Endpoint | Tier | What it does | | ------------------------- | ------- | -------------------------------------- | | `GET /remember/card-link` | **Pro** | Create a deep link for a business card | ## Notes * **Default to your own card.** Omit both `cardId` and `name` to use the token owner's profile card. To target a specific card, pass **both** `cardId` and `name` together. Use the interactive playground to try a request with your own deployment host, API key, and Remember token. # Skool Source: https://docs.magicmealkits.com/api-reference/skool/overview Read Skool members, classrooms, and course permissions, and grant/revoke course access. The Skool group powers the **Skool** Make.com app — read community members and classrooms, and manage members' course access. ## Authentication Send the MMK `X-API-KEY`. Your Skool credentials (client ID + auth token) are set once on the connection page in the Magic Meal Kits app and resolved server-side, so no per-request credential headers are needed. Each request still passes **a group identifier**: `x-skool-group-name` for the read endpoints (members, classrooms) and `x-skool-group-id` for the course-permission endpoints — see [Authentication](/authentication). All endpoints require a **Basic** license and are rate limited. ## Endpoints | Endpoint | Tier | What it does | | --------------------------------- | ----- | ------------------------------------- | | `GET /skool/members` | Basic | List members (paginated) | | `GET /skool/classrooms` | Basic | List classrooms (courses) | | `GET /skool/member-courses` | Basic | A member's course permissions | | `POST /skool/member-courses` | Basic | Grant/revoke one course permission | | `POST /skool/member-courses/bulk` | Basic | Grant/revoke for many members at once | ## Notes * **Rate limits** apply per endpoint (e.g. members/classrooms \~3 req / 10 s; bulk \~1 req / 20 s) — space out calls and prefer the bulk endpoint for large updates. * **`memberID`** comes from the members list; pass `classroomID` to scope a permission to a specific course. Use the interactive playground to try a request with your own deployment host, API key, and Skool credentials. # Convert Markdown to Slack Block Kit Source: https://docs.magicmealkits.com/api-reference/slack/convert-markdown-to-slack-block-kit /api-reference/utilities/openapi.json post /slack/convert Converts Markdown into Slack Block Kit JSON and a Block Kit Builder preview URL. Requires a **Basic** license. This route is rate limited. # Get YouTube transcript Source: https://docs.magicmealkits.com/api-reference/transcript/get-youtube-transcript /api-reference/youtube/openapi.json post /youtube/transcript/v2 Returns the transcript of a YouTube video in the requested format. Identify the video by either `video_url` or `video_id`. Requires a **Basic** license. This route is rate limited. Set `with_metadata: true` to include video metadata in the response — note that the **metadata fields require a Pro license**; a Basic key returns the transcript with an upgrade placeholder in `metadata`. # Format a phone number Source: https://docs.magicmealkits.com/api-reference/utilities/format-a-phone-number /api-reference/paymint/openapi.json post /paymint/format-phone-number Normalizes a Korean phone number to the format Paymint expects. No auth required. # List approved licenses Source: https://docs.magicmealkits.com/api-reference/utilities/list-approved-licenses /api-reference/paymint/openapi.json get /paymint/licenses Returns the approved Paymint licenses available to your deployment (used to pick a member/merchant in MMK mode). No auth required. # Utilities Source: https://docs.magicmealkits.com/api-reference/utilities/overview Single-purpose helper endpoints: JavaScript execution, JSON extraction, ISO 8601 durations, and Markdown → Slack conversion. The Utilities group bundles small, stateless building blocks that show up again and again inside automations. All routes are `POST` under `/api/v1` and authenticate with the `X-API-KEY` header (see [Authentication](/authentication)). Error shapes differ per endpoint — rely on each operation's response schema, not one blanket shape: * `javascript` and `slack/convert` fail with `{ "success": false, "error": "..." }`. * `json/extract` and the `iso8601/*` routes return `{ "status": "error", "error": "..." }` on a Pro-gate failure, and a `200` with `is_valid: false` (ISO) or an `error` field (JSON) when the input can't be parsed. ## Endpoints | Endpoint | Tier | What it does | | -------------------------- | ------- | -------------------------------------------------------------- | | `POST /javascript` | Basic | Run JavaScript in a sandboxed VM (10 KB code cap, ≤10 s) | | `POST /json/extract` | **Pro** | Pull the first JSON object/array out of mixed text | | `POST /iso8601/format` | **Pro** | Format an ISO 8601 duration into human-readable strings | | `POST /iso8601/components` | **Pro** | Decompose an ISO 8601 duration into days/hours/minutes/seconds | | `POST /slack/convert` | Basic | Convert Markdown to Slack Block Kit (rate limited) | `json/extract` and both `iso8601/*` endpoints require a **Pro** license — a Basic key gets `you are not a magic meal kits PRO user`. See [Authentication](/authentication). ## Notes * **JavaScript** runs in a secure sandbox. Values passed in `args` are available as the `args` array inside the script. Timeout defaults to 5000 ms (max 10000 ms). * **Slack convert** is rate limited; it returns both the Block Kit `blocks` and a `blockKitUrl` you can open in Slack's Block Kit Builder to preview. Use the interactive playground on each endpoint page to try a request with your own deployment host and API key. # Create a webhook Source: https://docs.magicmealkits.com/api-reference/webhooks/create-a-webhook /api-reference/tiro/openapi.json post /tiro/webhooks Registers a webhook for the given event types. **Pro license required.** # Delete a webhook Source: https://docs.magicmealkits.com/api-reference/webhooks/delete-a-webhook /api-reference/tiro/openapi.json delete /tiro/webhooks/{webhook_id} Deletes a webhook. **Pro license required.** # Get webhook event types Source: https://docs.magicmealkits.com/api-reference/webhooks/get-webhook-event-types /api-reference/tiro/openapi.json get /tiro/webhook-event-types Returns the available webhook event types you can subscribe to. **Pro license required.** # List webhooks Source: https://docs.magicmealkits.com/api-reference/webhooks/list-webhooks /api-reference/tiro/openapi.json get /tiro/webhooks Lists the webhooks registered on your Tiro account. **Pro license required.** # Update a webhook Source: https://docs.magicmealkits.com/api-reference/webhooks/update-a-webhook /api-reference/tiro/openapi.json patch /tiro/webhooks/{webhook_id} Updates a webhook's name, URL, event types, or active state. **Pro license required.** # YouTube Source: https://docs.magicmealkits.com/api-reference/youtube/overview Fetch YouTube transcripts and video metadata in the format your automation needs. The YouTube group powers the **MMK YouTube Transcript** Make.com app. Identify a video by either its full URL (`video_url`) or its 11-character ID (`video_id`), and get the transcript back as XML, JSON, VTT, or SRT. All routes are `POST` under `/api/v1` and authenticate with the `X-API-KEY` header (see [Authentication](/authentication)). ## Endpoints | Endpoint | Tier | What it does | | ----------------------------- | ------- | ----------------------------------------------------------------- | | `POST /youtube/transcript/v2` | Basic | Get a video's transcript in `xml` / `json` / `vtt` / `srt` | | `POST /youtube/metadata` | **Pro** | Get title, author, thumbnails, channel info, and view/like counts | `youtube/metadata` requires a **Pro** license — a Basic key gets `403 Pro account required`. The same applies to the `with_metadata` option on the transcript endpoint: the transcript itself returns on Basic, but the `metadata` block is filled only for Pro keys (Basic sees an upgrade placeholder). See [Authentication](/authentication). ## Notes * **Pick one identifier.** Send either `video_url` or `video_id` — not both required. * **Format** defaults to `xml`. Choose `json` for structured segments with start/duration, or `srt` / `vtt` when you need subtitle files. * **Rate limited.** Both endpoints are rate limited; space out bulk calls. * **`retry_info`** in every response reports fetch attempts — useful when a transcript is temporarily unavailable and you want to retry. Use the interactive playground on each endpoint page to try a request with your own deployment host and API key. # CLI Source: https://docs.magicmealkits.com/cli/overview Install the mmk command-line tool and point it at your Magic Meal Kits deployment. Magic Meal Kits CLI The **`mmk` CLI** wraps the most common Magic Meal Kits operations for the terminal — and it's the foundation the [skills](/cli/skills) run on. This page covers **installing and connecting** it; head to [Skills](/cli/skills) for ready-made automations. The CLI is in **beta** (`0.x.y-beta`). Install with the `@beta` tag. ## Install Install globally from npm (requires Node.js 18+): ```bash theme={null} npm install -g @magic-meal-kits/cli@beta ``` Verify it's on your `PATH`: ```bash theme={null} mmk --version ``` ## Connect to your deployment Point the CLI at the deployment that the installer created in **your** Google Cloud project, then sign in: ```bash theme={null} mmk config set server mmk auth login ``` Your **server URL** and **API key** come from the Magic Meal Kits app status page — you don't hand-craft them. See [Authentication](/authentication) for where to find them and how the `X-API-KEY` header works. Once connected, every command runs against your own server with your own key. ## Next Install the MMK skills and drive Notion, Paymint, Threads, YouTube, and Plaud from your agent. Where the server URL and API key come from, plus license tiers. # Skills Source: https://docs.magicmealkits.com/cli/skills Install the Magic Meal Kits skills and drive your deployment from any agent. **MMK Skills** are ready-made automation commands that run on top of the [`mmk` CLI](/cli/overview). Install them into your coding agent and you get slash commands like `/mmk-notion` or `/mmk-paymint-send` that operate against *your* Magic Meal Kits deployment — no glue code to write. They're published in the open-source repo [**magic-meal-kits/mmk-skills**](https://github.com/magic-meal-kits/mmk-skills) and work with **Claude Code, Gemini CLI, OpenCode, Codex, Cursor, and 38+ other agents**. The skills are in **beta** and evolve quickly. The repo is the source of truth for the full, current catalog. **Prerequisite:** install and connect the CLI first — see [CLI](/cli/overview) (`npm install -g @magic-meal-kits/cli@beta`, then `mmk config set server …` and `mmk auth login`). The skills call the CLI under the hood. ## Install the skills Pick the command for your agent: ```bash Claude Code / OpenCode / Codex / Cursor theme={null} npx skills add https://github.com/magic-meal-kits/mmk-skills ``` ```bash Gemini CLI theme={null} gemini extensions install https://github.com/magic-meal-kits/mmk-skills ``` ```bash Claude Code plugin marketplace theme={null} /plugin marketplace add magic-meal-kits/mmk-skills ``` You don't have to install everything. The repo also lets you add skills **by service** or a **single sub-command** — see the README for the per-skill install paths. ## Use the skills Once installed, type `/` in your agent to see the MMK commands, then run one: ```text theme={null} /mmk-notion # work with Notion pages, databases, comments… /mmk-paymint-send # send a Paymint payment request /mmk-youtube-channel-summary # a multi-step recipe ``` The agent reads the skill, calls the CLI against your deployment, and reports back. ## Skills by service A summary of what's available. See the [repo](https://github.com/magic-meal-kits/mmk-skills) for the full command list. | Service | \~Commands | Examples | | ----------- | ---------- | --------------------------------------------------------------------------------------- | | **Notion** | \~46 | `mmk-notion-page`, `mmk-notion-database`, `mmk-notion-comment`, `mmk-notion-meeting` | | **Paymint** | \~7 | `mmk-paymint-send`, `mmk-paymint-status`, `mmk-paymint-cancel`, `mmk-paymint-bulk-send` | | **Plaud** | \~25 | Audio recording / note / transcript management | | **Threads** | \~3 | Collect and search Threads posts | | **YouTube** | \~3 | Metadata and transcript extraction | | **Recipes** | multi-step | `mmk-notion-onboard`, `mmk-paymint-notion-invoice`, `mmk-youtube-channel-summary` | Browse every skill, its parameters, and the per-service install commands. # Getting started Source: https://docs.magicmealkits.com/guides/paymint/getting-started Use this when you're setting up 결제선생 (Paymint) for the first time — sign up, pass the card-company review, connect it to Magic Meal Kits, and understand costs. Paymint (**결제선생**) is a KakaoTalk 알림톡 simple-payment service. With Magic Meal Kits you can build payment automations in Make — send invoices, confirm payments, cancel, and run AutoPay. This guide takes a **new user** from signup to a working connection. For module and endpoint details, see the [Paymint API reference](/api-reference/paymint/overview). ## 1. Sign up for 결제선생 Sign up at [payssam.kr](https://payssam.kr) with your **business** account. Your business registration (사업자등록) must be complete first. Follow the official [결제선생 회원가입 가이드](https://guide.payssam.kr/ko/articles/%ED%9A%8C%EC%9B%90%EA%B0%80%EC%9E%85-2762f014). Enter referral code **`3665900534`** during signup to receive **3,000 쌤포인트**. ## 2. Register your business & pass the card-company review Card companies review each business before it can send payment requests. Submit **four photos**: * **Signboard** (간판) * **Entrance** (입구) * **Interior** (내부) * **Products / items handled** (취급품목) **Photo tips** * **Shared office / no signboard:** substitute equivalent photos (e.g. the building/suite and your workspace). * **Home-based business:** include the road-name address sign and your entrance. * **Products:** show your product or course page on a laptop screen and photograph that. The review takes about **one week**. The card company may ask for additional or corrected photos, which extends the timeline — submit clear photos up front. ## 3. Connect Paymint to Magic Meal Kits Redeploy your server to the latest version first — see [Installation → Upgrading](/installation#upgrading-redeploy). Install the Paymint Make.com app from the Magic Meal Kits Showcase. Configure the Paymint connection with your account details. Connection setup and management is centralized at [make.magicmealkits.com/connections](https://make.magicmealkits.com/connections). See [Authentication](/authentication) for the connection fields (MMK mode vs Traditional mode). There are two onboarding paths: * **General** — complete the **card-company review** above, then connect. * **Magic Meal Kits partner-only** — a **separate application** after Magic Meal Kits signup. ## Costs * Paymint runs on a **prepaid balance** — top it up from the Magic Meal Kits site whenever you need. * **Sending or resending** an invoice 알림톡 costs **₩70 per message**. * **Cancel** and **balance/status lookups** are **not charged**. * A small **overdraft is allowed**: sends keep working until your balance falls below about **−₩2,100** (roughly 30 messages past zero), after which payment-sending calls are blocked with `402` "Insufficient balance". Keep your balance topped up. See the [API reference](/api-reference/paymint/overview). ## Running multiple businesses * Each business uses its own **Payment Only** plan — buy one plan per additional business. * You can register **up to 2 accounts per login**. * **Apply the correct business to every module.** Mixing businesses across a flow fails — e.g. sending an invoice from business A and then cancelling on business B will not work. ## Next steps Module and endpoint details — send/resend invoices, confirm payments (the 결제확인 webhook must return `{"code":"0000"}`), cancel, and AutoPay. # Connect Claude (Web) Source: https://docs.magicmealkits.com/mcp/connect-claude Use this when you want to connect your Magic Meal Kits MCP server to Claude on the web (claude.ai) as a custom connector — sign in with OAuth, choose which tools to grant, and start using MMK tools in a chat. Your Magic Meal Kits deployment runs its own **MCP server**, so Claude on the web ([claude.ai](https://claude.ai)) can call your MMK tools directly in a chat. This guide covers the two ways to connect it as a **custom connector**: * **OAuth (recommended)** — add just the `/mcp` URL, sign in with your Magic Meal Kits account, and tick which tool groups Claude may use. No API key is placed in the URL. * **API key (fallback)** — paste the `/mcp` URL with your API key as a query parameter. Use this only if OAuth isn't available for your deployment. OAuth connector login requires **Magic Meal Kits version 4.21.7 or later**. If your deployment is older, redeploy to the latest version first (see [Installation → Upgrading](/installation#upgrading-redeploy)) or use the API-key method below. A Claude **Pro, Team, or Enterprise** plan is recommended for custom connectors. ## 1. Get your server URL You'll need your deployment's **Service URL**. Go to [make.magicmealkits.com/app-status](https://make.magicmealkits.com/app-status) and find the **Connection & Access** section. Copy your **SERVICE URL** (e.g. `https://magic-meal-kits-xxxx-uw.a.run.app`). Your MCP endpoint is that URL plus `/mcp`. For the API-key method, also copy your **API KEY**. See [Authentication](/authentication) for details. ## 2. Connect with OAuth (recommended) In Claude, go to **Settings → Connectors → Add custom connector**. Paste your MCP endpoint — the Service URL plus `/mcp` — and leave the URL **without** an API key: ``` https:///mcp ``` Give it a name (e.g. *Magic Meal Kits*) and add it. Claude opens a Magic Meal Kits sign-in page. Log in with the **same account** you use at [make.magicmealkits.com](https://make.magicmealkits.com). (Your server has no login of its own — it hands sign-in and consent to the Magic Meal Kits app at `make.magicmealkits.com/mcp/authorize`.) A consent screen shows a checklist of **tool groups**. Tick only the ones this connector needs — the connector is limited to exactly the groups you select (least privilege). See [the tool groups](#tool-groups-scopes) below. Click **Authorize**. Claude returns to Settings with the connector enabled. Open a **new chat** and confirm the Magic Meal Kits tools appear in the tool list. To change which tools a connector can use later, remove the connector in Claude and add it again, granting a different set of tool groups. ## Tool groups (scopes) On the consent screen you grant one or more of these groups. Each group unlocks its related tools; leaving a group unchecked hides those tools from the connector. | Group | What it grants | | ------------------ | ---------------------------------- | | **Plaud** | Voice notes, folders, transcripts | | **Tiro** | Meeting notes & summaries | | **Notion** | Page content & transcripts | | **Threads** | Posts, replies & insights | | **Threads data** | Collected posts search & analytics | | **Paymint** | Payment invoices | | **YouTube** | Transcripts & metadata | | **PDF** | PDF info & conversion | | **Slack** | Markdown → Block Kit conversion | | **JavaScript** | Sandboxed JS execution | | **JSON** | Extract JSON from text | | **Date/Time** | ISO 8601 formatting | | **Naver Commerce** | Smartstore orders | Some groups (Threads, Plaud, Tiro, Paymint, Notion) also require the matching license tier on your deployment. Groups you aren't licensed for simply return no tools even if granted. ## 3. Connect with an API key (fallback) If OAuth isn't available, add the connector with your API key in the URL instead. In Claude, go to **Settings → Connectors → Add custom connector**, set **Authentication** to **None**, and paste: ``` https:///mcp?api_key=YOUR_API_KEY ``` Limit the exposed tools with the `tools` query parameter: ``` https:///mcp?api_key=YOUR_API_KEY&tools=pdf,youtube ``` Save the connector, then open a new chat to confirm the tools load. With the API-key method your key is part of the URL and can appear in server request logs. Prefer OAuth, and keep the key to a filtered tool set when you can. ## Next steps Endpoints, tool filtering, and how the server MCP differs from the docs MCP. # Docs as MCP Source: https://docs.magicmealkits.com/mcp/docs-as-mcp Point your LLM at these docs and vibe-code automations against your Magic Meal Kits server. This documentation site is itself available as an **MCP server** and as `llms.txt`, so an LLM can read and search the entire API reference while it writes your automation code. | Resource | URL | | ------------ | ---------------------------------------------- | | MCP endpoint | `https://docs.magicmealkits.com/mcp` | | LLM index | `https://docs.magicmealkits.com/llms.txt` | | Full text | `https://docs.magicmealkits.com/llms-full.txt` | The docs MCP serves **documentation content** — it lets the model read and search this reference. It does **not** proxy your server. The code the model writes calls your own deployment's URL with your own API key. ## Add it to your client **Claude Code** ```bash theme={null} claude mcp add --transport http mmk-docs https://docs.magicmealkits.com/mcp ``` **Claude Desktop / Cursor** — add an MCP server entry pointing at `https://docs.magicmealkits.com/mcp`. ## Then vibe-code Ask your model something like: > Using the Magic Meal Kits docs, write a script that pulls a YouTube transcript and > posts a summary to my Notion database. My server is `https://magic-meal-kits-xxxxx.run.app`. The model reads this reference over MCP, finds the right endpoints, and writes code that calls *your* deployment. **Skeleton page.** Add concrete recipes (Notion sync, Threads analytics, transcription pipeline) once the API Reference pages exist. # MCP Overview Source: https://docs.magicmealkits.com/mcp/overview Connect the Magic Meal Kits server's MCP tools to an MCP client. Your Magic Meal Kits deployment exposes an **MCP (Model Context Protocol)** server, so an LLM client can call MMK tools directly — PDF and YouTube extraction, JavaScript execution, Markdown → Slack conversion, date parsing, and (by tier) Threads, Plaud, Tiro, Paymint, and Notion tools. Two different MCP servers are in play, don't confuse them: * **This page** — your *server's* MCP at `https:///mcp`, which runs actions against your MMK deployment. * [Docs as MCP](/mcp/docs-as-mcp) — the *documentation* MCP at `https://docs.magicmealkits.com/mcp`, which lets an LLM read this reference. ## Connecting | Client | How | | ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Claude.ai (Web)** | Settings → Connectors → Add custom connector → `https:///mcp`, sign in with OAuth & pick tool groups. See [Connect Claude (Web)](/mcp/connect-claude). | | **Claude Code** | `claude mcp add` or `.mcp.json`, header `X-API-KEY: YOUR_API_KEY` | | **Cursor / other** | Add the same `/mcp` URL with an API-key header | Connecting Claude on the web? [Connect Claude (Web)](/mcp/connect-claude) is a full step-by-step walkthrough of the OAuth connector flow and how to choose which tools to grant. ## Endpoints | Endpoint | Auth | Description | | --------------------- | -------- | --------------------------- | | `POST /mcp` | Required | Main JSON-RPC endpoint | | `GET /mcp` | Required | Server info / SSE streaming | | `GET /mcp/health` | None | Health check | | `GET /mcp/categories` | None | List tool categories | ## Tool filtering Limit exposed tools with the `tools` query parameter: ``` /mcp?tools=pdf,youtube # by category /mcp?tools=pdf_info,youtube_transcript # by specific tool /mcp # all tools (default) ``` **Looking for ready-made automations?** The [MMK Skills](/cli/skills) give your agent slash commands (`/mmk-notion`, `/mmk-paymint-send`, …) for the most common operations — install them once and skip writing glue code.