Novelty Check and What-Next API: is this new, and what should I write next?

By Jack Stovell X · Instagram · LinkedIn · published 2026-10-29

Novelty Check tells you, before you write, whether a brief repeats what the voice has already argued. What-Next proposes angles grounded in what it has already said. Developers, agents and content teams call both over REST or the MCP server, on every plan, Free included.

At a glance

What it does: Checks a brief against everything the voice has said before you write, and proposes what to write next.

Endpoints`POST /v1/profiles/{id}/novelty`, `GET /v1/profiles/{id}/next`
MCP tools`check_novelty`, `what_next`
CostFree on every plan, no generation credit; counts against the monthly AI usage ceiling

How the verdict is reached

You send a brief to POST /v1/profiles/{id}/novelty (check_novelty). The API works out what a piece from that brief would argue, then finds the nearest things the voice has already said. Then it rules.

The thresholds are plain:

  1. repeats: needs two prior pieces at 0.86 similarity or above.
  2. builds_on: needs one prior piece at 0.78 or above.
  3. new: everything else. An empty memory always gives new.

You don't just get a label, though. The response returns the closest prior pieces, each with the memory and its verbatim quote, so you can see exactly what collided with your brief. It lists the established ideas you could build on. It lists gaps: topics in your brief the writing hasn't covered. And it offers up to three grounded angles, each naming the idea it builds on and the gap it fills.

Two practical notes. The brief is cut to 4,000 characters. And with repeat policy 'allow', repeats are reported as information rather than treated as a stop sign. Every check is logged with a check_id, so you can trace a verdict later.

What to write next

Sometimes you don't have a brief. You have a blank calendar and a vague sense that you've said enough about the same three things. GET /v1/profiles/{id}/next (what_next) is for that.

It proposes up to five angles. Each one builds on an established idea and either fills a thin topic (touched once) or revisits a stale one. Every angle comes with its reason, so you aren't taking a suggestion on faith.

Alongside the angles you get three lists: established, thin and stale. That's the useful bit. Established tells you what the voice owns. Thin tells you where it has only dipped a toe. Stale tells you what it hasn't touched in a while and might deserve a second look.

When the voice has a default company, the angles serve that company's audience and facts. So the suggestions stay on brand, not just on topic.

One caveat, and to be fair it's a sensible one. When the memory has no established ideas yet, the result is empty. There's nothing to build on, so it doesn't pretend otherwise. Feed the memory first, via the voice brain memory API, and the angles follow.

When to use it

Three situations come up again and again.

Content calendars. Run a check on each planned topic before it earns a slot. Anything that comes back repeats gets reworked or dropped. Anything new or builds_on goes ahead. Then use What-Next to fill the gaps the calendar leaves.

An agent drafting weekly posts. An agent connected through the MCP server at https://mcp.scriptgrain.com/mcp can call the check first and write second. It stops the slow drift where an unattended writer restates last month's argument with new adjectives. Once a topic clears, hand it to the outline endpoint.

A team sharing one brain. When several people write in one voice, nobody remembers everything it has said. The memory does. Check against it before anyone starts.

The mechanics are light. Auth is an sg_live_ key minted at Settings, then API, sent as Authorization: Bearer. The limit is 60 requests a minute per key. Both calls are free of generation credit, though they count against the account's monthly AI usage ceiling. There's no separate API quota; calls draw on the same credits as the app. If you want ideas without an API call, the content ideas generator is the manual route.

Request and response

Check a brief before drafting (from the OpenAPI spec's examples; lists cut to one item).

curl -X POST https://auth.scriptgrain.com/functions/v1/api-v1/v1/profiles/{id}/novelty \
  -H "Authorization: Bearer sg_live_..." \
  -H "Content-Type: application/json" \
  -d '{"brief": "A post on why plain language beats jargon in B2B sales emails"}'
{
  "verdict": "builds_on",
  "repeat_count": 0,
  "builds_on_count": 1,
  "closest": [
    {
      "title": "Why plain writing wins",
      "similarity": 0.81,
      "unit": "Short sentences carry the argument; long ones carry the evidence.",
      "quote": "I keep the claim short and let the evidence run long."
    }
  ],
  "gaps": [
    "sales emails"
  ],
  "angles": [
    {
      "angle": "Show a before-and-after of one jargon-heavy sales email.",
      "builds_on": "Short sentences carry the argument; long ones carry the evidence.",
      "fills": "sales emails"
    }
  ],
  "repeat_policy": "avoid"
}

In Claude, ChatGPT or Cursor

Over MCP this is the tools `check_novelty` and `what_next`. Connect `https://mcp.scriptgrain.com/mcp` once (a custom connector in claude.ai, developer mode in ChatGPT on the web, the MCP settings in Cursor, or `claude mcp add` in Claude Code), then ask in plain words:

Before you draft, check this brief against my ScriptGrain memory. If I've already made this argument, suggest an angle that builds on it instead.

Then pass the chosen angle to `generate_content` as the brief.

Get a key

API and MCP access is on every plan, Free included. Create a free account (no card), then mint a key at Settings, then API: it starts `sg_live_`, is shown once, and goes in an `Authorization: Bearer` header. Every request, field and error code is in the OpenAPI spec.

Questions

Does a Novelty Check cost generation credit?

No. Both Novelty Check and What-Next are free of generation credit. They do count against the account's monthly AI usage ceiling, so heavy automated use is still worth watching. Calls draw on the same credits as the app, and there is no separate API quota to track.

What happens if my brief is very long?

The brief is cut to 4,000 characters before it's analysed. Anything past that is ignored, so put the core argument first. If a longer brief matters, split it into separate checks, one per distinct idea. Every check is logged with its own check_id.

Can I still write a piece the check calls a repeat?

Yes. The verdict advises; it doesn't block. With repeat policy 'allow', repeats are reported as information, and you decide what to do with them. The response shows the closest prior pieces and their verbatim quotes, so you can judge whether your angle really differs.

Why would What-Next return nothing?

Because the voice's memory has no established ideas yet. What-Next builds each angle on something the voice has already said, so an empty memory gives an empty result. Add writing to the memory through the voice brain and the angles, plus the established, thin and stale lists, will appear.

Related