B2B API for reputation scores. Base URL: https://api.p3lending.space
Authorization: Bearer <your_key>.curl -H "Authorization: Bearer p3_live_..." \
"https://api.p3lending.space/api/v1/reputation/score?user_id=UUID"
All /api/v1/* endpoints require an API key in the Authorization header:
Authorization: Bearer p3_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# or
Authorization: Bearer p3_test_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Keys are scoped (e.g. score:read, score:history). Never store or log the raw key; store only the prefix if needed for display.
Start in Sandbox with test keys. Upgrade to Paid to use live keys and higher quotas.
| Plan | Key prefix | Default limits | Notes |
|---|---|---|---|
| Sandbox (Free) | p3_test_... |
10 rpm · 500 rpd · 5,000 / month | Testing and integration |
| Paid (Production) | p3_live_... |
120 rpm · 50,000 rpd · 1,000,000 / month | Live usage, higher quotas |
Upgrade: email founders@p3lending.space.
score:read).score:read).{"user_ids": ["uuid1", "uuid2"]} (scope: score:read).score:history).OpenAPI spec: /docs/openapi.json.
Scores are now returned on a 0-1000 scale with explainability fields:
trust_score, risk_score, capacity_scorereputation_score (same value as score for backward compatibility)top_reasons_positive, top_reasons_negative, missing_data, caps_appliedBands: A (850+), B (700-849), C (550-699), D (400-549), E (<400).
Guardrail caps can lower the final score: no history cap (650), no KYC cap (700), new account cap (600), and recent default cap (450).
Responses use HTTP status codes and a JSON body:
user_id).code=paid_required).X-RateLimit-*) or monthly quota exceeded (code=monthly_quota_exceeded).Per-key limits (configurable when creating the key):
X-RateLimit-Limit — Requests per minute.X-RateLimit-Remaining — Remaining in current window.X-RateLimit-Reset — Unix timestamp when the window resets.Monthly quota headers:
X-MonthlyQuota-Limit — Requests allowed in the current period.X-MonthlyQuota-Remaining — Remaining requests.X-MonthlyQuota-Reset — Unix timestamp when the period resets.When exceeded, the API returns 429.