Menu

API reference · Inbox

Saved replies

social_inbox · snippets · 5 operations

GET/v1/social-inbox/snippets

List the saved replies (snippets) of the Social Inbox

social_inbox.snippets.list

ReadIdempotentSince 2026-11-01

Lists the saved replies of the inbox by name (up to 500): name, body with {{variables}} (name, nombre and username are filled from the item's author), category, locale, tone and how many times they were used. locale filters by language (es, en, pt…). Requires view access to the Social Inbox.

Scope
social_inbox:read
Permission
View the module
MCP tool
social_inbox_snippets_listOn the full surface; on the compact one, mb_execute_operation with id: "social_inbox.snippets.list".

Declared cost: up to 500 reads and 0 writes per call (they count against the daily quota).

Parameters

localestringqueryoptional

Only saved replies in this language (es, en, pt-BR…).

Response

dataarray<object>

Errors

Example

curl "https://api.mb-suite.com/v1/social-inbox/snippets" \
  -H "Authorization: Bearer $MB_API_KEY"

Try it with your test API key

With a test API key the request always goes to your practice organization: example data you can reset.

curl "https://api.mb-suite.com/v1/social-inbox/snippets" \
  -H "Authorization: Bearer $MB_TEST_KEY"
GET/v1/social-inbox/snippets/{snippet_id}

Get one saved reply (snippet)

social_inbox.snippets.get

ReadIdempotentSince 2026-11-01

Returns one saved reply of the inbox with its body, variables, category, locale, tone and usage count. 404 inbox_snippet_not_found if it is not in this organization. Requires view access.

Scope
social_inbox:read
Permission
View the module
MCP tool
social_inbox_snippets_getOn the full surface; on the compact one, mb_execute_operation with id: "social_inbox.snippets.get".

Declared cost: up to 1 reads and 0 writes per call (they count against the daily quota).

Parameters

snippet_idstringpathrequired

The saved reply id (from social_inbox.snippets.list).

Response

idstring

The saved reply id.

namestring

Its name.

bodystring

Its text, with optional {{variables}}: {{name}} or {{nombre}} (the author's first name) and {{username}} are filled in when a rule sends it; unknown ones are removed.

localestring

Its language (es, en, pt-BR…).

tonestring

formal, friendly, brief, empathetic or neutral.

usage_countnumber

How many times it was used from the composer.

categorystring | null

Its category, if any.

variablesarray<string> | null

The {{variables}} its body uses.

created_atnumber | null

When it was created (epoch ms).

created_by_idstring | null

Who created it.

updated_atnumber | null

Last edit (epoch ms).

updated_by_idstring | null

Who edited it last.

Errors

Example

curl "https://api.mb-suite.com/v1/social-inbox/snippets/{snippet_id}" \
  -H "Authorization: Bearer $MB_API_KEY"

Try it with your test API key

With a test API key the request always goes to your practice organization: example data you can reset.

curl "https://api.mb-suite.com/v1/social-inbox/snippets/{snippet_id}" \
  -H "Authorization: Bearer $MB_TEST_KEY"
POST/v1/social-inbox/snippets

Create a saved reply (snippet)

social_inbox.snippets.create

WriteSince 2026-11-01

Creates a saved reply for the inbox: name (up to 120 characters), body (up to 8,192; {{name}}, {{nombre}} and {{username}} are filled from the item's author, unknown variables are dropped before sending), optional category, locale (default es) and tone (formal, friendly, brief, empathetic, neutral; default neutral). Up to 500 per organization (409 limit_reached, details.resource inbox_snippets). Returns it with its id. Requires full access and an owner, admin or member role.

Scope
social_inbox:write
Permission
Edit in the module
MCP tool
social_inbox_snippets_createOn the full surface; on the compact one, mb_execute_operation with id: "social_inbox.snippets.create".

Declared cost: up to 1 reads and 1 writes per call (they count against the daily quota).

Parameters

namestringbodyrequired

Its name (what the composer shows).

bodystringbodyrequired

Its text; {{name}}, {{nombre}} (the author's first name) and {{username}} are filled in when a rule sends it.

categorystringbodyoptional

Optional category to group saved replies.

localestringbodyoptional

Its language (es, en, pt-BR…). Default es.

Default: "es"

toneenumbodyoptional

formal, friendly, brief, empathetic or neutral (the default).

Values: formal, friendly, brief, empathetic, neutral · Default: "neutral"

Response

snippet_idstring
snippetobject

Errors

Example

curl -X POST "https://api.mb-suite.com/v1/social-inbox/snippets" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "name": "NAME",
  "body": "BODY"
}'

Try it with your test API key

With a test API key the request always goes to your practice organization: example data you can reset.

curl -X POST "https://api.mb-suite.com/v1/social-inbox/snippets" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "name": "NAME",
  "body": "BODY"
}'
PATCH/v1/social-inbox/snippets/{snippet_id}

Update a saved reply (snippet)

social_inbox.snippets.update

WriteIdempotentSince 2026-11-01

Updates a saved reply: only what comes in updates changes (name, body, category, locale, tone; category null removes it); the variables are recalculated from the new body. Rules that reply with it use the new text from then on. 404 inbox_snippet_not_found if it does not exist. Returns it. Requires full access and an owner, admin or member role.

Scope
social_inbox:write
Permission
Edit in the module
MCP tool
social_inbox_snippets_updateOn the full surface; on the compact one, mb_execute_operation with id: "social_inbox.snippets.update".

Declared cost: up to 1 reads and 1 writes per call (they count against the daily quota).

Parameters

snippet_idstringpathrequired

The saved reply id (from social_inbox.snippets.list).

updatesobjectbodyrequired

What changes (only what comes is written).

Response

snippetobject

Errors

Example

curl -X PATCH "https://api.mb-suite.com/v1/social-inbox/snippets/{snippet_id}" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "updates": {}
}'

Try it with your test API key

With a test API key the request always goes to your practice organization: example data you can reset.

curl -X PATCH "https://api.mb-suite.com/v1/social-inbox/snippets/{snippet_id}" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "updates": {}
}'
DELETE/v1/social-inbox/snippets/{snippet_id}

Delete a saved reply (snippet)

social_inbox.snippets.delete

IrreversibleSince 2026-11-01

Deletes a saved reply. It stays 30 days in the trash; active rules that reply with it stop replying until it is restored with the same id (the dry run lists them). Outside the screen it needs a dry run and a confirm_token, except a REST DELETE with a key allowed to delete. Requires full access and an owner, admin or member role.

With an API key, this DELETE runs directly: the record stays 30 days in the trash and the response carries its trash_item_id. With an OAuth token, and through the MCP, it needs dry_run → confirm_token.

Scope
social_inbox:write and “Allow deletions” (social_inbox:delete in OAuth)
Permission
Edit in the module
MCP tool
social_inbox_snippets_deleteOn the full surface; on the compact one, mb_execute_operation with id: "social_inbox.snippets.delete".

Declared cost: up to 101 reads and 1 writes per call (they count against the daily quota).

Parameters

snippet_idstringpathrequired

The saved reply id (from social_inbox.snippets.list).

Response

oktrue
trash_item_idstring

The trash item this deletion left: the item_id of platform.trash.restore (POST /trash/{item_id}/restore). Missing if nothing went to the trash.

trash_item_idsarray<string>

Only when the deletion left more than one copy: all of them, the first being trash_item_id.

trash_expires_atnumber

When the copy leaves the trash for good (epoch ms): 30 days after the deletion.

Errors

Example

curl -X DELETE "https://api.mb-suite.com/v1/social-inbox/snippets/{snippet_id}" \
  -H "Authorization: Bearer $MB_API_KEY"

Try it with your test API key

With a test API key the request always goes to your practice organization: example data you can reset.

curl -X DELETE "https://api.mb-suite.com/v1/social-inbox/snippets/{snippet_id}" \
  -H "Authorization: Bearer $MB_TEST_KEY"