View a public compliance portal

gethttps://api.expiryedge.com/v1/viewPortal
Öffentlich - kein API-Schlüssel60/min
Anfrage
curl 'https://api.expiryedge.com/v1/viewPortal?token=0f5c2a8e-6d4b-4e3a-9c1f-7b2d8e9a3c41'
Antwort
{
  "success": true,
  "portal": {
    "name": "Northwind Dental - Vendor Compliance",
    "description": "Current licenses and insurance certificates for Northwind Dental.",
    "client_name": "Northwind Dental"
  },
  "summary": {
    "total": 2,
    "compliant": 1,
    "expired": 1,
    "completed": 0,
    "expiring_soon": 1,
    "compliance_rate": 50
  },
  "expiries": [
    {
      "name": "General Liability Insurance",
      "document_type": "Insurance",
      "expiry_date": "2026-09-20",
      "start_date": "2025-09-20",
      "state": "todo",
      "is_done": false,
      "priority": "High",
      "vendor": "Contoso Insurance",
      "issuing_authority": null,
      "reference_number": "GL-448120",
      "share_token": null,
      "days_left": -7,
      "status": "expired"
    },
    {
      "name": "Northwind Dental - State Dental License",
      "document_type": "License",
      "expiry_date": "2026-10-15",
      "start_date": "2025-10-15",
      "state": "todo",
      "is_done": false,
      "priority": "High",
      "vendor": null,
      "issuing_authority": "State Board of Dentistry",
      "reference_number": "DL-20931",
      "share_token": "5c0e7a52-3f7e-4b3e-9a2e-1d2f0b6c9e11",
      "days_left": 18,
      "status": "active"
    }
  ],
  "generated_at": "2026-09-27T14:05:00.000Z"
}

Prefer POST with the password in the body; ?password= is kept for legacy clients. Each successful view is logged (count, time, IP).

Query-Parameter

  • tokenstringerforderlich
    Portal access token (the last segment of the portal URL).
  • passwordstring
    Portal password (legacy; prefer the POST form).

Rückgabe

200
Portal contents.
  • successboolean
  • portalobject
  • summaryobject
  • expiriesarray of objects
    Expired first, then by days_left ascending.
  • generated_atstring
    UTC timestamp, ISO 8601. Every v1 response uses this form, never a raw Firestore Timestamp ({_seconds, _nanoseconds}).
    format: date-time

Fehler

400
The request is missing required fields or contains invalid values.
401
The portal is password protected and the password is missing or wrong.
404
The record does not exist or is not in your organization.
410
The portal link has expired (link_expires_at passed).
429
Too many requests for this endpoint from your IP. Wait Retry-After seconds.
500
Unexpected server error. Retry later; quote requestId to support.