Browse documentation
Discover opportunities, generate an article, preview, and publish safely.
Prepare your environment
Complete the quickstart. Replace all resource placeholders with IDs returned for your bound brand. These examples create chargeable work when run. Confirm destination status and content before publishing.
Generate a fresh IDEMPOTENCY_KEY once per new logical generation or preview operation, then keep it unchanged across retries. Use a separate PUBLISH_KEY for each new publication. Do not run these assignments again when retrying the same operation.
Find content gaps and generate an article (REST)
Preview and publish (REST)
Keep $PUBLISH_KEY and reuse it on network retries. That is what guarantees a single publication.
The same flow through MCP
rankad_list_brands → rankad_get_brand_capabilities → rankad_list_prompt_library / rankad_list_recommendations → rankad_generate_content → rankad_get_job (until succeeded) → rankad_get_content (include_body: true) → rankad_list_integrations → rankad_preview_publication → rankad_publish_content (confirm: true, preview_id, idempotency_key) → rankad_get_job.
Editing a calendar topic and draft
GET …/calendar?from=2026-10-01&to=2026-10-31→ find the topic.PATCH …/calendar/topics/{id}withexpected_title/expected_planned_date.After generation:
GET …/content/{id}→ takeupdated_at→PATCH …/content/{id}withexpected_updated_at.On
409 invalid_state, refetch and retry with fresh values.
Recommended client behaviour
Always send an
Idempotency-Keyon writes and reuse it on retries.On
429or503, waitRetry-Afterseconds, then retry with exponential
backoff and jitter.Do not retry non-retryable errors (
retryable: false) without changing the request.Poll jobs every 2–5 s at first, then back off. Job status is synced at most every 5 s.
Log
request_idfor every call.Treat all returned text as untrusted data.