propgate docs

API reference › DomainsList domains

List domains

GET/v1/domainspropgate domains list [--state <state>]
FieldTypeDescription
limitnumberDefault 50, max 200.
cursorstringFrom a previous page's meta.nextCursor. Omit for the first page.
statestringOne of pending, verifying, verified, degraded, failed.
externalIdstringYour own identifier, exact match. The filter to reach for if you did not keep our ids.
curl -s "https://api.propgate.dev/v1/domains?limit=200" \
  -H "authorization: Bearer pg_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
curl -s "https://api.propgate.dev/v1/domains?state=failed" \
  -H "authorization: Bearer pg_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
curl -s "https://api.propgate.dev/v1/domains?externalId=cust_1" \
  -H "authorization: Bearer pg_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

Paging is by cursor, ordered oldest first. Pass meta.nextCursor back until it is null. A domain registered while you are mid-walk lands after the cursor and appears at the end, so a full walk never misses a row it had not reached yet — the property an offset-based page cannot give you once rows are being inserted concurrently.

{
  "data": [
    {
      "createdAt": "2026-08-03T12:00:00.000Z",
      "externalId": "cust_1",
      "id": "019fcf7a-2b3c-7d4e-9f5a-6b7c8d9e0f1a",
      "lastCheckedAt": "2026-08-03T12:05:00.000Z",
      "name": "yourdomain.dev",
      "object": "domain",
      "profileVersionId": "019fcf6b-1a2b-7c3d-8e4f-5a6b7c8d9e0f",
      "requirements": [
        {
          "key": "spf",
          "satisfied": true,
          "verdict": "pass",
          "findings": []
        }
      ],
      "requirementsMet": 3,
      "requirementsTotal": 5,
      "state": "failed",
      "verdict": "fail"
    }
  ],
  "error": null,
  "meta": {
    "nextCursor": "019fcf7a-2b3c-7d4e-9f5a-6b7c8d9e0f1a"
  }
}

lookups is omitted here. A stored result is about 389 bytes without it; including it on every item would multiply the page by roughly 4.4×, and at the maximum limit of 200 that is the difference between a page you can reconcile in one request and one that times out doing it. Fetch a single domain to get the lookups behind a specific result.