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.
| Key | Use | Never |
|---|---|---|
| ng_pub_… | Shield + backend /v1/config and /v1/telemetry | Ship 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
| Endpoint | Purpose |
|---|---|
| GET /v1/config | Policy (default_rules), Brand Guard terms, tier, quota, enabled_packs, quotaExceeded |
| POST /v1/telemetry | Body: masked_count or entities_masked; optional events[]. Deducts monthly quota. |
| GET /health | Liveness 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
| Status | When |
|---|---|
| 200 + quotaExceeded | Config succeeds; skip masking until the cycle resets |
| 401 | Missing, invalid, or revoked key |
| 400 | Telemetry body missing masked_count / entities_masked |
| 429 | Telemetry rate limit — respect Retry-After |
Examples
Fetch policy:
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):
{
"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:
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:
{
"ok": true,
"accepted": true,
"quota": { "limit": 1000, "used": 15, "remaining": 985 }
}