Skip to main content
Every successful generation job in Nomiq produces a Memory Node — a persisted context object that captures the prompt, the derived style seed, and the structural decisions the AI Engine made during that run. By passing a Memory Node’s ID into a subsequent generation call, you instruct the engine to load the prior stylistic context and treat your new prompt as a refinement instruction rather than a fresh creative brief. This is the primary mechanism for iterative brand work: adjusting colors while keeping the logo form, tightening voice while preserving visual identity, or generating multiple client-facing variations from a single approved root.

How Memory IDs Are Returned

Memory Nodes are created automatically at the end of every successful generation job. You do not call a separate endpoint to create them. The memory_id for a completed job is returned inside the generation.success webhook payload under data.memory_id:
Store the memory_id value (mem_X1y2Z3w4 in this example) in your database alongside the job record. You will pass it back to the Generation API in any subsequent refinement calls.

Iterating with a Memory ID

To refine an existing generation, include the memory_id parameter in the body of a new POST /v1/brands/generate request. The new prompt should describe only the change you want — you do not need to repeat the entire original brief.

The memory_id Parameter on Generate

memory_id
string
The unique identifier of an existing Memory Node (prefix mem_) from a previous successful generation. When provided, the AI Engine loads the referenced stylistic context and applies the new prompt as an incremental refinement. The resulting job produces a new Memory Node, allowing you to chain refinements in sequence. If omitted, the generation starts from scratch using only the provided prompt.

Example: Iterative Refinement

The following example shows a two-step workflow. The first call creates the initial brand identity for a coffee shop. The second call references the resulting Memory Node to adjust only the typography, while preserving the indigo color palette and logo form established in step one. Step 1 — Initial generation:
After the generation.success webhook fires, you receive memory_id: "mem_X1y2Z3w4". Now use that ID to refine the typography in a second call: Step 2 — Refine typography using the Memory Node:
Each generation call that includes a memory_id produces its own new Memory Node. This means you can chain refinements in a linear sequence — or branch multiple times from the same parent node to produce parallel variations.

Use Cases

Memory is most valuable when you need to make targeted adjustments without disrupting everything the AI Engine established in a prior run. Common patterns include:
Memory is especially powerful in client revision workflows. When a client approves a logo but requests color changes, branch a new generation from the approved Memory Node rather than re-running from scratch. This preserves billable approval milestones as discrete nodes in the graph and gives you a clean audit trail of every revision. Because Nomiq’s Memory graph is acyclic, you can also dispatch multiple parallel branches from the same approved node — for example, three color palette variations — and present them simultaneously to the client for a single round of feedback.

Listing Memory Nodes for a Project

GET https://api.nomiq.com/v1/projects/{project_id}/memory Returns a chronologically ordered list of all Memory Nodes belonging to a project, most recent first. Use this endpoint to inspect the full revision history of a project or to look up a memory_id you did not store at webhook delivery time.
project_id
string
required
The unique identifier of the project whose Memory Nodes you want to list.
limit
integer
Maximum number of Memory Nodes to return. Defaults to 10, maximum 100.
starting_after
string
A Memory Node ID cursor for pagination. Returns the page of results after this node.

Next Steps

Generation API

Dispatch brand generation jobs and pass memory_id to iterate on existing outputs.

Prompt Engineering

Learn how to write effective refinement prompts that work well with Memory Nodes.