Skip to content

Content Schemes

Every report type has a content_scheme that determines the structure of the content and html fields on each keyword in the report content endpoint.

Always read content_scheme first

Do not hardcode assumptions about the shape of content or html. Always inspect content_scheme at the top level of the content response before accessing keyword data.


Object vs. array of variants

Some schemes produce a single object per keyword. Others produce an array of variant objects (typically 2-6 alternatives) so you can pick the one that fits best when publishing.

js
// Safe pattern for any scheme
const variant = Array.isArray(keyword.content)
  ? keyword.content[0]  // pick first variant
  : keyword.content;    // use directly

Scheme reference

Schemecontent typecontent fieldshtml typehtml keys
single_text_blockobjecttextobjecttext
metadataarray of 3meta_title, meta_descriptionarray of 3meta_title, meta_description
h1_headlinesarray of 3h1array of 3h1
h2_text_blocksarray of 3h2, textarray of 3h2_and_text
h3_text_blocksarray of 3h3, textarray of 3h3_and_text
h4_text_blocksarray of 6h4, textarray of 6h4_and_text
qa_blockarray of 4question, answerobjectqa
image_alt_textobjectsearch_terms (array of 2), alt_texts (array of 4)objectalt_texts (array of 4 <img> tags)
link_blocksarray of 2h2, text, links (array of {anchor_text, url})array of 2h2_and_text
h2_summary_blockobjecth2, texts (array of 2)objecttexts (array of 2 pre-rendered <h2>…<p>… strings)
subnavigationobjectlinks (array of {keyword, url})objectsubnavigation (rendered <div> block)
bullet_pointsobjecth2, text, bullet_points (array)objectbullet_points (rendered <h2>…<ul>… string)
numbered_pointsobjecth2, text, numbered_points (array)objectnumbered_points (rendered <h2>…<ol>… string)

Examples

h3_text_blocks - array of 3 variants, pick one

json
"content": [
  { "h3": "Leading SEO Agency in Stockholm", "text": "We help businesses in Stockholm…" },
  { "h3": "Expert SEO Services Stockholm",   "text": "Our Stockholm-based team…" },
  { "h3": "Stockholm SEO - Results That Last", "text": "Proven SEO strategies…" }
],
"html": [
  { "h3_and_text": "<h3>Leading SEO Agency in Stockholm</h3>\n<p>We help businesses…</p>" },
  { "h3_and_text": "<h3>Expert SEO Services Stockholm</h3>\n<p>Our Stockholm-based team…</p>" },
  { "h3_and_text": "<h3>Stockholm SEO - Results That Last</h3>\n<p>Proven SEO strategies…</p>" }
]

metadata - array of 3 paired sets

json
"content": [
  { "meta_title": "SEO Agency Stockholm | Acme",    "meta_description": "Get found on Google with Acme's proven SEO services." },
  { "meta_title": "Top-Rated Stockholm SEO | Acme", "meta_description": "Acme helps Stockholm businesses rank higher." },
  { "meta_title": "Stockholm SEO Services - Acme",  "meta_description": "Expert SEO for Stockholm companies." }
],
"html": [
  { "meta_title": "<title>SEO Agency Stockholm | Acme</title>", "meta_description": "<meta name=\"description\" content=\"Get found on Google…\">" },

]

bullet_points - single object

json
"content": {
  "h2": "Why Choose Us",
  "text": "Our approach is built on three pillars:",
  "bullet_points": ["Data-driven strategy", "Transparent reporting", "Dedicated account management"]
},
"html": {
  "bullet_points": "<h2>Why Choose Us</h2>\n<p>Our approach is built on three pillars:</p>\n<ul>\n  <li>Data-driven strategy</li>\n  <li>Transparent reporting</li>\n  <li>Dedicated account management</li>\n</ul>\n"
}
json
"content": [
  {
    "h2": "Explore Our SEO Services",
    "text": "Our full-service SEO offering covers everything from…",
    "links": [
      { "anchor_text": "Technical SEO", "url": "https://digipartner.se/technical-seo" },
      { "anchor_text": "Content Strategy", "url": "https://digipartner.se/content" }
    ]
  }
],
"html": [
  { "h2_and_text": "<h2>Explore Our SEO Services</h2>\n<p>Our full-service SEO offering…</p>" }
]

links are provided in content for you to wire up manually. The html field contains the heading and text only - links are not rendered into the HTML output.

qa_block - array of 4 Q&A pairs (content), single rendered block (html)

json
"content": [
  { "question": "What is SEO?",          "answer": "SEO stands for…" },
  { "question": "How long does it take?", "answer": "Results typically appear…" },
  { "question": "What does it cost?",    "answer": "Pricing varies…" },
  { "question": "Do I need a contract?", "answer": "We offer both…" }
],
"html": {
  "qa": "<p>\n  What is SEO?\n  <br>\n  SEO stands for…\n</p>\n…"
}

image_alt_text - single object with search terms and alt texts

json
"content": {
  "search_terms": ["professional seo team office", "data analytics dashboard"],
  "alt_texts": ["SEO team reviewing analytics", "Dashboard showing keyword rankings", "Meeting about SEO strategy", "Laptop with SEO tools open"]
},
"html": {
  "alt_texts": [
    "<img src=\"https://admin.trakk.ai/assets/img/Trakk_logotyp_RGB.svg\" alt=\"SEO team reviewing analytics\">",
    "…"
  ]
}