Create a task from an audit issue
seo_site_auditor.tasks.create_from_issue
Creates a task in Tasks from one active issue of an audit (issue_id: id of an item of seo_site_auditor.issues.list with state=active): the title is the issue's title; the description says what is wrong, why it matters, how to fix it, up to 10 affected pages and the audited site; the priority follows the severity (critical → high, high → medium, the rest → low); it gets the organization's «SEO» task label if there is one; assignee defaults to the caller (null leaves it unassigned) and due_date to today (null leaves it without a date). Where it lands follows the app: an agency member working an account files it in the workspace's Tasks under that account (account_id; task_org_id says where it is); a member of the account, in the account itself (an account's own API key always files it there). The new task fires task_management.task.created to the webhooks of the organization that holds it. Errors: audit_run_not_found (404), audit_issue_not_found (404), audit_issue_ignored (409: the issue was marked as intentional), task_access_denied (403: no edit access to Tasks where the task goes), scope_insufficient (403: an API key also needs task_management:write). Not idempotent: each call creates a task. Requires edit access to Site Audit and to Tasks.
- Scope
seo_site_auditor:write- Permission
- Edit in the module
- MCP tool
seo_site_auditor_tasks_create_from_issueOn the full surface; on the compact one,mb_execute_operationwithid: "seo_site_auditor.tasks.create_from_issue".
Declared cost: up to 60 reads and 1 writes per call (they count against the daily quota).
Parameters
run_idstringpathAudit id (id from seo_site_auditor.runs.list, or run_id from seo_site_auditor.runs.trigger).
issue_idstringpathIssue id: the id of the check, e.g. meta_description_missing (id of an item of seo_site_auditor.issues.list).
assignee_idstring | nullbodyoptionalWho the task is assigned to (a person who can be in the task). Without it, the caller, as in the app; null leaves it unassigned.
due_dateinteger | nullbodyoptionalDue date in ms. Without it, today (as in the app); null leaves it without a date.
Response
task_idstringtask_org_idstringaccount_idstring | nulltaskobjectErrors
Example
curl -X POST "https://api.mb-suite.com/v1/seo/site-auditor/runs/{run_id}/issues/{issue_id}/tasks" \
-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 POST "https://api.mb-suite.com/v1/seo/site-auditor/runs/{run_id}/issues/{issue_id}/tasks" \
-H "Authorization: Bearer $MB_TEST_KEY"