Skip to main content
The Generation API is the core engine of Nomiq. Because building a complete brand identity — logo SVGs, color palettes, and typography — is computationally intensive, the endpoint operates asynchronously: you receive a 202 Accepted response within milliseconds, and the final assets are delivered to your webhook endpoint once the AI Engine finishes, typically within 3–10 seconds. You must have a valid project_id from the Projects API before calling this endpoint.

Generate a Brand

POST https://api.nomiq.com/v1/brands/generate Validates your request, enqueues a generation job against the AI Engine, and immediately returns a job object in the queued state. The completed brand assets are never returned in this response — configure a webhook URL to receive them asynchronously.

Request Body

project_id
string
required
The unique identifier of an existing project (prefix proj_) where the generated assets will be stored. Obtain this from POST /v1/projects. Returns 404 if the project does not exist in your workspace.
prompt
string
required
A semantic, natural-language description of the brand you want to generate. The AI Engine uses this as the sole creative brief — be specific about industry, aesthetic, colors, and typography. Maximum 2,000 characters. See the Prompt Engineering guide for best practices.
webhook_url
string
An HTTPS URL to receive the generation.success or generation.failed event for this specific job. When provided, this overrides the default webhook URL configured in Workspace Settings for this request only. Must be a valid, publicly reachable HTTPS endpoint.
memory_id
string
The ID of a Memory Node from a previous generation (prefix mem_). When supplied, the AI Engine loads the prior generation’s style seed and applies your new prompt as an incremental refinement rather than a fresh generation. See the Memory API for details.

Example Request

The following example dispatches a generation job for a Brooklyn cold brew coffee shop. Pass your real project_id in place of proj_1A2b3C4d5E.

Response (202 Accepted)

The API responds immediately with HTTP 202 Accepted. The response body contains the job object in its initial queued state — the final assets are not present at this stage.

Response Fields

object
string
Always "job".
id
string
The unique identifier for this generation job (prefix job_). This ID is included in the webhook payload so you can correlate the async result with the original request.
project_id
string
The project ID this job belongs to, echoed from your request.
status
string
The current state of the job. Immediately after dispatch this will always be "queued". Possible values are queued, processing, succeeded, and failed — the final state is reported in the webhook payload, not via polling.
created_at
integer
Unix timestamp (seconds) recording when the job was enqueued.
Do not poll the API to check job status. There is no GET /v1/jobs/{job_id} status endpoint. The only supported way to receive completed assets is by listening for the generation.success webhook event. Attempting to work around this with high-frequency requests to other endpoints will trigger HTTP 429 Too Many Requests errors and may result in temporary account suspension.

Rate Limits

Generation requests consume significant GPU resources and are subject to strict per-minute rate limits based on your subscription tier. If you exceed the limit, the API returns HTTP 429 with a Retry-After header indicating when you may resume. Rate limit headers are included on every response:

Next Steps

Webhooks

Configure your server to receive completed brand assets and handle signature verification.

Memory API

Pass a Memory ID to iterate on an existing generation instead of starting from scratch.