{
  "openapi": "3.1.0",
  "info": {
    "title": "Verity NHD API",
    "version": "2026-09-14",
    "summary": "Order California Natural Hazard Disclosure reports, track them and download the PDF.",
    "description": "JSON in, JSON out. Every response carries X-Verity-Api-Version. Rate limit: 120 requests per minute per key (429 with Retry-After beyond that). Full guide: https://veritynhd.com/developers",
    "termsOfService": "https://veritynhd.com/terms",
    "contact": {
      "name": "Verity NHD",
      "url": "https://veritynhd.com/contact"
    }
  },
  "servers": [
    {
      "url": "https://veritynhd.com/api/v1"
    }
  ],
  "security": [
    {
      "apiKey": []
    }
  ],
  "tags": [
    {
      "name": "Orders",
      "description": "Place and read report orders."
    },
    {
      "name": "Reports",
      "description": "The generated PDF."
    },
    {
      "name": "Hazards",
      "description": "Screen an address without ordering."
    }
  ],
  "paths": {
    "/orders": {
      "post": {
        "tags": [
          "Orders"
        ],
        "summary": "Place an order",
        "description": "Scope orders:write. Generation starts immediately; a report is normally ready in under three minutes.",
        "operationId": "createOrder",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 200
            },
            "description": "Alternative to the idempotency_key body field."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateOrderRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Idempotent replay: the original order for this idempotency key.",
            "headers": {
              "Idempotent-Replayed": {
                "schema": {
                  "type": "string",
                  "const": "true"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Order"
                }
              }
            }
          },
          "201": {
            "description": "Order created. Location points at the order.",
            "headers": {
              "Location": {
                "schema": {
                  "type": "string",
                  "format": "uri"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Order"
                }
              }
            }
          },
          "400": {
            "description": "Body is not JSON (invalid_json).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing, unknown or revoked key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Key lacks orders:write.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "validation_failed, unknown_product or order_rejected.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; see Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Orders"
        ],
        "summary": "List orders",
        "description": "Scope orders:read. The key's workspace orders, newest first.",
        "operationId": "listOrders",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            }
          },
          {
            "name": "external_ref",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Only orders with this external_ref."
          },
          {
            "name": "created_before",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "Pass the previous page's next_created_before here."
          }
        ],
        "responses": {
          "200": {
            "description": "A page of orders.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "object": {
                      "type": "string",
                      "const": "list"
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Order"
                      }
                    },
                    "has_more": {
                      "type": "boolean"
                    },
                    "next_created_before": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing, unknown or revoked key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Key lacks orders:read.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; see Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/orders/{id}": {
      "get": {
        "tags": [
          "Orders"
        ],
        "summary": "Read an order",
        "description": "Scope orders:read. Poll no more often than every 10 seconds — or use a webhook.",
        "operationId": "getOrder",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The order.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Order"
                }
              }
            }
          },
          "401": {
            "description": "Missing, unknown or revoked key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Key lacks orders:read.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such order in your workspace.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; see Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/hazards": {
      "get": {
        "tags": [
          "Hazards"
        ],
        "summary": "Screen an address or point without placing an order",
        "description": "Scope orders:read. The statutory hazard yes/no answers from the same engine and data as a report — screening only; the disclosure document is the ordered report. Send address (+ city, zip; state defaults to CA) or lat + lng.",
        "operationId": "screenHazards",
        "parameters": [
          {
            "name": "address",
            "in": "query",
            "schema": {
              "type": "string",
              "maxLength": 300
            }
          },
          {
            "name": "city",
            "in": "query",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          },
          {
            "name": "state",
            "in": "query",
            "schema": {
              "type": "string",
              "minLength": 2,
              "maxLength": 2,
              "default": "CA"
            }
          },
          {
            "name": "zip",
            "in": "query",
            "schema": {
              "type": "string",
              "minLength": 5,
              "maxLength": 10
            }
          },
          {
            "name": "lat",
            "in": "query",
            "schema": {
              "type": "number",
              "minimum": -90,
              "maximum": 90
            }
          },
          {
            "name": "lng",
            "in": "query",
            "schema": {
              "type": "number",
              "minimum": -180,
              "maximum": 180
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The screen.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HazardScreen"
                }
              }
            }
          },
          "401": {
            "description": "Missing, unknown or revoked key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Key lacks orders:read.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "validation_failed or address_not_found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; see Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "The hazard engine failed; safe to retry.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/orders/{id}/report.pdf": {
      "get": {
        "tags": [
          "Reports"
        ],
        "summary": "Download the report PDF",
        "description": "Scope reports:read. Before the report is ready you get 409 report_not_ready.",
        "operationId": "getOrderReportPdf",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "variant",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "signed"
              ]
            },
            "description": "signed returns the executed rendition once report.signed_at is set (else 409 not_signed_yet)."
          }
        ],
        "responses": {
          "200": {
            "description": "The PDF.",
            "content": {
              "application/pdf": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "401": {
            "description": "Missing, unknown or revoked key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Key lacks reports:read.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such order in your workspace.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "report_not_ready or not_signed_yet.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; see Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    }
  },
  "webhooks": {
    "orderEvent": {
      "post": {
        "summary": "Order lifecycle event",
        "description": "POSTed to each registered https endpoint. Answer 2xx within 10 s; otherwise we retry after 1 min, 5 min, 30 min, 2 h and 12 h with the same delivery id. Verify X-Verity-Signature (t=<unix seconds>,v1=<hex>) as HMAC-SHA256 of \"<t>.<raw body>\" with the endpoint's whsec_ secret; reject t older than 5 minutes.",
        "parameters": [
          {
            "name": "X-Verity-Event",
            "in": "header",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Verity-Delivery",
            "in": "header",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Verity-Signature",
            "in": "header",
            "schema": {
              "type": "string",
              "example": "t=1757872171,v1=5f1a…"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookEvent"
              }
            }
          }
        },
        "responses": {
          "2xx": {
            "description": "Received."
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "apiKey": {
        "type": "http",
        "scheme": "bearer",
        "description": "An API key from the Developer API page: vnhd_live_… (or vnhd_test_… for no-charge test orders)."
      }
    },
    "schemas": {
      "Error": {
        "type": "object",
        "required": [
          "error"
        ],
        "properties": {
          "error": {
            "type": "object",
            "required": [
              "code",
              "message"
            ],
            "properties": {
              "code": {
                "type": "string",
                "enum": [
                  "invalid_json",
                  "validation_failed",
                  "unknown_product",
                  "order_rejected",
                  "unauthorized",
                  "key_revoked",
                  "insufficient_scope",
                  "not_found",
                  "report_not_ready",
                  "not_signed_yet",
                  "rate_limited",
                  "server_error",
                  "storage_error"
                ]
              },
              "message": {
                "type": "string"
              },
              "issues": {
                "type": "array",
                "description": "Present on validation_failed: one entry per problem.",
                "items": {
                  "type": "object",
                  "properties": {
                    "path": {
                      "type": "string",
                      "example": "property.zip"
                    },
                    "message": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "Property": {
        "type": "object",
        "required": [
          "address",
          "city",
          "zip"
        ],
        "properties": {
          "address": {
            "type": "string",
            "maxLength": 300,
            "example": "1444 Nye Street"
          },
          "city": {
            "type": "string",
            "maxLength": 120,
            "example": "San Rafael"
          },
          "state": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2,
            "default": "CA"
          },
          "zip": {
            "type": "string",
            "minLength": 5,
            "maxLength": 10,
            "example": "94901"
          },
          "apn": {
            "type": "string",
            "maxLength": 60,
            "description": "Assessor's parcel number, if known."
          },
          "county": {
            "type": "string",
            "maxLength": 60,
            "example": "Marin"
          },
          "owner": {
            "type": "string",
            "maxLength": 200
          }
        }
      },
      "CreateOrderRequest": {
        "type": "object",
        "required": [
          "product",
          "property"
        ],
        "properties": {
          "product": {
            "type": "string",
            "description": "A report product id (UUID) or its exact name.",
            "example": "Standard NHD"
          },
          "property": {
            "type": "object",
            "required": [
              "address",
              "city",
              "zip"
            ],
            "properties": {
              "address": {
                "type": "string",
                "maxLength": 300,
                "example": "1444 Nye Street"
              },
              "city": {
                "type": "string",
                "maxLength": 120,
                "example": "San Rafael"
              },
              "state": {
                "type": "string",
                "minLength": 2,
                "maxLength": 2,
                "default": "CA"
              },
              "zip": {
                "type": "string",
                "minLength": 5,
                "maxLength": 10,
                "example": "94901"
              },
              "apn": {
                "type": "string",
                "maxLength": 60,
                "description": "Assessor's parcel number, if known."
              },
              "county": {
                "type": "string",
                "maxLength": 60,
                "example": "Marin"
              },
              "owner": {
                "type": "string",
                "maxLength": 200
              }
            }
          },
          "parties": {
            "type": "object",
            "properties": {
              "buyer_name": {
                "type": "string",
                "maxLength": 200
              },
              "buyer_email": {
                "type": "string",
                "format": "email",
                "maxLength": 255
              },
              "seller_name": {
                "type": "string",
                "maxLength": 200
              },
              "seller_email": {
                "type": "string",
                "format": "email",
                "maxLength": 255
              }
            }
          },
          "escrow": {
            "type": "object",
            "description": "Required (company, officer_email, file_number) when billing is pay_at_close.",
            "properties": {
              "company": {
                "type": "string",
                "maxLength": 200
              },
              "officer_name": {
                "type": "string",
                "maxLength": 200
              },
              "officer_email": {
                "type": "string",
                "format": "email",
                "maxLength": 255
              },
              "phone": {
                "type": "string",
                "maxLength": 30
              },
              "file_number": {
                "type": "string",
                "maxLength": 80
              }
            }
          },
          "listing_agent": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 200
              },
              "email": {
                "type": "string",
                "format": "email",
                "maxLength": 255
              }
            }
          },
          "estimated_close_date": {
            "type": "string",
            "format": "date",
            "example": "2026-10-15"
          },
          "billing": {
            "type": "string",
            "enum": [
              "pay_at_close",
              "prepaid"
            ],
            "default": "pay_at_close",
            "description": "pay_at_close invoices the named escrow at closing; prepaid debits the workspace's credit balance."
          },
          "external_ref": {
            "type": "string",
            "maxLength": 120,
            "description": "Your own reference (a transaction or file id). Echoed back and filterable on the list endpoint.",
            "example": "skyslope-file-477309"
          },
          "idempotency_key": {
            "type": "string",
            "maxLength": 200,
            "description": "Unique per request. A retry with the same key returns the original order with Idempotent-Replayed: true. May also be sent as an Idempotency-Key header."
          },
          "report_recipients": {
            "type": "array",
            "description": "Extra people who receive the report when it is ready.",
            "items": {
              "type": "object",
              "required": [
                "email"
              ],
              "properties": {
                "role": {
                  "type": "string",
                  "example": "tc"
                },
                "name": {
                  "type": "string",
                  "maxLength": 200
                },
                "email": {
                  "type": "string",
                  "format": "email",
                  "maxLength": 255
                }
              }
            }
          }
        }
      },
      "Report": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "generating",
              "ready",
              "waiting_on_government_source",
              "failed",
              "awaiting_payment"
            ]
          },
          "step": {
            "type": [
              "string",
              "null"
            ],
            "description": "While generating: property, hazard, environmental, summary or pdf."
          },
          "step_description": {
            "type": [
              "string",
              "null"
            ]
          },
          "error": {
            "type": [
              "string",
              "null"
            ],
            "description": "Set for failed and waiting_on_government_source."
          },
          "pdf_url": {
            "type": [
              "string",
              "null"
            ],
            "format": "uri"
          },
          "signed_pdf_url": {
            "type": [
              "string",
              "null"
            ],
            "format": "uri"
          },
          "signed_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          }
        }
      },
      "Order": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "order_number": {
            "type": "string",
            "example": "VN-10188"
          },
          "object": {
            "type": "string",
            "const": "order"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "type": "string",
            "enum": [
              "ordered",
              "delivered",
              "paid",
              "signed",
              "sent_for_signature",
              "cancelled",
              "fell_through",
              "awaiting_payment"
            ]
          },
          "external_ref": {
            "type": [
              "string",
              "null"
            ]
          },
          "idempotency_key": {
            "type": [
              "string",
              "null"
            ]
          },
          "test": {
            "type": "boolean",
            "description": "True for no-charge orders placed with a test key."
          },
          "product": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "price": {
                "type": "number"
              }
            }
          },
          "billing": {
            "type": "object",
            "properties": {
              "method": {
                "type": "string",
                "example": "pay_at_close"
              },
              "status": {
                "type": "string",
                "example": "unpaid"
              },
              "amount": {
                "type": "number"
              }
            }
          },
          "property": {
            "type": "object",
            "properties": {
              "address": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "city": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "state": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "zip": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "apn": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "county": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "owner": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "parties": {
            "type": "object",
            "properties": {
              "buyer_name": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "buyer_email": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "seller_name": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "seller_email": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "escrow": {
            "type": "object",
            "properties": {
              "company": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "officer_name": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "officer_email": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "file_number": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "listing_agent": {
            "type": "object",
            "properties": {
              "name": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "email": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "estimated_close_date": {
            "type": [
              "string",
              "null"
            ],
            "format": "date"
          },
          "report": {
            "type": "object",
            "properties": {
              "status": {
                "type": "string",
                "enum": [
                  "generating",
                  "ready",
                  "waiting_on_government_source",
                  "failed",
                  "awaiting_payment"
                ]
              },
              "step": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "While generating: property, hazard, environmental, summary or pdf."
              },
              "step_description": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "error": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Set for failed and waiting_on_government_source."
              },
              "pdf_url": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "uri"
              },
              "signed_pdf_url": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "uri"
              },
              "signed_at": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time"
              }
            }
          },
          "determinations": {
            "type": [
              "object",
              "null"
            ],
            "description": "Hazard yes/no answers. Null until the hazard step has run. A key is present once determined; a null value means its government source was unavailable and that line is pending. Keys that do not apply to the product are absent.",
            "properties": {
              "special_flood_hazard_area": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "dam_inundation_zone": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "very_high_fire_hazard_severity_zone": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "wildland_state_responsibility_area": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "earthquake_fault_zone": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "seismic_hazard_zone": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "seismic_hazard_zone_map_released": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "high_fire_hazard_severity_zone_local": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "airport_influence_area": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "airport_noise_zone": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "former_military_ordnance_location": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "hazardous_waste_site_cortese_list": {
                "type": [
                  "boolean",
                  "null"
                ]
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "self": {
                "type": "string",
                "format": "uri"
              },
              "web": {
                "type": "string",
                "format": "uri"
              }
            }
          }
        }
      },
      "HazardScreen": {
        "type": "object",
        "properties": {
          "object": {
            "type": "string",
            "const": "hazard_screen"
          },
          "determined_at": {
            "type": "string",
            "format": "date-time"
          },
          "property": {
            "type": "object",
            "properties": {
              "query": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "formatted_address": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "coordinates": {
                "type": "object",
                "properties": {
                  "lat": {
                    "type": "number"
                  },
                  "lng": {
                    "type": "number"
                  }
                }
              }
            }
          },
          "determinations": {
            "type": [
              "object",
              "null"
            ],
            "description": "Hazard yes/no answers. Null until the hazard step has run. A key is present once determined; a null value means its government source was unavailable and that line is pending. Keys that do not apply to the product are absent.",
            "properties": {
              "special_flood_hazard_area": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "dam_inundation_zone": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "very_high_fire_hazard_severity_zone": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "wildland_state_responsibility_area": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "earthquake_fault_zone": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "seismic_hazard_zone": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "seismic_hazard_zone_map_released": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "high_fire_hazard_severity_zone_local": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "airport_influence_area": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "airport_noise_zone": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "former_military_ordnance_location": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "hazardous_waste_site_cortese_list": {
                "type": [
                  "boolean",
                  "null"
                ]
              }
            }
          },
          "details": {
            "type": "object",
            "properties": {
              "fema_flood_zone": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "fire_severity_sra": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "fire_severity_lra": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "seismic_zone_types": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "liquefaction",
                    "landslide"
                  ]
                }
              }
            }
          },
          "sources": {
            "type": "object",
            "description": "Per screen: mirror (our verified copy of the agency layer), primary or fallback (the agency's live service).",
            "additionalProperties": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          "unavailable": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Screens whose government source was unavailable."
          },
          "disclaimer": {
            "type": "string"
          }
        }
      },
      "WebhookEvent": {
        "type": "object",
        "required": [
          "id",
          "object",
          "event",
          "api_version",
          "created_at",
          "data"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Delivery id — the same across retries; de-duplicate on it."
          },
          "object": {
            "type": "string",
            "const": "event"
          },
          "event": {
            "type": "string",
            "enum": [
              "order.created",
              "order.report_ready",
              "order.held",
              "order.failed",
              "order.signed",
              "webhook.test"
            ]
          },
          "api_version": {
            "type": "string",
            "example": "2026-09-14"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "data": {
            "type": "object",
            "properties": {
              "order": {
                "type": "object",
                "description": "A thin order: fetch links.self with your API key for the full record.",
                "properties": {
                  "id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "order_number": {
                    "type": "string"
                  },
                  "status": {
                    "type": "string"
                  },
                  "external_ref": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "test": {
                    "type": "boolean"
                  },
                  "property": {
                    "type": "object",
                    "properties": {
                      "address": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "city": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "state": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "zip": {
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    }
                  },
                  "report": {
                    "type": "object",
                    "properties": {
                      "status": {
                        "type": "string",
                        "enum": [
                          "generating",
                          "ready",
                          "waiting_on_government_source",
                          "failed",
                          "awaiting_payment"
                        ]
                      },
                      "step": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "While generating: property, hazard, environmental, summary or pdf."
                      },
                      "step_description": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "error": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Set for failed and waiting_on_government_source."
                      },
                      "pdf_url": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "format": "uri"
                      },
                      "signed_pdf_url": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "format": "uri"
                      },
                      "signed_at": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "format": "date-time"
                      }
                    }
                  },
                  "updated_at": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "links": {
                    "type": "object",
                    "properties": {
                      "self": {
                        "type": "string",
                        "format": "uri"
                      },
                      "web": {
                        "type": "string",
                        "format": "uri"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}