Find an API

Search public APIs with auth details & Postman guides

← All APIs

EagleView Property Intelligence API

eagleview.com · Company

Company OAuth2 Paid Insurance Construction Real Estate Aerial Imagery Property Insurance

Aerial measurement and property intelligence APIs from EagleView. Provides precise roof measurements (area, pitch, edges, penetrations), property attributes, and imagery. Used by insurers in Guidewire ClaimCenter for post-loss roof claims and in PolicyCenter for underwriting without physical inspection.

Authentication

OAuth2 OAuth2 client credentials. Requires EagleView partner agreement. Contact [email protected].

Sample Requests

POST Order roof measurement report

Orders a Premium Report with precise roof measurements. Returns report ID for polling or webhook notification when complete.

https://api.eagleview.com/v1/reports

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
Content-Type application/json
Authorization Bearer YOUR_ACCESS_TOKEN
Request Body — data you're sending
{
  "zip": "78701",
  "city": "Austin",
  "state": "TX",
  "address": "123 Main St",
  "reportType": "PremiumReport",
  "claimNumber": "CL-1234"
}
curl -X POST "https://api.eagleview.com/v1/reports" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"zip":"78701","city":"Austin","state":"TX","address":"123 Main St","reportType":"PremiumReport","claimNumber":"CL-1234"}'
import requests
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer YOUR_ACCESS_TOKEN"
}
data = {
    "zip": "78701",
    "city": "Austin",
    "state": "TX",
    "address": "123 Main St",
    "reportType": "PremiumReport",
    "claimNumber": "CL-1234"
}
response = requests.post(
    "https://api.eagleview.com/v1/reports",
    headers=headers,
    json=data,
)
print(response.json())
const url = 'https://api.eagleview.com/v1/reports';

const response = await fetch(url, {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer YOUR_ACCESS_TOKEN'
  },
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
  "zip": "78701",
  "city": "Austin",
  "state": "TX",
  "address": "123 Main St",
  "reportType": "PremiumReport",
  "claimNumber": "CL-1234"
}),
}); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
	"bytes"
	"encoding/json"
)

func main() {
	targetURL := "https://api.eagleview.com/v1/reports"
	jsonData, _ := json.Marshal({"zip":"78701","city":"Austin","state":"TX","address":"123 Main St","reportType":"PremiumReport","claimNumber":"CL-1234"})
	req, _ := http.NewRequest("POST", targetURL, bytes.NewBuffer(jsonData))
	req.Header.Set("Content-Type", "application/json")
	req.Header.Set("Authorization", "Bearer YOUR_ACCESS_TOKEN")
	req.Header.Set("Content-Type", "application/json")

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.eagleview.com/v1/reports")

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Post.new(uri)
req["Content-Type"] = "application/json"
req["Authorization"] = "Bearer YOUR_ACCESS_TOKEN"
req["Content-Type"] = "application/json"
req.body = "{\"zip\":\"78701\",\"city\":\"Austin\",\"state\":\"TX\",\"address\":\"123 Main St\",\"reportType\":\"PremiumReport\",\"claimNumber\":\"CL-1234\"}"

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.eagleview.com/v1/reports";
$opts = ["http" => [
    "method" => "POST",
    "header" => implode("\r\n", [
        "Content-Type: application/json",
        "Authorization: Bearer YOUR_ACCESS_TOKEN",
        "Content-Type: application/json"
    ]),
    "content" => json_encode({"zip":"78701","city":"Austin","state":"TX","address":"123 Main St","reportType":"PremiumReport","claimNumber":"CL-1234"}),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
GET Get completed report

Returns completed measurement report including total squares, pitch, ridge/hip/valley lengths, and penetration details.

https://api.eagleview.com/v1/reports/{reportId}

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
Authorization Bearer YOUR_ACCESS_TOKEN
curl -X GET "https://api.eagleview.com/v1/reports/{reportId}" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
import requests
headers = {
    "Authorization": "Bearer YOUR_ACCESS_TOKEN"
}
response = requests.get(
    "https://api.eagleview.com/v1/reports/{reportId}",
    headers=headers,
)
print(response.json())
const url = 'https://api.eagleview.com/v1/reports/{reportId}';

const response = await fetch(url, {
  headers: {
    'Authorization': 'Bearer YOUR_ACCESS_TOKEN'
  },
}); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	targetURL := "https://api.eagleview.com/v1/reports/{reportId}"
	req, _ := http.NewRequest("GET", targetURL, nil)
	req.Header.Set("Authorization", "Bearer YOUR_ACCESS_TOKEN")

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.eagleview.com/v1/reports/{reportId}")

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Get.new(uri)
req["Authorization"] = "Bearer YOUR_ACCESS_TOKEN"

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.eagleview.com/v1/reports/{reportId}";
$opts = ["http" => [
    "method" => "GET",
    "header" => implode("\r\n", [
        "Authorization: Bearer YOUR_ACCESS_TOKEN"
    ]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));

Postman Setup Guide

Get Postman ↗
  1. Contact EagleView partner team at [email protected] to get API access
  2. Sandbox environment provided for development — reports use test addresses
  3. Report types: QuickSquares (basic), PremiumReport (full measurements), Property Report (attributes)
  4. Turnaround time: 0-4 hours for most addresses; set up webhook for async notification
  5. Guidewire Marketplace: pre-built EagleView accelerator for ClaimCenter
  6. Results include XML and/or JSON + PDF report download URL

What can you build with EagleView Property Intelligence API?

EagleView Property Intelligence API is a Company API. Developers commonly use company APIs for:

  • enriching CRM records with company firmographics
  • building lead-generation and prospecting tools
  • verifying business identity and registration details
  • monitoring competitors and market intelligence
  • powering B2B data enrichment pipelines

OAuth 2.0. OAuth lets your app act on behalf of a user. You redirect them to authorise access, receive a token, then use that token in requests. Best for accessing user-owned data. EagleView Property Intelligence API is a paid API — check the provider's pricing page before building a production integration.

New to APIs? Read our beginner's guide · Learn about API keys · What is REST?

Open documentation ↗