Menu

API reference · SEO Planner

Shares

seo_planner · shares · 3 operations

POST/v1/seo-planner/shares

Email the month's SEO planning

seo_planner.shares.send

WriteSince 2026-11-01

SENDS an email (Amazon SES) with the SEO Planner of a month (month_key YYYY-MM): every action of the month with its type, status, description and sub-actions, plus a status 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 (an item of senders in branding.email_domain.get: the organization's verified domain or, for an Account, its workspace's; none or __system__ = MB Suite); 403 sender_not_allowed otherwise. locale (es, en, pt-BR; default es) is the language of the email: texts, month, action types and statuses. The send is recorded in the share history (seo_planner.shares.list). It reaches real inboxes: confirm the recipients first. Errors: 503 pdf_unavailable when the PDF service is not available (format pdf; nothing is sent, retry later); when SES does not send the email, 429 external_rate_limited, 409 external_rejected (its reason in details.provider_message), 503 external_unavailable (it surely did not reach SES: retry) or 409 external_outcome_unknown (no answer: the email may have gone out; check with the recipients before sending it again), all with details.platform ses. Viewers cannot share (403 role_required). Requires full access to the SEO 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
seo_planner:write
Permission
Edit in the module
MCP tool
seo_planner_shares_sendOn the full surface; on the compact one, mb_execute_operation with id: "seo_planner.shares.send".

Declared cost: up to 520 reads and 1 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 to share (YYYY-MM).

formatenumbodyrequired

html: the email with the month's actions; pdf: the same email with the month's PDF attached.

Values: pdf, html

toarray<string>bodyrequired

Recipients (1 to 20 addresses).

subjectstringbodyrequired

The subject (1 to 200 characters).

ccarray<string>bodyoptional

Copies (up to 20).

personal_notestringbodyoptional

A personal note shown at the top of the email, signed by the sender (up to 2,000 characters).

sender_idstringbodyoptional

The From: the id of a sender this person can use (an item of senders in branding.email_domain.get, of the organization or, for an Account, of its workspace); __system__ or nothing sends as MB Suite. 403 sender_not_allowed otherwise.

localeenumbodyoptional

Language of the email (texts, month name, type and status labels): es (default), en or pt-BR.

Values: es, en, pt-BR

Response

share_idstring

The share record (seo_planner.shares.list).

action_countnumber

Planner actions (cards) of the month.

effective_action_countnumber

The «Total actions» the email shows: each sub-action counts as one when the card has a checklist.

email_idstring

The SES message id.

Errors

Example

curl -X POST "https://api.mb-suite.com/v1/seo-planner/shares" \
  -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/seo-planner/shares

List the SEO planning emails sent

seo_planner.shares.list

ReadIdempotentSince 2026-11-01

Lists the emails that shared the SEO planning, newest first, paginated by cursor: month, format, recipients (to, cc), subject, personal note, sender, who sent it (sent_by with sent_by_name, the person's current name) and how many actions it carried. With month_key (YYYY-MM), only that month's. Viewers cannot see the history (403 role_required). Requires view access to the SEO Planner.

Scope
seo_planner:read
Permission
View the module
MCP tool
seo_planner_shares_listOn the full surface; on the compact one, mb_execute_operation with id: "seo_planner.shares.list".

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

Parameters

limitintegerqueryoptional

How many items this page brings at most (see the maximum and the default in the schema).

Default: 50

cursorstringqueryoptional

The next_cursor of the previous page, exactly as it came (only for the same list and filters); without it, the first page.

month_keystringqueryoptional

Only the shares of this month (YYYY-MM).

Response

dataarray<object>
has_moreboolean
next_cursorstring

Errors

Example

curl "https://api.mb-suite.com/v1/seo-planner/shares" \
  -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/seo-planner/shares" \
  -H "Authorization: Bearer $MB_TEST_KEY"
GET/v1/seo-planner/shares/preview

Preview the SEO planning email

seo_planner.shares.preview

ReadIdempotentSince 2026-11-01

Builds, without sending anything, the HTML of the email that seo_planner.shares.send would send for a month (month_key YYYY-MM) in a format (html by default, or pdf: the email that goes with the PDF, without building the PDF), with the branding of the sender it would use (sender_id), the optional personal note and the locale (es by default, as the send). Returns html, action_count (the planner actions of the month) and effective_action_count (the «Total actions» the email shows, where each sub-action counts as one). Viewers cannot preview (403 role_required). Requires view access to the SEO Planner.

Scope
seo_planner:read
Permission
View the module
MCP tool
seo_planner_shares_previewOn the full surface; on the compact one, mb_execute_operation with id: "seo_planner.shares.preview".

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

Parameters

month_keystringqueryrequired

The month (YYYY-MM).

formatenumqueryoptional

html (default) or pdf: the email of each format (the PDF itself is not built).

Values: pdf, html · Default: "html"

personal_notestringqueryoptional

A personal note shown at the top of the email, signed by the sender (up to 2,000 characters).

sender_idstringqueryoptional

The From: the id of a sender this person can use (an item of senders in branding.email_domain.get, of the organization or, for an Account, of its workspace); __system__ or nothing sends as MB Suite. 403 sender_not_allowed otherwise.

localeenumqueryoptional

Language of the email (texts, month name, type and status labels): es (default), en or pt-BR.

Values: es, en, pt-BR

Response

htmlstring

The email's HTML.

action_countnumber

Planner actions (cards) of the month.

effective_action_countnumber

The «Total actions» the email shows: each sub-action counts as one when the card has a checklist.

Errors

Example

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