The LintLiot API is a REST API that powers both the dashboard and the SDK. You can use it directly to automate security workflows, pull data into your own tooling, or integrate with CI/CD pipelines. All responses use JSON and follow a consistentDocumentation Index
Fetch the complete documentation index at: https://docs.lintliot.com/llms.txt
Use this file to discover all available pages before exploring further.
{ ok, data } envelope.
Base URL
Authentication
All endpoints exceptGET /api/verify/:slug require a bearer token in the Authorization header.
lk_live_.
Apps
Apps represent the applications you have connected to LintLiot.List apps
Create app
Display name for the app. Must be between 1 and 100 characters.
GitHub repository in
owner/repo format. Required to enable code scanning via GitHub webhooks.201 Created
Get app
Update app
New display name for the app.
GitHub repository in
owner/repo format.GitHub App installation ID, set automatically during the GitHub App flow.
Update app settings
Scanner configuration.
Request Shield configuration.
Data encryption (Vault) configuration.
Delete app
Security score and lockdown
Get security score
Pass
?refresh=true to force recalculation. Omit for the cached score.Request success flag.
Security score from 0–100.
Letter grade:
A+, A, B, C, D, or F.Tier label:
platinum, gold, silver, bronze, or basic.Per-module breakdown (populated when
?refresh=true).Toggle emergency lockdown
POST, PUT, PATCH, DELETE) are blocked and traffic is restricted to 1 request/minute per IP. Lockdown automatically lifts after 1 hour if not manually deactivated.
Emergency Lockdown is available on Team and Enterprise plans only.
Manage behavioral baselines
Events
Ingest events
Content-Type: text/plain for compatibility with navigator.sendBeacon().
Request body
Event type string, e.g.
request.blocked, auth.login, auth.impossible_travel.Source module:
shield, scanner, monitor, compliance, etc.Severity level:
CRITICAL, HIGH, MEDIUM, LOW, or INFO.Short human-readable description of the event.
Extended description with context.
Source IP address. Used for geo-enrichment and impossible travel detection.
Your application’s user identifier. Used for session fingerprinting and impossible travel detection.
Arbitrary key-value metadata about the event (path, method, userAgent, etc.).
201 Created
Real-time SSE stream
The app ID to stream events for.
A short-lived session token obtained from your dashboard session. SSE connections cannot send
Authorization headers, so authentication uses this query parameter instead.connected— sent immediately on connectevents— array of new event objectsheartbeat— empty event sent every 30 seconds to keep the connection alive
Get event analytics
App ID to query.
Time window:
24h, 7d, or 30d.Scanner
GitHub webhook receiver
push and pull_request events from a GitHub App or webhook. LintLiot verifies the X-Hub-Signature-256 header and queues a scan job for every connected app matching the repository.
Set this URL as your GitHub webhook endpoint: https://api.lintliot.com/api/scanner/webhook
List scans
App ID to list scans for.
List findings
App ID to query.
Filter by severity:
CRITICAL, HIGH, MEDIUM, LOW.Filter by status:
open, fixed, ignored, false_positive.Filter by category:
secret, iac, code, dependency.Page number (1-indexed).
Results per page. Maximum 100.
Shield
Get WAF rules
X-API-Key header with your app’s API key) and is called by the SDK middleware on startup.
Add IP block/allow rule
App ID to apply the rule to.
IPv4 or IPv6 address to target.
Either
block or allow.Human-readable reason for the rule, displayed in the dashboard.
ISO 8601 timestamp for automatic rule expiry. Omit for a permanent rule.
201 Created
Compliance
Compliance features require a Pro, Team, or Enterprise plan.
Initialize compliance framework
409 Conflict if the framework is already initialized — use POST /api/compliance/sync to refresh control statuses instead.
Request body
App ID to initialize compliance for.
Framework to initialize. Supported values:
SOC2, GDPR, HIPAA, PCI-DSS, ISO27001.Get compliance report
App ID to query.
Framework to report on:
SOC2, GDPR, HIPAA, PCI-DSS, ISO27001.Trigger compliance re-check
App ID to sync.
Limit sync to a specific framework. Omit to sync all initialized frameworks.
Verification (public)
Get security certificate
:slug is the lowercased, hyphenated version of your app name (e.g., an app named “My SaaS” has slug my-saas).
Response
Display name of the app.
Current score from 0–100.
Score band:
Excellent, Good, Fair, Poor, or Critical.Count of open critical scan findings.
Count of open high scan findings.
Total blocked requests in the last 30 days.
List of active protection modules.
Compliance framework pass rates.
Ready-to-paste HTML badge embed code.
Pentest
The Pentest API provides Dynamic Application Security Testing (DAST) against OWASP Top 10 vulnerabilities. All pentest operations require accepting the Terms of Service first.List scans
Filter by scan status:
pending, running, completed, failed.Page size.
Pagination offset.
Create scan
POST /api/pentest/:appId/scans/:scanId/execute call.
Request body
Human-readable scan name.
Full URL of the target application. Must be a valid URL pointing to an application you own.
Subset of attack modules to run. Omit to run all available modules.
Module-specific configuration overrides.
201 Created
List findings
Filter findings to a specific scan.
Filter by severity:
critical, high, medium, low.Filter by OWASP Top 10 category (e.g.
A01, A03).Filter by status:
open, confirmed, false_positive, remediated, accepted.Page size.
Pagination offset.
Route sensitivity
Route sensitivity lets you configure graduated protection levels for sensitive URL patterns. The built-in rules cover paths like/admin*, /payment*, /export*, and /bulk*. You can create custom rules on top of those defaults.
Get route sensitivity config
Create custom rule
URL path pattern to match. Supports glob-style wildcards (e.g.
/api/admin*).Protection level:
critical, high, medium, low, or disabled.Enforcement action:
require_admin, reauth, rate_limit, audit_log, monitor, exfiltration_check, or disabled.Human-readable explanation of the rule, displayed in the dashboard.
201 Created
Update rule
Enable or disable the rule.
Updated protection level.
Updated enforcement action.
Updated description.
Delete rule
PATCH to disable them instead.
Error responses
All errors follow a consistent format:| Status | Meaning |
|---|---|
400 | Invalid input or missing required parameter |
401 | Missing or invalid API key |
403 | Insufficient plan or ownership mismatch |
404 | Resource not found |
409 | Conflict (e.g. compliance framework already initialized) |
429 | Rate limit exceeded |
500 | Internal server error |
