Docs / API

API Gateway reference

Base URL: https://api.noeticguard.com. There is no “mask this text” HTTP endpoint — see the SDK quickstart.

On this page+

Auth & keys

Create keys in Dashboard → API Keys. Send Authorization: Bearer …. Revoking a key does not reset workspace quota or audit history.

KeyUseNever
ng_pub_…Shield + backend /v1/config and /v1/telemetryShip in public repos or mobile binaries
ng_secret_…Trusted servers on Startup+ (optional)Browsers or mobile apps

Limits (enforced in the dashboard and database): Developer (Free) workspaces may have one active publishable key. Startup and above may have up to 10 active keys per type (publishable and secret counted separately). Secret keys require Startup+. Revoke an unused key before creating another if you hit the cap. Plans: Developer $0 → Startup $99 → Business $399 — pricing.

Legacy tn_* prefixes are rejected.

Endpoints

EndpointPurpose
GET /v1/configPolicy (default_rules), Brand Guard terms, tier, quota, enabled_packs, quotaExceeded
POST /v1/telemetryBody: masked_count or entities_masked; optional events[]. Deducts monthly quota.
GET /healthLiveness check

Telemetry is the only path from the SDK into dashboard usage. Developer (Free) sees the Home / Billing meter. Audit Logs and volume charts are Startup+. Config still returns enabled_packs on any entitled workspace — merge them in the SDK with mergeEnabledKindsWithPacks (quickstart).

Errors & quota

StatusWhen
200 + quotaExceededConfig succeeds; skip masking until the cycle resets
401Missing, invalid, or revoked key
400Telemetry body missing masked_count / entities_masked
429Telemetry rate limit — respect Retry-After

Examples

Fetch policy:

bash
curl -s https://api.noeticguard.com/v1/config \
  -H "Authorization: Bearer ng_pub_YOUR_KEY"

Excerpt of a successful config body (full payload also includes policy row fields):

json
{
  "tier": "free",
  "workspace_name": "Acme",
  "default_rules": {
    "email": true,
    "creditCard": true,
    "phone": true,
    "iban": true,
    "nationalId": true,
    "tr-tckn": true
  },
  "brand_guard_terms": [],
  "brand_guard_competitors": [],
  "brand_guard_allowlist": [],
  "quota": { "limit": 1000, "used": 12, "remaining": 988 },
  "quotaExceeded": false,
  "enabled_packs": []
}

Report usage:

bash
curl -s -X POST https://api.noeticguard.com/v1/telemetry \
  -H "Authorization: Bearer ng_pub_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"masked_count": 3, "events": [{"platform": "my-app", "masked_count": 3}]}'

Successful telemetry body:

json
{
  "ok": true,
  "accepted": true,
  "quota": { "limit": 1000, "used": 15, "remaining": 985 }
}