Skip to main content
GET
endpoint
/api/v1/records
Retrieve a paginated list of records filtered by type and optional date range.

Query Parameters

recordType
string
required
Type of records to retrieve. Must be URL-encoded. The possible values vary depending on how the community is configured in Forerunner, but one common value is Preliminary Damage Assessment.
externalSystemId
string
Find record via it’s externalSystemId. Since this value is unique, this will return exactly zero or one entry in the records array. externalSystemId can be set via the Submit SI/SD or Update SI/SD API or through an integration with an external data source (such as Accela).
page
integer
Used for getting the next page in the sequence. See pageInfo for pagination details.
createdFrom
string
Filter records created strictly after this timestamp (exclusive). Provide in ISO 8601 format (e.g., 2024-09-25T21:33:10Z).

Response

records
array
Array of record objects (25 per page)
pageInfo
object
Pagination information. See Pagination.
errors
array
Array of error objects. See Errors.
curl "https://app.withforerunner.com/api/v1/records?recordType=Preliminary%20Damage%20Assessment&page=1" \
  -H "Authorization: Bearer YOUR_API_KEY"
{
  "records": [
    {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "externalSystemId": "PDA-2024-001",
      "data": {
        "damageCategory": "Major",
        "estimatedLoss": 75000,
        "inspectionDate": "2024-09-20"
      },
      "property": {
        "id": "f0e1d2c3-b4a5-6789-0fed-cba987654321",
        "address": "123 Main St, Springfield, IL 62701",
        "coordinates": [39.7817, -89.6501],
        "publicURL": "https://app.withforerunner.com/properties/f0e1d2c3-b4a5-6789-0fed-cba987654321"
      }
    }
  ],
  "pageInfo": {
    "page": 1,
    "pageSize": 25,
    "totalCount": 187,
    "totalPages": 8
  },
  "errors": []
}

Best Practices

Always paginate through results when querying record types with many entries. Don’t assume all data will fit in a single response.
Use the createdFrom parameter to implement efficient incremental syncs rather than fetching all records every time. Store the last sync timestamp and use it for subsequent requests.
Always URL-encode the recordType parameter, especially for types with spaces or special characters.
Different record types have different data structures. Build flexible parsers that can handle type-specific fields based on the recordType value.