NONFACTION

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

GET/api/v1/entitiesPublicRate limit: 120 requests/minute

List 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"}]}
GET/api/v1/officials/:idPublicRate limit: 120 requests/minute

Get full profile details for one official.

Request

GET /api/v1/officials/o1

Response

{"data":{"official":{"id":"o1"},"timingCorrelations":[]}}
POST/api/v1/submissionsAuth requiredRate limit: 30 requests/minute

Submit a sourced connection for review.

Request

POST /api/v1/submissions

Response

{"data":{"success":true,"id":"sub_1738181"}}
GET/api/v1/watchlistAuth requiredRate limit: 60 requests/minute

Retrieve user watchlist entries and alert preferences.

Response

{"data":[{"id":"w1","entityName":"Senator Richard Walsh"}]}

Try It — Code Examples

curl

bash
curl -H "Authorization: Bearer <token>" \
  https://nonfaction.com/api/v1/entities \
  -G -d "type=politician" \
  -d "state=TX"

JavaScript (fetch)

js
const res = await fetch(
  '/api/v1/entities?type=politician',
  {
    headers: {
      'Authorization': 'Bearer <token>'
    }
  }
);
const { data } = await res.json();

Python (requests)

python
import 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.