Search

Full-text document search. Search within a specific building or across all buildings for a building owner.

Search Within a Building

GET/building_owners/{buildingOwnerId}/buildings/{buildingId}/search

Search documents within a specific building.

Authentication

x-api-key header

  • buildingOwnerIdstringBuilding owner / customer ID
  • buildingIdstringBuilding ID
  • querystringrequiredSearch query
  • max_resultsnumberMaximum results to return (default: 10)
  • start_indexnumberOffset for pagination (default: 0)

Examples

curl -H "x-api-key: YOUR_API_KEY" \
  "https://api.findable.ai/building_owners/cust-456/buildings/bld-789/search?query=fire+safety"
  • 200Success
  • 401Missing or invalid API key
  • 404Building not found

All endpoints may also return 429 (rate limit) and 500 (server error). See Common Patterns for details.

  • hitsSearchHit[]Array of matching documents
  • hits[].idstringDocument ID
  • hits[].buildingIdstringBuilding the document belongs to
  • hits[].filenamestringDocument filename
  • hits[].titlestringDocument title
  • hits[].buildingCategorystringAssigned building category
  • hits[].disciplinestringTechnical discipline
  • hits[].isDrawingbooleanWhether the document is a drawing
  • hits[].md5ChecksumstringMD5 checksum
  • hits[].originalCreatedAtstringOriginal creation date from file metadata
  • hits[].originalPathstringOriginal file path
  • hits[].sizenumberFile size in bytes
  • hits[].informationTypestringPrimary information type
  • hits[].informationTypesstring[]All assigned information types
  • hits[].createdAtstringISO 8601 creation timestamp
  • hits[].updatedAtstringISO 8601 last update timestamp
  • hits[].externalIdsRecord<string, string>External system IDs (e.g. Plania)
  • numberOfHitsnumberTotal number of matching documents

Response

{
  "hits": [
    {
      "id": "doc-1",
      "buildingId": "bld-789",
      "filename": "fire-safety-report.pdf",
      "title": "Fire Safety Assessment 2025",
      "buildingCategory": "Fire Safety",
      "discipline": "Fire",
      "isDrawing": false,
      "md5Checksum": "a3f2b8c1e9d04567890abcdef1234567", // pragma: allowlist secret
      "originalCreatedAt": "2025-01-10T08:00:00Z",
      "originalPath": "/reports/fire-safety/",
      "size": 2048576,
      "informationType": "Report",
      "informationTypes": ["Report", "Assessment"],
      "createdAt": "2025-01-15T10:30:00Z",
      "updatedAt": "2025-06-20T14:00:00Z",
      "externalIds": {}
    }
  ],
  "numberOfHits": 42
}

Search Across All Buildings

GET/building_owners/{buildingOwnerId}/search

Search documents across all buildings for a building owner.

Authentication

x-api-key header

  • buildingOwnerIdstringBuilding owner / customer ID
  • querystringrequiredSearch query
  • max_resultsnumberMaximum results to return (default: 10)
  • start_indexnumberOffset for pagination (default: 0)
  • 200Success
  • 401Missing or invalid API key
  • 404Building owner not found

All endpoints may also return 429 (rate limit) and 500 (server error). See Common Patterns for details.

  • hitsSearchHit[]Array of matching documents (same shape as building search)
  • numberOfHitsnumberTotal number of matching documents

Response

{
  "hits": [
    {
      "id": "doc-1",
      "buildingId": "bld-789",
      "filename": "fire-safety-report.pdf",
      "title": "Fire Safety Assessment 2025",
      "buildingCategory": "Fire Safety",
      "discipline": "Fire",
      "isDrawing": false,
      "md5Checksum": "a3f2b8c1e9d04567890abcdef1234567", // pragma: allowlist secret
      "originalCreatedAt": "2025-01-10T08:00:00Z",
      "originalPath": "/reports/fire-safety/",
      "size": 2048576,
      "informationType": "Report",
      "informationTypes": ["Report"],
      "createdAt": "2025-01-15T10:30:00Z",
      "updatedAt": "2025-06-20T14:00:00Z",
      "externalIds": {}
    }
  ],
  "numberOfHits": 156
}