> ## 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 layer analysis

> Get the TIV exposed to each layer of a tower for the locations of an SOV or portfolio that match the filters, using the `standard` tower or a custom one from `layers`. Layers apply to each location's TIV separately, not to the policy aggregate: a location with $12M TIV contributes $5M to Primary $5M, $5M to $5M xs $5M and $2M to $15M xs $10M. Every row carries `filter` and `links` to drill into the locations that reach the layer.



## OpenAPI

````yaml https://api.sovfixer.com/api/schema/?format=json get /api/v1/sov/{id}/layers
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}/layers:
    get:
      tags:
        - Analyze SOVs
      summary: Get SOV layer analysis
      description: >-
        Get the TIV exposed to each layer of a tower for the locations of an SOV
        or portfolio that match the filters, using the `standard` tower or a
        custom one from `layers`. Layers apply to each location's TIV
        separately, not to the policy aggregate: a location with $12M TIV
        contributes $5M to Primary $5M, $5M to $5M xs $5M and $2M to $15M xs
        $10M. Every row carries `filter` and `links` to drill into the locations
        that reach the layer.
      operationId: get_sov_layer_analysis
      parameters:
        - in: path
          name: id
          schema:
            type: string
          description: pingid, sovid, or portfolio id
          required: true
        - 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: layers
          schema:
            type: array
            items:
              type: string
              pattern: ^(\d+)?xs(\d+)$
            maxItems: 20
            minItems: 1
          description: >-
            Custom tower, one layer per value, as `<limit>xs<attach>` in whole
            currency units: `5000000xs0` is a primary $5M layer and
            `xs200000000` is everything above $200M. Up to 20 layers. Cannot be
            combined with `tower`.
        - in: query
          name: tower
          schema:
            enum:
              - standard
            type: string
            x-spec-enum-id: 9dafa30f351548cf
          description: >-
            Preset layer tower. `standard` is Primary $5M, $5M xs $5M, $15M xs
            $10M, $25M xs $25M, $50M xs $50M, $100M xs $100M and everything
            above $200M. Defaults to `standard` when `layers` is omitted.


            * `standard` - standard
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SOVLayerAnalysisResponse'
              examples:
                StandardTower:
                  value:
                    tower: standard
                    basis: per_location
                    rows:
                      - key: primary_5
                        label: Primary $5M
                        attach: 0
                        layer_limit: 5000000
                        count: 148
                        limits__total_limit_in_layer: 301200000
                        limits__total_limit_in_layer_pct: 62.44
                        filter:
                          limits__total_limit:
                            gt: 0
                        links:
                          summary: >-
                            https://api.sovfixer.com/api/v1/sov/s-e-c2qahx/summary?limits__total_limit[gt]=0&layer_attach=0&layer_limit=5000000
                          locations: >-
                            https://api.sovfixer.com/api/v1/sov/s-e-c2qahx/locations?limits__total_limit[gt]=0&layer_attach=0&layer_limit=5000000
                      - key: x5_5
                        label: $5M xs $5M
                        attach: 5000000
                        layer_limit: 5000000
                        count: 21
                        limits__total_limit_in_layer: 82400000
                        limits__total_limit_in_layer_pct: 17.08
                        filter:
                          limits__total_limit:
                            gt: 5000000
                        links:
                          summary: >-
                            https://api.sovfixer.com/api/v1/sov/s-e-c2qahx/summary?limits__total_limit[gt]=5000000&layer_attach=5000000&layer_limit=5000000
                          locations: >-
                            https://api.sovfixer.com/api/v1/sov/s-e-c2qahx/locations?limits__total_limit[gt]=5000000&layer_attach=5000000&layer_limit=5000000
                      - key: x15_10
                        label: $15M xs $10M
                        attach: 10000000
                        layer_limit: 15000000
                        count: 9
                        limits__total_limit_in_layer: 61750000
                        limits__total_limit_in_layer_pct: 12.8
                        filter:
                          limits__total_limit:
                            gt: 10000000
                        links:
                          summary: >-
                            https://api.sovfixer.com/api/v1/sov/s-e-c2qahx/summary?limits__total_limit[gt]=10000000&layer_attach=10000000&layer_limit=15000000
                          locations: >-
                            https://api.sovfixer.com/api/v1/sov/s-e-c2qahx/locations?limits__total_limit[gt]=10000000&layer_attach=10000000&layer_limit=15000000
                      - key: x25_25
                        label: $25M xs $25M
                        attach: 25000000
                        layer_limit: 25000000
                        count: 2
                        limits__total_limit_in_layer: 37000000
                        limits__total_limit_in_layer_pct: 7.67
                        filter:
                          limits__total_limit:
                            gt: 25000000
                        links:
                          summary: >-
                            https://api.sovfixer.com/api/v1/sov/s-e-c2qahx/summary?limits__total_limit[gt]=25000000&layer_attach=25000000&layer_limit=25000000
                          locations: >-
                            https://api.sovfixer.com/api/v1/sov/s-e-c2qahx/locations?limits__total_limit[gt]=25000000&layer_attach=25000000&layer_limit=25000000
                      - key: x50_50
                        label: $50M xs $50M
                        attach: 50000000
                        layer_limit: 50000000
                        count: 0
                        limits__total_limit_in_layer: 0
                        limits__total_limit_in_layer_pct: 0
                        filter:
                          limits__total_limit:
                            gt: 50000000
                        links:
                          summary: >-
                            https://api.sovfixer.com/api/v1/sov/s-e-c2qahx/summary?limits__total_limit[gt]=50000000&layer_attach=50000000&layer_limit=50000000
                          locations: >-
                            https://api.sovfixer.com/api/v1/sov/s-e-c2qahx/locations?limits__total_limit[gt]=50000000&layer_attach=50000000&layer_limit=50000000
                      - key: x100_100
                        label: $100M xs $100M
                        attach: 100000000
                        layer_limit: 100000000
                        count: 0
                        limits__total_limit_in_layer: 0
                        limits__total_limit_in_layer_pct: 0
                        filter:
                          limits__total_limit:
                            gt: 100000000
                        links:
                          summary: >-
                            https://api.sovfixer.com/api/v1/sov/s-e-c2qahx/summary?limits__total_limit[gt]=100000000&layer_attach=100000000&layer_limit=100000000
                          locations: >-
                            https://api.sovfixer.com/api/v1/sov/s-e-c2qahx/locations?limits__total_limit[gt]=100000000&layer_attach=100000000&layer_limit=100000000
                      - key: x200_plus
                        label: Excess $200M
                        attach: 200000000
                        layer_limit: null
                        count: 0
                        limits__total_limit_in_layer: 0
                        limits__total_limit_in_layer_pct: 0
                        filter:
                          limits__total_limit:
                            gt: 200000000
                        links:
                          summary: >-
                            https://api.sovfixer.com/api/v1/sov/s-e-c2qahx/summary?limits__total_limit[gt]=200000000&layer_attach=200000000
                          locations: >-
                            https://api.sovfixer.com/api/v1/sov/s-e-c2qahx/locations?limits__total_limit[gt]=200000000&layer_attach=200000000
                  summary: Standard tower
          description: Layer analysis for 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`.
    SOVLayerAnalysisResponse:
      type: object
      properties:
        basis:
          enum:
            - per_location
          type: string
          x-spec-enum-id: 959c6deefffb2365
          description: >-
            `per_location`: each layer applies to every location's
            `limits__total_limit` separately, not to the aggregate.


            * `per_location` - per_location
        rows:
          type: array
          items:
            $ref: '#/components/schemas/SOVLayerRow'
          description: One row per layer, in tower order.
        tower:
          enum:
            - standard
            - custom
          type: string
          x-spec-enum-id: cba79c7f6d4b1734
          description: >-
            `standard` for the preset tower, `custom` when `layers` was
            supplied.


            * `standard` - standard

            * `custom` - custom
      required:
        - basis
        - rows
        - tower
    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
    SOVLayerRow:
      type: object
      properties:
        attach:
          type: number
          description: Attachment point.
        count:
          type: integer
          description: Number of locations whose `limits__total_limit` exceeds `attach`.
        filter:
          allOf:
            - $ref: '#/components/schemas/SOVAnalyticsFilters'
          description: >-
            Filters selecting the locations that reach the layer, including the
            request's own, in the shape of the `filters` query parameter.
        key:
          type: string
          description: Stable layer identifier, unique within the tower.
        label:
          type: string
          description: Display label, e.g. `$5M xs $5M`.
        layer_limit:
          type: number
          nullable: true
          description: Layer limit. Null for a layer with no upper limit.
        limits__total_limit_in_layer:
          type: number
          description: Sum of each location's `limits__total_limit` within the layer.
        limits__total_limit_in_layer_pct:
          type: number
          description: >-
            `limits__total_limit_in_layer` as a percentage (0-100) of the total
            `limits__total_limit`.
        links:
          allOf:
            - $ref: '#/components/schemas/SOVAnalyticsLinks'
          description: >-
            Drilldown URLs for the layer's locations. They also set
            `layer_attach` and `layer_limit` to the layer.
      required:
        - attach
        - count
        - filter
        - key
        - label
        - layer_limit
        - limits__total_limit_in_layer
        - limits__total_limit_in_layer_pct
        - links
    SOVAnalyticsFilters:
      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`.
    SOVAnalyticsLinks:
      type: object
      properties:
        locations:
          type: string
          format: uri
          description: '`locations` URL listing this row''s locations.'
        summary:
          type: string
          format: uri
          description: '`summary` URL for this row''s locations.'
      required:
        - locations
        - summary
  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.