Skip to content

Authentication

All Public API requests must be authenticated with an API key.

Creating an API key

See API Keys → Public API Keys for step-by-step instructions.

Including the key in requests

Add the key to every request using the X-Api-Key header:

http
GET /api/v1/public/audit-activity
Host: api.kovoco.net
X-Api-Key: your-api-key-here

Example: curl

bash
curl https://api.kovoco.net/api/v1/public/audit-activity \
  -H "X-Api-Key: your-api-key-here"

Example: PowerShell

powershell
$headers = @{ "X-Api-Key" = "your-api-key-here" }
Invoke-RestMethod -Uri "https://api.kovoco.net/api/v1/public/audit-activity" -Headers $headers

Example: C#

csharp
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("X-Api-Key", "your-api-key-here");
var response = await client.GetAsync("https://api.kovoco.net/api/v1/public/audit-activity");

Key scopes

When creating an API key, you select which scopes it has. Requests using a key that lacks the required scope return 403 Forbidden.

ScopePermitted endpointsStatus
read:audit-activityGET /audit-activity, GET /audit-activity/{recordId}, GET /audit-activity/summary✅ Active
read:alertsAlerts endpointsComing soon
read:findingsFindings endpointsComing soon
read:complianceCompliance health endpointsComing soon
read:reportsReport generationComing soon

Rate limiting

Public API keys are subject to per-minute rate limits:

Request typeDefault limit
GET (read)60 requests / minute

Exceeding the limit returns:

http
HTTP/1.1 429 Too Many Requests
Retry-After: 15

Wait the number of seconds indicated in the Retry-After header before retrying.

Key security

  • Store keys in secrets managers (Azure Key Vault, GitHub Secrets, etc.)
  • Never commit keys to source control
  • Set an expiry date on keys when possible
  • Revoke keys that are no longer needed

To revoke a key, see API Keys.

SQL Audit Monitoring, made simple.