Skip to content

For developers & headless stacks

An API-first CMS for developers. That writes the posts, too.

Every headless CMS gives you a content API and an empty editor. Structura gives you the API and the content: SEO-researched articles, written and published on a schedule, served as JSON your Next.js, Astro, or custom front end fetches. Three read endpoints, no auth, nothing to host.

Free plan · No credit card · Bring your own AI key, no markup

Headless CMS blog costs

The CMS was never the expensive part.

You can wire up a headless CMS in an afternoon. Then somebody has to research, write, and publish three posts a week — forever.

Headless CMS seat
$0–300/moand the editor stays empty
Writer or agency
$100+/postper article — briefed by you, pasted by you
Structura
from $0content backend and the writing, one API

On the free and BYOK plans you bring your own OpenAI, Gemini or Claude key and pay the provider directly — typically $5–$15 a month for daily publishing. We don't mark up AI.

Headless CMS vs. Structura

Same API shape. One of them ships content.

A headless CMS is a database with an editor. Structura is the editor, the writer, and the API — with the SEO work done before the post reaches your fetch.

Content API

Typical headless CMS

Yes — empty until someone writes

Structura

Yes — filled on a schedule you set

Who writes

Typical headless CMS

Your team, a freelancer, or nobody

Structura

Structura — SERP-researched, persona-voiced posts

SEO metadata

Typical headless CMS

Fields you fill in by hand

Structura

Meta title, description, keyphrase, OG, JSON-LD — in the response

Images

Typical headless CMS

Upload your own

Structura

Generated, alt-texted, delivered with width and height

Internal links

Typical headless CMS

Manual

Structura

Validated and pointed at your real domain

Authentication

Typical headless CMS

API keys, tokens, rate plans

Structura

None — public read API, CDN-cached

Hosting

Typical headless CMS

Self-host or pay per seat

Structura

Nothing to run — Structura is the backend

Already using WordPress as a headless backend? Keep it — the plugin runs in headless mode and publishes into the WordPress REST API your front end already reads.

Content API for developers

A response contract you can render blind.

Everything a blog page needs comes back in one GET — no second call for images, no separate SEO plugin, no HTML you have to sanitize yourself.

Sanitized HTML or structured blocks

Every post ships as strict-allowlisted HTML you can inject as-is — no scripts, no inline handlers — plus a blocks array if you'd rather render components yourself.

SEO fields in the payload

Meta title, meta description, keyphrase, Open Graph, categories and tags. Your head tag is a spread, not a form.

JSON-LD out of band

FAQPage and HowTo schema arrive as an array alongside the body, so the sanitizer can strip script tags and you still get rich-result eligibility.

Images with dimensions

Featured and body images come as url, width, height and alt — ready for next/image, no layout shift.

ISR-friendly by design

publishedAt and updatedAt on every post, cursors in both directions on every list, CDN-cached responses. Revalidate on updatedAt and stop re-rendering the world.

One blog per language

A language parameter selects a separate blog with its own campaign, categories and tags. Ship en, de, es and fr from one backend.

API-first CMS in three endpoints

Three endpoints. One afternoon.

  1. Create a headless space

    In the customer portal, add a site, pick Headless, and enter your public URL. The same wizard WordPress sites use learns your brand, persona, and visual style.

  2. Run a campaign

    Structura builds a keyword bank from real search demand, then researches, writes, illustrates, links, and publishes posts on the schedule you set. Approve each one, or let it run.

  3. Fetch and render

    GET /posts for the index, GET /posts/{slug} for a page, GET /terms for the archive nav. Drop the HTML in, spread the meta into your head, emit the JSON-LD. Done.

API-first CMS pricing

A content backend that costs less than a CMS seat.

Start free with your own AI key. Move up to managed AI and the full intelligence stack whenever you're ready — no contracts either way.

Bring your own AI

BYOK

You supply the AI. We supply the engine.

Bring your own API key

Pay your AI provider directly.

Monthly billing rate $15$12/ site / month
$144 per site, billed yearly
Save $36 per site / year

The full publishing engine

  • Everything in Free
  • SEO, SERP & competitor research
  • Keyword Bank and authority links
  • All channels and Search Console
  • Up to 10 active campaigns
  • Priority support

AI usage is billed by your provider.

Managed AIAI included

Cloud

We run the AI. No API keys, no provider bills.

Posts per site per month
Recommended starting point
Monthly billing rate $49$39/ site / month
$468 per site, billed yearly
Save $120 per site / year

Included per site, every month

posts
30
images
90
AI videos
10
  • Everything in BYOK
  • Same AI quality at every volume
  • All channels and unlimited campaigns
  • Support from the Structura team

Lower rates from your fifth site.

Cloud, 30 posts per site per month: $39 per site per month, $468 per site billed yearly. Includes 90 images and 10 AI videos per site per month.

Applicable taxes are calculated at checkout based on your location.

Just want to try it with your own API key? Start on the free plan

Volume pricing

Cloud · 30 posts

Per site / month · billed yearly

Sites 1–4
$39
Sites 5–9
$34
Sites 10–24
$30
25+ sites
Contact sales

Each rate applies to the sites in that bracket.

Compare every plan in detail

Developer questions

What developers ask first

Is this a headless CMS?

Functionally, yes: a content store with a public read API that your front end renders. The difference is what's in it. A headless CMS ships empty and waits for editors; Structura fills it with SEO-researched posts on a schedule, so the API is worth fetching from day one.

Does it work with Next.js?

Yes — fetch at build or revalidation time like any other data source. The docs include an App Router example with ISR, and the same fetch works from Astro, Nuxt, SvelteKit, Remix, a mobile app, or plain Node. There's no SDK to install; it's JSON over HTTPS.

How is the API authenticated?

It isn't, on purpose. The API serves published posts only, and a blog is public by definition, so there are no keys to rotate or leak. Drafts and scheduled posts never appear. Responses are CDN-cached.

Can I keep WordPress as the backend?

Yes. If your front end already reads a headless WordPress install, run the plugin there in headless mode: it publishes native Gutenberg posts into WordPress and points internal links and channel shares at your public domain instead of the CMS host.

Do I get raw HTML or structured data?

Both. Each post carries sanitized HTML you can inject directly — strict tag allowlist, no scripts or inline handlers — and a blocks array if you prefer to render components yourself. Schema.org JSON-LD comes as a separate array so nothing gets stripped.

How do I know when there's a new post?

Poll the list endpoint at your revalidation interval and key on updatedAt — it's your revalidation signal. Lists are cursor-paginated in both directions, so an index page renders purely from its own URL token.

Can I review posts before they reach the API?

Yes. Every post lands in the portal for review, and publishing it is what makes it appear on the API. Or switch a campaign to full autopilot once you trust it.

Content API with the posts included

Stop wiring up an empty CMS.

Create a headless space, run your first campaign, and fetch a real post today — free.