> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pingintel.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get SOV summary

> Get insured details and statistics for an SOV or portfolio. Can filter (`filters`) and break down stats (`fields`).



## OpenAPI

````yaml https://api.sovfixer.com/api/schema/?format=json get /api/v1/sov/{id}/summary
openapi: 3.0.3
info:
  title: Ping.Extraction API
  version: v1.0
  description: >-
    ### Ping.Extraction API


    This API provides an asynchronous method for parsing Excel SOV documents
    using the Ping Intel SOV Fixer platform.


    The typical SOV Fixer usage flow is:


    * POST to `/api/v1/sov`

    * Poll GET `/api/v1/sov/{id}`, passing the `id` given by the previous
    response until `response.request.status` is `COMPLETE` or `FAILED`.
    Depending on load, number of buildings in the SOV, and 3rd party
    integrations, it may take anywhere from a few seconds to many minutes.

    * Download the parsed SOV data as JSON from
    `/api/v1/sov/{id}/output/{filename}`. The exact url comes from the response
    to the above query, in `response.result.outputs[].url`.


    API Usage Examples: [Python](/api/v1/sov-api-usage-example.py) |
    [.NET](/api/v1/sov-api-usage-example.cs)

    Client Libraries: [Python](https://pypi.org/project/pingintel-api/)


    #### Authorization

    Most endpoints are protected by Bearer authentication. Under each endpoint
    listed below, click into the `authorizations` section to see what is
    required for that endpoint.


    #### Output JSON Example:

    ```json

    {

    "id": "s-e-xxxxxxx",

    "source_filename": "My Example SOV.xls",

    "num_buildings": 26,

    "extra_data": {
        "insured_name": "Joe Insured",
        "... custom document-level data fields ...": ""
    },

    "buildings": [
        {
        "item_key": "i-s-e-xxxxxxx!Original SOV Sheet!7",
        "building_counter": 1,
        "sheet_name": "Original SOV Sheet",
        "sheet_row_number": 7,
        "parsing_sheet_name": "Original SOV Sheet",
        "location_code": {
            "value": "A-1",
            "confidence": 0.5,
            "comment": "Adjusted."
        },
        "bldg_name": {
            "value": "Elementary School",
            "confidence": 0.7
        },
        "street": {
            "value": "1212 Mockingbird Lane",
            "confidence": 0.7
        },
        "city": {
            "value": "Tewksbury",
            "confidence": 0.5
        },
        "state": {
            "original": "Mass",
            "value": "MA",
            "confidence": 0.9
        },
        "zip": {
            "value": "01876",
            "original": 1876,
            "confidence": 0,
            "comment": "Please check."
        },
        "... more building attributes ...": "",
        "external_data": {
            "PG": {
            "latitude": 42.6109,
            "longitude": -71.2342,
            "confidence": 0.9,
            "street": "1212 Mockingbird Ln",
            "city": "Tewksbury",
            "... rest of the data from the Ping Geocoding (PG) external data source ...": ""
            },
            "... any other requested third party data sources ...": ""
        },
        "extra": {
            "... columns that were not identified as a standard SOV field ...": "",
            "Unidentified Column": "123213",
            "Another Unidentified Column": "abc"
        }
        },
        "... additional buildings ...": ""
    ]

    }

    ```


    Complete JSON reference documentation can be found for each output type:
    [SOV](/docs/data/SOV/) | [Premium BDX](/docs/data/PREM_BDX/) | [Claim
    BDX](/docs/data/CLAIM_BDX/).


    Some notes about specific JSON output fields:

    * `limits__total_limit`: Contains the TIV if explicitly specified in the
    SOV. If not, it is summed from the fields `limits__building_limit` +
    `limits__bpp_limit` + `limits__bi_limit` + `limits__signs_and_other_limit`.

    * `limits__building_limit`: Building Limit is an aggregate of:

    * `limits__building_value`

    * `limits__location_limit`

    * `limits__blanket_limit`

    * `limits__building_only_limit`

    * `limits__real_property_limit`

    * `limits__structure_limit`

    * `limits__bpp_limit`: Business Personal Property (Contents) Limit is an
    aggregate of:

    * `limits__contents_value`

    * `limits__contents_limit`

    * `limits__bpp_value`

    * `limits__equip_limit`

    * `limits__personal_property_limit`

    * Any field identified as a limit field but not otherwise categorized.

    * `limits__bi_limit`: Business Interruption Limit is an aggregate of:

    * `limits__bi_value`

    * `limits__bi_income_limit`

    * `limits__business_interruption_limit`

    * `limits__time_element_limit`

    * `limits__signs_and_other_limit`: Signs and Other Structures Limit is an
    aggregate of:

    * `limits__signs_limit`

    * `limits__other_structures_limit`


    ### Ping Intel SOV History API

    This API provides a method for accessing historical SOV submissions
    including their revisions (SOV Updates) and the raw parsed output.


    The typical usage workflow is:

    * GET to `api/v1/sov/history?start={start_timestamp}` for a list of SOVIDs
    submitted between `start_timestamp` and now.

    * For each sovid:

    * GET to `api/v1/sov/history/{id}` to get information about the SOV or SOV
    Update. This includes any output we produced in servicing the request

    * GET to the the URL in the outputs dict to download the resource you need.
        
  contact:
    email: support@pingintel.com
    name: Ping Intel
    url: https://www.pingintel.com
servers:
  - url: https://api.sovfixer.com
    description: Ping.Extraction API
  - url: https://api-staging.sovfixer.com
    description: Ping.Extraction API (staging)
security: []
tags:
  - name: Parse SOVs
  - name: Get SOV Data
  - name: Analyze SOVs
    description: >
      Totals, value distributions, location lists, an exposure report and a
      layer analysis for the locations of an SOV or portfolio, narrowed by
      location filters.


      **How filters combine**


      - Different fields: a location must match all of them.

      - Repeating an array field (`state=TX&state=FL`): matches any of the
      values.

      - Several operators on one field
      (`const__bldg_year_built[gte]=1990&const__bldg_year_built[lt]=2000`): all
      must hold, forming a range.

      - `[bins]` with several bins: matches any of them.

      - `[not_in]`: excludes those values; locations missing the field are
      excluded too.

      - `[gt_or_null]`, `[gte_or_null]`, `[lte_or_null]`: the comparison holds
      or the value is missing.

      - `N/A` as an exact value: matches locations missing the field.

      - An exact value, `[bins]` and range operators cannot be combined on one
      field; the request returns 400.

      - A report row's `filter` has the same shape: send it as query parameters,
      or follow the row's `links`, to drill into that row.


      Example:
      `state=TX&state=FL&const__bldg_year_built[gte]=1990&const__bldg_year_built[lt]=2000&county[not_in]=Harris`
      selects locations in Texas or Florida, built from 1990 through 1999,
      outside Harris County.
    x-operation-order:
      - get_sov_summary
      - list_sov_locations
      - get_sov_exposure_report
      - get_sov_layer_analysis
  - name: Update SOVs
paths:
  /api/v1/sov/{id}/summary:
    get:
      tags:
        - Analyze SOVs
      summary: Get SOV summary
      description: >-
        Get insured details and statistics for an SOV or portfolio. Can filter
        (`filters`) and break down stats (`fields`).
      operationId: get_sov_summary
      parameters:
        - in: path
          name: id
          schema:
            type: string
          description: pingid, sovid, or portfolio id
          required: true
        - in: query
          name: fields
          schema:
            type: array
            items:
              enum:
                - country
                - state
                - county
                - const__bldg_year_built
                - wind_tier
                - fema_flood_zone
                - slosh_zone
                - ping_geo__match_level
              type: string
              description: |-
                * `country` - country
                * `state` - state
                * `county` - county
                * `const__bldg_year_built` - const__bldg_year_built
                * `wind_tier` - wind_tier
                * `fema_flood_zone` - fema_flood_zone
                * `slosh_zone` - slosh_zone
                * `ping_geo__match_level` - ping_geo__match_level
              x-spec-enum-id: 1285428e92beefda
          description: Fields to return value distributions for in `fields`. Omit for none.
        - in: query
          name: filters
          schema:
            $ref: '#/components/schemas/SOVAnalyticsFiltersRequest'
          description: >-
            Location filters. Send each field as its own query parameter:
            `field=value` for an exact match, `field[op]=value` for an operator.
            `state=TX&state=FL&const__bldg_year_built[gte]=1990` selects
            locations in TX or FL built in 1990 or later.


            - Different fields: a location must match all of them.

            - Repeating a field, or `[bins]` with several bins: matches any of
            the values.

            - Several operators on one field: all must hold, forming a range.

            - `N/A` as an exact value: matches locations missing the field.

            - A field takes an exact value, `[bins]` or range operators, not a
            mix.


            See [SOV Data
            Analysis](https://docs.pingintel.com/sov-data-analysis) for every
            rule and examples.
          explode: true
          style: form
        - in: query
          name: layer_attach
          schema:
            type: integer
            default: 0
          description: >-
            Layer attachment point. With `layer_limit`, defines the layer whose
            per-location exposure is reported as `limits__total_limit_in_layer`.
            Defaults to 0.
        - in: query
          name: layer_limit
          schema:
            type: integer
          description: >-
            Layer limit. With `layer_attach`, defines the layer whose
            per-location exposure is reported as `limits__total_limit_in_layer`.
            Omit for a layer with no upper limit.
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SOVSummaryResponse'
              examples:
                PolicySummary:
                  value:
                    sovid: s-e-c2qahx
                    kind: policy
                    status: READY
                    pct_complete: 100
                    filename: Acme Holdings 2026 SOV.xlsx
                    insured:
                      name: Acme Holdings LLC
                      website: https://www.acmeholdings.example
                      business_address: 200 S Biscayne Blvd, Miami, FL 33131
                      primary_naics_code: 531120
                    risk_summary: >-
                      Commercial real estate portfolio concentrated in coastal
                      Florida and the Houston area.
                    totals:
                      count: 148
                      geocoded_count: 141
                      limits__total_limit: 482350000
                      limits__total_limit_geocoded: 469100000
                      limits__total_limit_nongeocoded: 13250000
                      limits__building_limit: 351800000
                      limits__bpp_limit: 88400000
                      limits__bi_limit: 39650000
                      limits__signs_and_other_limit: 2500000
                      limits__total_limit_in_layer: 482350000
                      bbox:
                        lat1: 30.8812
                        lat2: 25.1204
                        lng1: -97.7431
                        lng2: -80.131
                    fields:
                      wind_tier:
                        - value: Tier 1
                          label: Tier 1
                          count: 38
                          count_pct: 25.68
                          limits__total_limit: 164200000
                          limits__total_limit_pct: 34.04
                        - value: Tier 2
                          label: Tier 2
                          count: 27
                          count_pct: 18.24
                          limits__total_limit: 98750000
                          limits__total_limit_pct: 20.47
                        - value: N/A
                          label: N/A
                          count: 83
                          count_pct: 56.08
                          limits__total_limit: 219400000
                          limits__total_limit_pct: 45.49
                  summary: Policy summary
          description: Summary of the matching locations.
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SOVAnalyticsNotReady'
          description: Analytics for this SOV are still being built. Retry later.
        '400':
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: array
                  items:
                    type: string
                description: Error messages keyed by query parameter name.
          description: A query parameter is invalid or unknown.
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SOVAnalyticsError'
          description: Credentials are missing or invalid.
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SOVAnalyticsError'
          description: The SOV or portfolio does not exist, or the caller cannot view it.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SOVAnalyticsError'
          description: >-
            `id` is a pingid that matches no submission or whose submission has
            no SOV yet, or no analytics exist for the SOV yet. Requesting its
            `summary` starts building them.
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SOVAnalyticsError'
          description: Analytics for this SOV failed to build.
      security:
        - tokenAuth: []
        - cookieAuth: []
components:
  schemas:
    SOVAnalyticsFiltersRequest:
      type: object
      description: >-
        Location filters. Each key is a field: give a value for an exact match,
        or an object of operators.
      additionalProperties: false
      properties:
        bounding_polygon:
          type: string
          description: >-
            Polygon enclosing the locations to include, as comma-separated
            points `lat1,lng1,lat2,lng2,...`. 3 to 100 points; the ring closes
            automatically.
        cape_roof_condition_score:
          type: array
          items:
            type: string
          description: >-
            CAPE Analytics roof condition ratings to include, e.g. `-1` (poor)
            or `-2` (severe).
        cfld_alrb_score_catg:
          type: array
          items:
            type: string
          description: >-
            National Risk Index coastal flooding annualized loss rate categories
            to include, e.g. `High`.
        const__bldg_area:
          description: >-
            Building area in square feet. `N/A` selects locations without one.
            Operators: `gte`, `gt`, `lte`, `lt`, `lte_or_null`.
          anyOf:
            - type: string
              description: >-
                Building area in square feet. `N/A` selects locations without
                one.
            - type: object
              title: operators
              additionalProperties: false
              properties:
                gt:
                  type: integer
                  description: Minimum, exclusive.
                gte:
                  type: integer
                  description: Minimum, inclusive.
                lt:
                  type: integer
                  description: Maximum, exclusive.
                lte:
                  type: integer
                  description: Maximum, inclusive.
                lte_or_null:
                  type: integer
                  description: Maximum, inclusive; also matches missing values.
        const__bldg_year_built:
          description: >-
            Year built. `N/A` selects locations without one. Operators: `gte`,
            `gt`, `lte`, `lt`, `lte_or_null`, `bins`.
          anyOf:
            - type: string
              description: Year built. `N/A` selects locations without one.
            - type: object
              title: operators
              additionalProperties: false
              properties:
                bins:
                  type: array
                  items:
                    enum:
                      - Pre-1972
                      - 1972 - 1994
                      - 1995 - 2001
                      - 2001+
                    type: string
                    description: |-
                      * `Pre-1972` - Pre-1972
                      * `1972 - 1994` - 1972 - 1994
                      * `1995 - 2001` - 1995 - 2001
                      * `2001+` - 2001+
                    x-spec-enum-id: 12abda2246940686
                  description: >-
                    Includes these bins: `Pre-1972`, `1972 - 1994`, `1995 -
                    2001`, `2001+`.
                gt:
                  type: integer
                  description: Minimum, exclusive.
                gte:
                  type: integer
                  description: Minimum, inclusive.
                lt:
                  type: integer
                  description: Maximum, exclusive.
                lte:
                  type: integer
                  description: Maximum, inclusive.
                lte_or_null:
                  type: integer
                  description: Maximum, inclusive; also matches missing values.
        const__code_air:
          type: array
          items:
            type: integer
          description: AIR construction codes to include.
        const__code_iso:
          type: array
          items:
            type: string
          description: ISO construction classes to include.
        const__code_rms:
          type: array
          items:
            type: string
          description: RMS construction codes to include.
        const__iso_protection_class:
          description: >-
            ISO protection class. `N/A` selects locations without one.
            Operators: `gt`.
          anyOf:
            - type: string
              description: ISO protection class. `N/A` selects locations without one.
            - type: object
              title: operators
              additionalProperties: false
              properties:
                gt:
                  type: integer
                  description: Minimum, exclusive.
        const__num_stories:
          description: >-
            Number of stories. `N/A` selects locations without one. Operators:
            `gte`, `gt`, `lte`, `lt`.
          anyOf:
            - type: string
              description: Number of stories. `N/A` selects locations without one.
            - type: object
              title: operators
              additionalProperties: false
              properties:
                gt:
                  type: integer
                  description: Minimum, exclusive.
                gte:
                  type: integer
                  description: Minimum, inclusive.
                lt:
                  type: integer
                  description: Maximum, exclusive.
                lte:
                  type: integer
                  description: Maximum, inclusive.
        const__roof_year_updated:
          description: 'Roof year updated. Operators: `lte_or_null`.'
          anyOf:
            - type: string
              description: Roof year updated.
            - type: object
              title: operators
              additionalProperties: false
              properties:
                lte_or_null:
                  type: integer
                  description: Maximum, inclusive; also matches missing values.
        const_code_pcg:
          description: >-
            Ping construction classes to include, e.g. `WF`, `JM`, `RC`. `N/A`
            selects locations without one. Operators: `not_in`.
          anyOf:
            - type: array
              items:
                type: string
              description: >-
                Ping construction classes to include, e.g. `WF`, `JM`, `RC`.
                `N/A` selects locations without one.
            - type: object
              title: operators
              additionalProperties: false
              properties:
                not_in:
                  type: array
                  items:
                    type: string
                  description: Excludes these values.
        country:
          description: 'Country codes to include, e.g. `US`. Operators: `not_in`.'
          anyOf:
            - type: array
              items:
                type: string
              description: Country codes to include, e.g. `US`.
            - type: object
              title: operators
              additionalProperties: false
              properties:
                not_in:
                  type: array
                  items:
                    type: string
                  description: Excludes these values.
        county:
          description: 'County names to include, e.g. `Harris`. Operators: `not_in`.'
          anyOf:
            - type: array
              items:
                type: string
              description: County names to include, e.g. `Harris`.
            - type: object
              title: operators
              additionalProperties: false
              properties:
                not_in:
                  type: array
                  items:
                    type: string
                  description: Excludes these values.
        distance_to_coast_miles:
          description: >-
            Distance to the coast, in miles. Operators: `gt`, `gte`, `lt`,
            `lte`, `gt_or_null`, `gte_or_null`, `lt_or_null`, `lte_or_null`.
          anyOf:
            - type: number
              format: double
              minimum: 0
              description: Distance to the coast, in miles.
            - type: object
              title: operators
              additionalProperties: false
              properties:
                gt:
                  type: number
                  format: double
                  description: Minimum, exclusive.
                gt_or_null:
                  type: number
                  format: double
                  description: Minimum, exclusive; also matches missing values.
                gte:
                  type: number
                  format: double
                  description: Minimum, inclusive.
                gte_or_null:
                  type: number
                  format: double
                  description: Minimum, inclusive; also matches missing values.
                lt:
                  type: number
                  format: double
                  description: Maximum, exclusive.
                lt_or_null:
                  type: number
                  format: double
                  description: Maximum, exclusive; also matches missing values.
                lte:
                  type: number
                  format: double
                  description: Maximum, inclusive.
                lte_or_null:
                  type: number
                  format: double
                  description: Maximum, inclusive; also matches missing values.
        eq_zone:
          type: array
          items:
            type: string
          description: >-
            Earthquake zones to include: `CA`, `PacNW`, `New Madrid`, `HI` or
            `AK`.
        fema_flood_zone:
          description: >-
            FEMA flood zone, e.g. `AE`. `N/A` selects locations without one.
            Operators: `bins`.
          anyOf:
            - type: string
              description: FEMA flood zone, e.g. `AE`. `N/A` selects locations without one.
            - type: object
              title: operators
              additionalProperties: false
              properties:
                bins:
                  type: array
                  items:
                    enum:
                      - SFHA
                      - Non-SFHA
                    type: string
                    description: |-
                      * `SFHA` - SFHA
                      * `Non-SFHA` - Non-SFHA
                    x-spec-enum-id: 96b50cfc0de3290d
                  description: 'Includes these bins: `SFHA`, `Non-SFHA`.'
        hail_alrb_score_catg:
          type: array
          items:
            type: string
          description: >-
            National Risk Index hail annualized loss rate categories to include,
            e.g. `High`.
        hail_riskr:
          type: array
          items:
            type: string
          description: National Risk Index hail risk ratings to include, e.g. `Very High`.
        lat1:
          type: number
          format: double
          maximum: 90
          minimum: -90
          description: >-
            North latitude of the bounding box. Supply with `lat2`, `lng1` and
            `lng2`.
        lat2:
          type: number
          format: double
          maximum: 90
          minimum: -90
          description: South latitude of the bounding box.
        limits__total_limit:
          description: >-
            Location TIV: `limits__total_limit`, the sum of the building, BPP,
            BI and signs-and-other limits. Operators: `gte`, `gt`, `lte`, `lt`.
          anyOf:
            - type: integer
              description: >-
                Location TIV: `limits__total_limit`, the sum of the building,
                BPP, BI and signs-and-other limits.
            - type: object
              title: operators
              additionalProperties: false
              properties:
                gt:
                  type: integer
                  description: Minimum, exclusive.
                gte:
                  type: integer
                  description: Minimum, inclusive.
                lt:
                  type: integer
                  description: Maximum, exclusive.
                lte:
                  type: integer
                  description: Maximum, inclusive.
        lng1:
          type: number
          format: double
          maximum: 180
          minimum: -180
          description: >-
            West longitude of the bounding box. A value greater than `lng2`
            crosses the antimeridian.
        lng2:
          type: number
          format: double
          maximum: 180
          minimum: -180
          description: East longitude of the bounding box.
        occupancy__code_air:
          type: array
          items:
            type: integer
          description: AIR occupancy codes to include.
        occupancy__code_atc:
          type: array
          items:
            type: string
          description: ATC occupancy codes to include.
        occupancy__desc_air:
          description: >-
            AIR occupancy descriptions to include. `N/A` selects locations
            without one. Operators: `not_in`.
          anyOf:
            - type: array
              items:
                type: string
              description: >-
                AIR occupancy descriptions to include. `N/A` selects locations
                without one.
            - type: object
              title: operators
              additionalProperties: false
              properties:
                not_in:
                  type: array
                  items:
                    type: string
                  description: Excludes these values.
        occupancy__desc_atc:
          description: >-
            ATC occupancy descriptions to include. `N/A` selects locations
            without one. Operators: `not_in`.
          anyOf:
            - type: array
              items:
                type: string
              description: >-
                ATC occupancy descriptions to include. `N/A` selects locations
                without one.
            - type: object
              title: operators
              additionalProperties: false
              properties:
                not_in:
                  type: array
                  items:
                    type: string
                  description: Excludes these values.
        ping_geo__match_level:
          description: >-
            Geocode match levels to include, e.g. `point`. `N/A` selects
            locations without a geocode. Operators: `not_in`.
          anyOf:
            - type: array
              items:
                type: string
              description: >-
                Geocode match levels to include, e.g. `point`. `N/A` selects
                locations without a geocode.
            - type: object
              title: operators
              additionalProperties: false
              properties:
                not_in:
                  type: array
                  items:
                    type: string
                  description: Excludes these values.
        protect__pct_sprinklered:
          type: array
          items:
            enum:
              - 100%
              - Partial
              - 0%
              - N/A
            type: string
            description: |-
              * `100%` - 100%
              * `Partial` - Partial
              * `0%` - 0%
              * `N/A` - N/A
            x-spec-enum-id: 559519371c31f809
          description: >-
            Sprinkler coverages to include: `0%`, `Partial` (above 0% and below
            100%), `100%`, or `N/A` (unknown, or outside 0% to 100%).
        scs_roof_age:
          type: array
          items:
            type: string
          description: >-
            Roof age cutoff year: selects locations whose roof was last updated
            before it (or, without a roof year, built before it) and locations
            with neither year.
        slosh_zone:
          type: array
          items:
            type: integer
          description: SLOSH storm surge hurricane categories (1-5) to include.
        state:
          description: 'State or province codes to include, e.g. `TX`. Operators: `not_in`.'
          anyOf:
            - type: array
              items:
                type: string
              description: State or province codes to include, e.g. `TX`.
            - type: object
              title: operators
              additionalProperties: false
              properties:
                not_in:
                  type: array
                  items:
                    type: string
                  description: Excludes these values.
        total_crime_grade:
          type: array
          items:
            type: string
          description: Crime grades to include, `A` (minimal) to `F` (high).
        trnd_alrb_score_catg:
          type: array
          items:
            type: string
          description: >-
            National Risk Index tornado annualized loss rate categories to
            include, e.g. `High`.
        trnd_riskr:
          type: array
          items:
            type: string
          description: >-
            National Risk Index tornado risk ratings to include, e.g. `Very
            High`.
        wfir_alrb_score_catg:
          type: array
          items:
            type: string
          description: >-
            National Risk Index wildfire annualized loss rate categories to
            include, e.g. `High`.
        wfir_riskr:
          type: array
          items:
            type: string
          description: >-
            National Risk Index wildfire risk ratings to include, e.g. `Very
            High`.
        wind_tier:
          type: array
          items:
            type: string
          description: >-
            Hurricane wind tiers to include: `Tier 1`, `Tier 2`, `Tri-County`,
            `All Other FL` or `Harris County, TX`.
    SOVSummaryResponse:
      type: object
      properties:
        fields:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/SOVFieldBucket'
          description: >-
            Value distribution of the matching locations for each requested
            field, keyed by field name.
        filename:
          type: string
          nullable: true
          description: Filename of the submitted SOV.
        insured:
          allOf:
            - $ref: '#/components/schemas/SOVInsured'
          description: Insured details.
        kind:
          enum:
            - policy
            - portfolio
          type: string
          x-spec-enum-id: 8275569622eb614f
          description: |-
            Whether `sovid` is a policy or portfolio.

            * `policy` - policy
            * `portfolio` - portfolio
        pct_complete:
          type: integer
          description: Build progress, 0-100.
        risk_summary:
          type: string
          nullable: true
          description: Narrative summary of the insured's risk.
        sovid:
          type: string
          description: SOV id, or portfolio id when `kind` is `portfolio`.
        status:
          enum:
            - NOT_INITIALIZED
            - INITIALIZING
            - READY
            - FAILED
          type: string
          x-spec-enum-id: a28b53a615baed8e
          description: |-
            Analytics build status. Always `READY` in a 200 response.

            * `NOT_INITIALIZED` - NOT_INITIALIZED
            * `INITIALIZING` - INITIALIZING
            * `READY` - READY
            * `FAILED` - FAILED
        totals:
          allOf:
            - $ref: '#/components/schemas/SOVAnalyticsTotals'
          description: Totals over the matching locations.
      required:
        - fields
        - filename
        - insured
        - kind
        - pct_complete
        - risk_summary
        - sovid
        - status
        - totals
    SOVAnalyticsNotReady:
      type: object
      properties:
        pct_complete:
          type: integer
          description: Build progress, 0-100.
        status:
          enum:
            - NOT_INITIALIZED
            - INITIALIZING
          type: string
          x-spec-enum-id: ac0132187203409c
          description: |-
            Analytics build status.

            * `NOT_INITIALIZED` - NOT_INITIALIZED
            * `INITIALIZING` - INITIALIZING
      required:
        - pct_complete
        - status
    SOVAnalyticsError:
      type: object
      properties:
        detail:
          type: string
          description: Error message.
      required:
        - detail
    SOVFieldBucket:
      type: object
      properties:
        count:
          type: integer
          description: Number of matching locations with this value.
        count_pct:
          type: number
          description: '`count` as a percentage (0-100) of `totals.count`.'
        label:
          type: string
          description: Display label.
        limits__total_limit:
          type: number
          description: >-
            Sum of `limits__total_limit` over the matching locations with this
            value.
        limits__total_limit_pct:
          type: number
          description: >-
            `limits__total_limit` as a percentage (0-100) of
            `totals.limits__total_limit`.
        value:
          type: string
          description: >-
            Bucket value. Pass it to the field's filter to select these
            locations: as `<field>[bins]` for `const__bldg_year_built` and
            `fema_flood_zone`, whose buckets are bins, otherwise as `<field>`.
            `N/A` collects locations without a value. Select them with
            `<field>=N/A`.
      required:
        - count
        - count_pct
        - label
        - limits__total_limit
        - limits__total_limit_pct
        - value
    SOVInsured:
      type: object
      properties:
        business_address:
          type: string
          nullable: true
          description: Insured business address.
        name:
          type: string
          nullable: true
          description: Insured name.
        primary_naics_code:
          type: integer
          nullable: true
          description: Insured's primary NAICS code.
        website:
          type: string
          nullable: true
          description: Insured website.
      required:
        - business_address
        - name
        - primary_naics_code
        - website
    SOVAnalyticsTotals:
      type: object
      properties:
        bbox:
          allOf:
            - $ref: '#/components/schemas/Bounds'
          nullable: true
          description: >-
            Bounding box of the geocoded matching locations. Null when none are
            geocoded.
        count:
          type: integer
          description: Number of matching locations.
        geocoded_count:
          type: integer
          description: Number of matching locations geocoded to a point.
        limits__bi_limit:
          type: number
          description: Sum of `limits__bi_limit` over the matching locations.
        limits__bpp_limit:
          type: number
          description: Sum of `limits__bpp_limit` over the matching locations.
        limits__building_limit:
          type: number
          description: Sum of `limits__building_limit` over the matching locations.
        limits__signs_and_other_limit:
          type: number
          description: Sum of `limits__signs_and_other_limit` over the matching locations.
        limits__total_limit:
          type: number
          description: Sum of `limits__total_limit` (TIV) over the matching locations.
        limits__total_limit_geocoded:
          type: number
          description: >-
            Sum of `limits__total_limit` over the matching locations geocoded to
            a point.
        limits__total_limit_in_layer:
          type: number
          description: >-
            Sum over the matching locations of each location's
            `limits__total_limit` within the layer set by `layer_attach` and
            `layer_limit`: min(max(limits__total_limit - layer_attach, 0),
            layer_limit). Equals `limits__total_limit` when no layer is
            requested.
        limits__total_limit_nongeocoded:
          type: number
          description: >-
            Sum of `limits__total_limit` over the matching locations not
            geocoded to a point.
      required:
        - bbox
        - count
        - geocoded_count
        - limits__bi_limit
        - limits__bpp_limit
        - limits__building_limit
        - limits__signs_and_other_limit
        - limits__total_limit
        - limits__total_limit_geocoded
        - limits__total_limit_in_layer
        - limits__total_limit_nongeocoded
    Bounds:
      type: object
      properties:
        lat1:
          type: number
          format: double
          description: North latitude.
        lat2:
          type: number
          format: double
          description: South latitude.
        lng1:
          type: number
          format: double
          description: West longitude.
        lng2:
          type: number
          format: double
          description: East longitude.
      required:
        - lat1
        - lat2
        - lng1
        - lng2
  securitySchemes:
    tokenAuth:
      type: apiKey
      in: header
      name: Authorization
      description: Token-based authentication with required prefix "Token"
    cookieAuth:
      type: apiKey
      in: cookie
      name: sessionid

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.