Developer Integration
Privacy audit as part of your deployment pipeline. API-first, CLI-compatible, webhook-driven.
https://forensicprivacy.io/api/v1Auth:
Authorization: Bearer YOUR_API_KEYFormat: JSON (Content-Type: application/json)
Quick Start
export NLTS_API_KEY="npt_live_your_key_here"
curl -X POST https://forensicprivacy.io/api/v1/enterprise/light \
-H "Authorization: Bearer $NLTS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://your-site.com"}'
# Start scan
SCAN_ID=$(curl -s -X POST https://forensicprivacy.io/api/v1/scan \
-H "Authorization: Bearer $NLTS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://your-site.com","scan_type":"forensic_report"}' | jq -r .id)
# Poll for result
curl -s https://forensicprivacy.io/api/v1/scan/$SCAN_ID \
-H "Authorization: Bearer $NLTS_API_KEY" | jq .overall_grade
CI/CD Integration
Trigger a privacy audit automatically after every deployment. Fail the pipeline if critical violations are found.
name: Privacy Audit
on:
deployment_status:
types: [success]
jobs:
privacy-check:
runs-on: ubuntu-latest
steps:
- name: Trigger Privacy Audit
run: |
RESULT=$(curl -s -X POST https://forensicprivacy.io/api/v1/enterprise/light \
-H "Authorization: Bearer ${{ secrets.NLTS_API_KEY }}" \
-H "Content-Type: application/json" \
-d '{"url":"${{ env.DEPLOY_URL }}"}')
GRADE=$(echo $RESULT | jq -r .overall_grade)
echo "Privacy Grade: $GRADE"
if [ "$GRADE" = "F" ]; then
echo "::error::Privacy audit failed with grade F"
exit 1
fi
privacy-audit:
stage: test
script:
- |
RESULT=$(curl -s -X POST https://forensicprivacy.io/api/v1/enterprise/light \
-H "Authorization: Bearer $NLTS_API_KEY" \
-H "Content-Type: application/json" \
-d "{\"url\":\"$CI_ENVIRONMENT_URL\"}")
GRADE=$(echo $RESULT | jq -r .overall_grade)
echo "Privacy Grade: $GRADE"
if [ "$GRADE" = "F" ]; then exit 1; fi
only:
- main
stage('Privacy Audit') {
steps {
script {
def result = sh(
returnStdout: true,
script: """curl -s -X POST https://forensicprivacy.io/api/v1/enterprise/light \
-H 'Authorization: Bearer ${env.NLTS_API_KEY}' \
-H 'Content-Type: application/json' \
-d '{"url":"${env.DEPLOY_URL}"}'"""
)
def grade = readJSON(text: result).overall_grade
echo "Privacy Grade: ${grade}"
if (grade == 'F') { error('Privacy audit failed') }
}
}
}
- step:
name: Privacy Audit
script:
- |
RESULT=$(curl -s -X POST https://forensicprivacy.io/api/v1/enterprise/light \
-H "Authorization: Bearer $NLTS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://your-site.com"}')
GRADE=$(echo $RESULT | python3 -c "import sys,json;print(json.load(sys.stdin)['overall_grade'])")
echo "Privacy Grade: $GRADE"
if [ "$GRADE" = "F" ]; then exit 1; fi
Webhook Alerts
Get notified when a scan finds critical issues. Configure a webhook URL and we'll POST alerts on KO events.
curl -X POST https://forensicprivacy.io/api/v1/enterprise/webhook-config \
-H "Authorization: Bearer $NLTS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://your-slack-webhook.com/or/your-endpoint",
"secret": "your-hmac-secret",
"events": ["ko", "scan_complete"],
"scan_url": "https://your-site.com"
}'
{
"event": "ko",
"scan_id": "abc-123",
"url": "https://your-site.com",
"grade": "F",
"message": "KO criterion met: reject-leak detected",
"timestamp": "2026-04-04T10:30:00Z"
}
The webhook is signed with HMAC-SHA256. Verify with the X-NLTS-Signature header.
API Endpoints
| Method | Endpoint | Description | Speed |
|---|---|---|---|
| POST | /enterprise/light | Light Scan (headers, TLS, DNS, cookies) | <5s |
| POST | /enterprise/forensic | Full 6-phase forensic audit | 2-3 min |
| POST | /enterprise/deploy-hook | CI/CD deployment trigger | async |
| POST | /scan | Start any scan type | async |
| GET | /scan/{id} | Get scan status & results | instant |
| GET | /scans | List all scans (paginated) | instant |
| POST | /enterprise/webhook-config | Configure alert webhooks | instant |
Response Format
{
"type": "light",
"url": "https://example.com",
"domain": "example.com",
"overall_grade": "B",
"grades": {
"headers": "C",
"tls": "A",
"dns": "B",
"cookies": "A+"
},
"duration_seconds": 2.3,
"timestamp": "2026-04-04T10:30:00Z"
}
Use Cases
CI/CD Gate
Block deployments that introduce privacy violations. Light Scan in your pipeline, fail on grade F.
Nightly Monitoring
Schedule daily Light Scans via cron. Get Slack alerts when your privacy grade drops.
Pre-Launch Audit
Run a Forensic Audit on staging before go-live. Get a signed report for compliance documentation.
Client Reporting
Agencies: Batch-scan all client domains via API. Auto-generate white-label reports.