Developers
API Documentation
REST reference for /api/v1 endpoints. All responses are JSON. Dates are ISO 8601.
Authentication
Public endpoints require no authentication. Authenticated endpoints require a Bearer token passed in the Authorization header.
Authorization: Bearer <your-api-token>
API tokens are issued on request. Contact santht@proton.me with your use case.
Rate Limiting
Public endpoints
120 requests / minute
No auth required
Authenticated writes
30 requests / minute
Bearer token required
Exceeding limits returns HTTP 429. The Retry-After header indicates when to retry.
Endpoint Reference
/api/v1/entitiesPublicRate limit: 120 requests/minuteList and filter entities by type, state, and flag status.
Request
GET /api/v1/entities?type=politician&state=TX
Response
{"data":[{"id":"e1","name":"Senator Richard Walsh"}]}/api/v1/officials/:idPublicRate limit: 120 requests/minuteGet full profile details for one official.
Request
GET /api/v1/officials/o1
Response
{"data":{"official":{"id":"o1"},"timingCorrelations":[]}}/api/v1/submissionsAuth requiredRate limit: 30 requests/minuteSubmit a sourced connection for review.
Request
POST /api/v1/submissions
Response
{"data":{"success":true,"id":"sub_1738181"}}/api/v1/watchlistAuth requiredRate limit: 60 requests/minuteRetrieve user watchlist entries and alert preferences.
Response
{"data":[{"id":"w1","entityName":"Senator Richard Walsh"}]}Try It — Code Examples
curl
bashcurl -H "Authorization: Bearer <token>" \ https://nonfaction.com/api/v1/entities \ -G -d "type=politician" \ -d "state=TX"
JavaScript (fetch)
jsconst res = await fetch(
'/api/v1/entities?type=politician',
{
headers: {
'Authorization': 'Bearer <token>'
}
}
);
const { data } = await res.json();Python (requests)
pythonimport requests
res = requests.get(
'https://nonfaction.com/api/v1/entities',
headers={'Authorization': 'Bearer <token>'},
params={'type': 'politician', 'state': 'TX'}
)
print(res.json())Source attribution: endpoint examples map to the public API schema used by the platform. For integration support, contact santht@proton.me.