The PropStack Trust API

Embed Nigeria's land-trust layer in your product. Verify professionals, order AI due-diligence reports, check Title Confidence Scores, and confirm report authenticity — programmatically.

Authentication

Every request carries your partner key in the x-api-key header. Keys are issued by PropStack; contact joseph@josmolgroup.com for partner onboarding. Treat your key like a password — it is billable.

curl https://propstackplatform.com/api/v1/ping \
  -H "x-api-key: ps_live_xxxxxxxxxxxx"

# → { "ok": true, "partner": "Sterling Bank", "plan": "growth",
#     "usageThisCycle": 214, "quota": 5000 }

Endpoints

EndpointPurposeBilling
GET /api/v1/pingKey & quota checkFree
GET /api/v1/professionals?q=PropVerify™ integrity lookup₦1,000
POST /api/v1/landcheckOrder a LandCheck™ programmatically₦20,000+
GET /api/v1/reports/{id}Retrieve report status / full JSONFree
GET /api/v1/reports/{id}/verifyConfirm a report's hash sealFree
GET /api/v1/trust-title/{dossierId}Title Confidence Score for lenders₦1,500

GET/api/v1/professionals?q=NAME

Screen any agent, lawyer, surveyor or developer before your customer transacts with them.

curl "https://propstackplatform.com/api/v1/professionals?q=emeka" \
  -H "x-api-key: ps_live_xxx"

# → { "matches": [{ "name": "Emeka Realty Concepts", "category": "Agent",
#      "integrityScore": 34, "status": "flagged", "complaints": 4, ... }] }

POST/api/v1/landcheck

Order a full AI due-diligence investigation. Returns 202 with a reportId; the report passes through AI drafting and human analyst sealing, then becomes published. Poll the report endpoint (typical time-to-seal: under 24 hours Standard, 48 Premium).

curl -X POST https://propstackplatform.com/api/v1/landcheck \
  -H "x-api-key: ps_live_xxx" -H "Content-Type: application/json" \
  -d '{
    "plan": "standard",
    "externalRef": "LOAN-2026-00812",
    "intake": {
      "state": "Lagos", "lga": "Ibeju-Lekki",
      "address": "Plot 4, Diamond Estate Phase 2, Eleranigbe",
      "lat": "6.5216", "lng": "3.8891",
      "askingPrice": "18000000", "sellerName": "Diamond Estate Devt Ltd"
    },
    "documents": [
      { "name": "cofo.jpg", "mediaType": "image/jpeg",
        "dataUrl": "data:image/jpeg;base64,/9j/4AAQ..." }
    ]
  }'

# → 202 { "reportId": "aB3xY...", "status": "generating", "externalRef": "LOAN-2026-00812" }
Limits: up to 6 documents, ≤4 MB total base64. intake.state and intake.address required. Optional intake.propertyType: vacant_land (default) · completed_building · apartment_flat · offplan — the investigation, risk categories and verification checklist adapt to the type (structure approvals and sitting tenants for buildings; root-title vs unit-interest for flats; developer track record and milestone-payment guidance for off-plan). Use externalRef to tie the report to your own case/loan ID.

GET/api/v1/reports/{id}

Returns status (generating → pending_review → published). Once published, the response includes the grade, risk score, the full report JSON and its tamper-evident hash. Your key can only read reports it ordered.

# published response (abridged)
{ "reportId": "aB3xY...", "status": "published",
  "grade": "B+", "riskScore": 78,
  "hash": "7f3a9c…", "externalRef": "LOAN-2026-00812",
  "report": { "executiveSummary": "...", "findings": [...],
              "redFlags": [...], "verificationChecklist": [...], ... } }

GET/api/v1/reports/{id}/verify

Recomputes the canonical SHA-256 of the sealed report and compares it to the stored seal — proving the JSON you hold is exactly what the analyst sealed. Use before relying on any forwarded report.

GET/api/v1/trust-title/{dossierId}

For lenders and underwriters: retrieve a parcel's Title Confidence Score, tier, evidence profile and NIN-verified attestation count. Gold (80+) parcels qualify for SafeClose™ escrow and Shield™ underwriting consideration.

# → { "titleConfidenceScore": 88, "tier": "gold", "surveyVerified": true,
#     "attestations": [{ "role": "Family head", "ninVerified": true }, ...] }

Errors & billing

CodeMeaning
401Missing or invalid x-api-key
403Key revoked, or the report belongs to another partner
413Documents exceed the 4 MB payload limit
429Monthly quota exceeded — contact us to raise your plan

Billable calls are metered per request and invoiced monthly. Plans: Starter (500 checks/mo), Growth (5,000/mo), Enterprise (unmetered, SLA, webhook delivery).

PropStack Trust API v1 · Reports are evidence-assembly and risk-assessment tools, not legal title opinions. · partner onboarding: joseph@josmolgroup.com