Draft an SEO strategy
https://seolyticize.com /api/v1/tools/draft_seo_strategy Drafts a 12-month SEO strategy for the client and saves it as a written report (save: false returns it without saving): a plan for its business type (SaaS, local, ecommerce, publisher or agency, as get_seo_scorecard detects it) in four phases — weeks 1–4, weeks 5–12, weeks 13–24 and months 7–12 — a teardown of the top five competitors (competitors, else the brief's and the ones we see ranking beside it) from the data we hold, a KPI table at baseline, 3, 6 and 12 months with baselines from Search Console and targets from forecast_search_clicks, plus indexed pages (URL Inspection, against the pages meant to be indexed) and phone Core Web Vitals (Chrome UX Report p75 against Google's good lines), the site structure from the latest crawl, the URL architecture and a schema plan by page type for the business type (no FAQPage, no self-serving ratings), and a calendar from plan_content (the stored plan, or a new one built when there is none). Every figure comes from the client's data and is named with its source; Claude writes the prose around them and invents none. instructions adds the agency's own direction. One metered Claude call: quote it with estimate_cost. Answers 'write us an SEO strategy' and 'what is the plan for this client this year'.
Parameters
Idempotency-KeystringheaderRequest body
application/json
clientIdstringrequiredcompetitorsstring[]instructionsstringsavebooleanmaxCostMicrosintegerdryRunboolean{
"clientId": "string",
"competitors": [],
"instructions": null,
"save": true,
"maxCostMicros": 0,
"dryRun": true
}Code samples
cURL
curl -X POST "https://seolyticize.com/api/v1/tools/draft_seo_strategy" \
-H "Authorization: Bearer $SEOLYTICIZE_API_KEY" \
-H "Idempotency-Key: <value>" \
-H "Content-Type: application/json" \
-d '{"clientId":"string","competitors":[],"instructions":null,"save":true,"maxCostMicros":0,"dryRun":true}'TypeScript
Python
Go
PHP
Ruby
Java
Responses
data, and its meta.Example
{
"data": {},
"meta": {
"requestId": "string",
"costMicros": 0,
"cached": true,
"cachedFrom": "string",
"dataAsOf": "string",
"sources": [
"string"
],
"partial": true,
"next": [
{
"tool": "string",
"args": {},
"why": "string"
}
],
"nextCursor": "string",
"dryRun": true
}
}Schema
datarequiredmetaobjectrequiredShow child parameters
requestIdstringrequiredcostMicrosintegerrequiredcachedbooleanrequiredcachedFromstringdataAsOfstringsourcesstring[]partialbooleanrequirednextobject[]requiredShow child parameters
toolstringargsobjectwhystringnextCursorstringdryRunbooleanX-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerX-Request-IdstringExample
{
"error": "string",
"code": "string",
"next": "string",
"requestId": "string"
}Schema
errorstringrequiredcodestringnextstringrequestIdstringX-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/draft_seo_strategy
WWW-AuthenticatestringSame as 400 · POST /api/v1/tools/draft_seo_strategy
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/draft_seo_strategy
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/draft_seo_strategy
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/draft_seo_strategy
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/draft_seo_strategy
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerRetry-AfterintegerSame as 400 · POST /api/v1/tools/draft_seo_strategy
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-Resetinteger