Validity Index API
Programmatic access to the Validly Index. Build tools that demand verification.
Authentication & Security
The Validity Index API requires a unique API key for all requests. Keys are scoped to specific endpoints and are tied to your organization's IP whitelist. We utilize Bearer token authentication via HTTPS.
To maintain the integrity of the archive, all endpoints enforce strict TLS 1.3 encryption. If a request is made without a valid Authorization header, the server will return a 401 Unauthorized status.
Core Endpoints
The API is structured around three primary resources: Outlet verification scores, Metadata definitions, and Historical integrity logs.
Verification Scores
Returns the current Validity Score (0.0–1.0) for a specific claim ID or URL. Includes confidence intervals and the timestamp of the last verification audit.
Params: id, url, format=json
Outlet Metadata
Retrieves the editorial profile and bias vector for a registered media organization. This endpoint provides the systemic context required for accurate score interpretation.
Params: domain, org_id, type=string
Integrity Logs
Accesses the immutable change log for any archived asset. Returns a chronological list of edits, retractions, or context additions made to the source material.
Params: asset_id, limit=50, offset=0
Rate Limits
To ensure system stability and equitable access to the archive, the API enforces strict rate limiting based on your subscription tier.
- Standard Tier 100 req / minute
- Research Tier 1,000 req / minute
- Enterprise Tier Custom / Unlimited
Exceeding these limits will result in a 429 Too Many Requests response. The Retry-After header indicates the number of seconds to wait before the next request.
Implementation Examples
import requests
API_KEY = "vly_live_88291..."
HEADERS = {
"Authorization": f"Bearer {API_KEY}",
"Accept": "application/json"
}
response = requests.get(
"https://api.validly.org/v1/scores",
params={"url": "https://news.example.com/article"},
headers=HEADERS
)
data = response.json()
print(f"Validity Score: {data['score']}")
const apiKey = "vly_live_88291...";
const targetUrl = "https://news.example.com/article";
fetch(`https://api.validly.org/v1/scores?url=${encodeURIComponent(targetUrl)}`, {
method: "GET",
headers: {
"Authorization": `Bearer ${apiKey}`,
"Content-Type": "application/json"
}
})
.then(res => res.json())
.then(data => {
console.log(`Integrity Score: ${data.score}`);
console.log(`Confidence: ${data.confidence}`);
});
Initialize Integration
Request a developer key or upgrade your institutional tier to access the full index.
Generate API Key