API

Limits and errors

The exact rate limits, the billing gate, error codes, and per-domain check outcomes.

Not verified yet

Rate limits

The cost-driving endpoints have fixed hourly limits, enforced per organization and per user (both must pass):

ActionPer organizationPer user
Single checks (POST /check)600 / hour200 / hour
Bulk check creation (incl. name-generator → check)60 / hour20 / hour
Name-generation jobs30 / hour10 / hour

Exceeding a limit returns 429 TOO_MANY_REQUESTS; the window is rolling — wait and retry. Note the bulk limit caps job creation, not job size: one job with 100,000 domains is one unit against the limit.

Inside a bulk job, throughput is additionally governed by a per-organization concurrency cap (fair scheduling) — that one never errors, it just queues.

Billing gate

Endpoints that create chargeable work — single and bulk checks, saving domains, name-generation jobs, creating watchers — are refused with 402 ORG_BLOCKED while your organization is blocked over unpaid invoices. Reads keep working. See Platform → Billing → Dunning.

Usage and free tiers

Usage is metered by the method that answered each check (index / DNS / RDAP / WHOIS), plus AI content checks, name-generation jobs, and active watchers. Each dimension has a free-tier allowance; the bulk-check dialog shows the free-vs-billable split before a job runs. Rates and allowances: pricing.

Error codes

Errors use the platform shape { "type", "msg", "fields?" }:

HTTPtypeMeaning
400INVALID_PAYLOADThe body or query didn't parse / a required field is missing.
400VALIDATION_FAILEDA field failed validation (domain without a dot, bad maxAge duration, keyword too short, cancelling a non-processing job…) — check fields.
401UNAUTHORIZEDToken missing, expired, or wrong audience.
402ORG_BLOCKEDOrganization blocked for unpaid invoices.
404NOT_FOUNDThe job / watcher / hit doesn't exist — or belongs to another organization (deliberately indistinguishable).
409CONFLICTA watcher with this keyword already exists in the organization.
429TOO_MANY_REQUESTSA rate limit above was exceeded.
500INTERNAL_ERRORUnexpected server error — retry with backoff.

Per-domain outcomes

Individual domains inside a check or bulk job never fail the request; they resolve to a status on the result itself:

StatusMeaning
registered / availableThe verdict.
errorLookup failed — the result's error message says why (malformed response, no RDAP/WHOIS server for the TLD, network failure).
timeoutThe source didn't answer within the 5-second per-source timeout.
rate_limitedThe registry's WHOIS server rejected the query; re-check later.

Status

Live platform status: status.norcube.com. Bulk jobs survive incidents by design — queued work is persistent, and items caught mid-processing by a restart are re-queued automatically within minutes.

On this page