Menu

API reference · Social Planner

Monthly planning

social_planner · planning · 2 operations

POST/v1/social-planner/planning/share

Email the month's planning

social_planner.planning.share

WriteSince 2026-11-01

SENDS an email (Amazon SES) with the Social Planner grid of a month (month_key YYYY-MM): every post of the month with date, networks, format, status, labels, text and thumbnail, plus a status and network summary; with format pdf the month's PDF is attached too. All recipients go in one email (to up to 20, cc up to 20). sender_id picks the From among the senders this person can use (the organization's domain senders; none or __system__ = MB Suite); 403 sender_not_allowed otherwise. The send is recorded in the planning share history. With format pdf, 503 pdf_unavailable when the PDF service is not available (nothing is sent). If Amazon SES does not take the email: 409 external_rejected, 429 external_rate_limited, 503 external_unavailable (it surely did not go out) or 409 external_outcome_unknown (it may have gone out: check before sending again). It reaches real inboxes: outside the screen it needs a dry run and a confirm_token; the dry run says the recipients, the From, the month, the format and how many posts go, and social_planner.planning.preview gives the HTML. Dates and times are the posts' own time zone (or the organization's); locale (es, en, pt-BR; default es) sets the email's language. Requires full access to the Social Planner.

Needs confirmation: first dry_run: true (preview and confirm_token, valid 10 minutes and for one run), then the same body with confirm_token. In a few operations only with certain data: the description says when. Why and how: Dry run and confirm_token.

Scope
social_planner:write
Permission
Edit in the module
MCP tool
social_planner_planning_shareOn the full surface; on the compact one, mb_execute_operation with id: "social_planner.planning.share".

Declared cost: up to 260 reads and 2 writes per call (they count against the daily quota). Touches an external platform (ses): it counts against the external operations quota.

Parameters

month_keystringbodyrequired

The month, YYYY-MM (like 2026-10), in the organization's time zone.

formatenumbodyrequired

html = the email with the month's grid; pdf = a short email with the month's PDF attached.

Values: pdf, html

toarray<string>bodyrequired

Recipients (1 to 20); all of them go in one email.

subjectstringbodyrequired

Subject of the email.

ccarray<string>bodyoptional

Copy recipients (up to 20).

personal_notestringbodyoptional

Optional personal note shown on top of the email, signed with the sender's name.

sender_idstringbodyoptional

The From: a sender id of the organization's domain senders (the ones this person can use), or __system__ / nothing for MB Suite. It also decides the email's branding.

localeenumbodyoptional

Language of the email (es, en or pt-BR): texts, statuses, formats, month and dates. Default es.

Values: es, en, pt-BR

Response

share_idstring
post_countnumber
email_idstring

Errors

Example

curl -X POST "https://api.mb-suite.com/v1/social-planner/planning/share" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "month_key": "MONTH_KEY",
  "format": "pdf",
  "to": [
    "TO"
  ],
  "subject": "SUBJECT",
  "dry_run": true
}'

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. In the practice organization this operation is not simulated (it reaches another platform): it answers 409 sandbox_external_unavailable.

GET/v1/social-planner/planning/preview

Preview the month's planning email

social_planner.planning.preview

ReadIdempotentSince 2026-11-01

Builds, without sending anything, the HTML of the email that social_planner.planning.share would send for a month (month_key YYYY-MM, in the organization's time zone), with the branding of the sender it would use (sender_id), the optional personal note and the language (locale es, en or pt-BR; default es). It comes as it would go out: the posts' thumbnails as absolute links signed for one hour that open without a session (the sent email carries them signed for good), dates and times in each post's time zone. Returns html and the number of posts in the month. Requires view access to the Social Planner.

Scope
social_planner:read
Permission
View the module
MCP tool
social_planner_planning_previewOn the full surface; on the compact one, mb_execute_operation with id: "social_planner.planning.preview".

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

Parameters

month_keystringqueryrequired

The month, YYYY-MM (like 2026-10), in the organization's time zone.

formatenumqueryoptional

html = the email with the month's grid; pdf = the short email that goes with the PDF. Default html.

Values: pdf, html · Default: "html"

personal_notestringqueryoptional

Optional personal note shown on top of the email, signed with the sender's name.

sender_idstringqueryoptional

The From: a sender id of the organization's domain senders (the ones this person can use), or __system__ / nothing for MB Suite. It also decides the email's branding.

localeenumqueryoptional

Language of the email (es, en or pt-BR): texts, statuses, formats, month and dates. Default es.

Values: es, en, pt-BR

Response

htmlstring
post_countnumber

Errors

Example

curl "https://api.mb-suite.com/v1/social-planner/planning/preview?month_key=MONTH_KEY" \
  -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-planner/planning/preview?month_key=MONTH_KEY" \
  -H "Authorization: Bearer $MB_TEST_KEY"