Casa Intelligence Feasibility API

The feasibility API from Casa Intelligence — 5 operation(s) for feasibility.

Operations 5

GET /api/v1/feasibility/free Free Feasibility Check #
GET /api/v1/feasibility/free/neighbours Free Neighbour Parcels #
POST /api/v1/feasibility/free/combined Free Combined Check #
GET /api/v1/feasibility/free-tiles Free Capability Tiles #
POST /api/v1/feasibility/free/pdf Free Feasibility Snapshot Pdf #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/casaintelligence-com-au:casaintelligence-com-au-feasibility-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

casaintelligence-com-au-feasibility-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Casa Intelligence Engine Feasibility API
  description: Proprietary data ingestion, analysis, and prediction engine for Queensland property development intelligence.
  version: 2.0.0
tags:
- name: feasibility
paths:
  /api/v1/feasibility/free:
    get:
      tags:
      - feasibility
      summary: Free Feasibility Check
      description: 'Free feasibility check — public, rate-limited endpoint.


        Returns basic property intelligence: zone + deterministic zone facts,

        overlays scoped to the categories actually checked, nearby DA activity,

        development potential, and a Casa Score. No comparable DA deep-dive, no

        financial projections. Limited to 10 requests per hour per IP.


        lat/lon (optional) are the autocomplete suggestion''s geocoder coordinates —

        they let the lookup resolve strata addresses via the spatial fallback.'
      operationId: free_feasibility_check_api_v1_feasibility_free_get
      parameters:
      - name: address
        in: query
        required: true
        schema:
          type: string
          minLength: 3
          description: Property address to check
          title: Address
        description: Property address to check
      - name: lat
        in: query
        required: false
        schema:
          anyOf:
          - type: number
            maximum: 90
            minimum: -90
          - type: 'null'
          title: Lat
      - name: lon
        in: query
        required: false
        schema:
          anyOf:
          - type: number
            maximum: 180
            minimum: -180
          - type: 'null'
          title: Lon
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FreeFeasibilityResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/feasibility/free/neighbours:
    get:
      tags:
      - feasibility
      summary: Free Neighbour Parcels
      description: 'Selectable neighbouring parcels (with outlines) around the subject — the

        picking layer for the amalgamation map. Also returns the SUBJECT parcel so a

        client can draw the whole site from one cadastral source and total a true

        combined area. Public, IP-rate-limited (Rung 1).'
      operationId: free_neighbour_parcels_api_v1_feasibility_free_neighbours_get
      parameters:
      - name: property_id
        in: query
        required: true
        schema:
          type: string
          description: Subject parcel UUID
          title: Property Id
        description: Subject parcel UUID
      - name: radius_m
        in: query
        required: false
        schema:
          type: number
          maximum: 150.0
          minimum: 5.0
          default: 60.0
          title: Radius M
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NeighbourParcelsResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/feasibility/free/combined:
    post:
      tags:
      - feasibility
      summary: Free Combined Check
      description: 'Re-run the free check on the subject amalgamated with the selected

        neighbouring lots, assessed as one site. Public, IP-rate-limited (Rung 1).'
      operationId: free_combined_check_api_v1_feasibility_free_combined_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CombinedCheckRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FreeFeasibilityResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/feasibility/free-tiles:
    get:
      tags:
      - feasibility
      summary: Free Capability Tiles
      description: 'Standalone capability tiles — 1-5 deterministic scenario verdicts for a

        parcel ("Duplex likely allowed" + one metric-citing sentence each).


        Built for the Chrome extension''s lazy fetch after the widget''s first

        paint (the widget endpoint stays untouched — latency-critical). Cached

        per property via ci_public_check_cache; 100% deterministic, no AI.'
      operationId: free_capability_tiles_api_v1_feasibility_free_tiles_get
      parameters:
      - name: property_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Casa property UUID
          title: Property Id
        description: Casa property UUID
      - name: address
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            minLength: 3
          - type: 'null'
          title: Address
      - name: lat
        in: query
        required: false
        schema:
          anyOf:
          - type: number
            maximum: 90
            minimum: -90
          - type: 'null'
          title: Lat
      - name: lon
        in: query
        required: false
        schema:
          anyOf:
          - type: number
            maximum: 180
            minimum: -180
          - type: 'null'
          title: Lon
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FreeTilesResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/feasibility/free/pdf:
    post:
      tags:
      - feasibility
      summary: Free Feasibility Snapshot Pdf
      description: 'Branded one-page PDF snapshot of a free block check.


        The snapshot is ALWAYS regenerated server-side via `_run_free_check` —

        the same deterministic path /free itself uses. The `payload` field is

        still accepted for client compatibility, but it is used ONLY as the

        source of the address (plus the geocoder lat/lon that resolved it, so

        strata/alias addresses that resolved in the UI resolve here too). None

        of its claim content — score, overlays, zone, summary — ever reaches the

        renderer: rendering client-authored claims produced a Casa-branded,

        Casa-hosted PDF asserting whatever the client invented (audit F11,

        free-checker-2026-08-30 — forgery/phishing vector).


        Renders via WeasyPrint, uploads to Supabase Storage, and returns a

        signed download URL. No AI calls.'
      operationId: free_feasibility_snapshot_pdf_api_v1_feasibility_free_pdf_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FreeSnapshotPdfRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FreeSnapshotPdfResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    FeasibilityOverlay:
      properties:
        category:
          type: string
          title: Category
        severity:
          type: string
          title: Severity
        name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
      type: object
      required:
      - category
      - severity
      title: FeasibilityOverlay
    NearbyDA:
      properties:
        application_number:
          anyOf:
          - type: string
          - type: 'null'
          title: Application Number
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
        decision:
          anyOf:
          - type: string
          - type: 'null'
          title: Decision
        year:
          anyOf:
          - type: integer
          - type: 'null'
          title: Year
        distance_m:
          anyOf:
          - type: integer
          - type: 'null'
          title: Distance M
        lat:
          anyOf:
          - type: number
          - type: 'null'
          title: Lat
        lon:
          anyOf:
          - type: number
          - type: 'null'
          title: Lon
      type: object
      title: NearbyDA
      description: A single nearby development application (teaser detail).
    FreeSnapshotPdfResponse:
      properties:
        pdf_url:
          type: string
          title: Pdf Url
      type: object
      required:
      - pdf_url
      title: FreeSnapshotPdfResponse
    NeighbourParcel:
      properties:
        property_id:
          type: string
          title: Property Id
        address:
          anyOf:
          - type: string
          - type: 'null'
          title: Address
        lot_plan:
          anyOf:
          - type: string
          - type: 'null'
          title: Lot Plan
        zone_code:
          anyOf:
          - type: string
          - type: 'null'
          title: Zone Code
        area_m2:
          anyOf:
          - type: number
          - type: 'null'
          title: Area M2
        distance_m:
          anyOf:
          - type: number
          - type: 'null'
          title: Distance M
        boundary_geojson:
          anyOf:
          - type: string
          - type: 'null'
          title: Boundary Geojson
      type: object
      required:
      - property_id
      title: NeighbourParcel
      description: One selectable neighbouring parcel for the amalgamation map.
    FreeSnapshotPdfRequest:
      properties:
        address:
          anyOf:
          - type: string
            minLength: 3
          - type: 'null'
          title: Address
        payload:
          anyOf:
          - $ref: '#/components/schemas/FreeFeasibilityResponse'
          - type: 'null'
      type: object
      title: FreeSnapshotPdfRequest
      description: 'Request for the one-page free snapshot PDF.


        Provide either a previously returned free-check payload (preferred —

        avoids re-running the lookup) or an address to re-run the check.'
    CapabilityTile:
      properties:
        key:
          type: string
          title: Key
        title:
          type: string
          title: Title
        verdict:
          type: string
          title: Verdict
        reason:
          type: string
          title: Reason
        pathway:
          anyOf:
          - type: string
          - type: 'null'
          title: Pathway
        pathway_label:
          anyOf:
          - type: string
          - type: 'null'
          title: Pathway Label
        metric_facts:
          additionalProperties: true
          type: object
          title: Metric Facts
          default: {}
        grounding:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Grounding
      type: object
      required:
      - key
      - title
      - verdict
      - reason
      title: CapabilityTile
      description: 'One deterministic scenario tile: a verdict-tier title plus ONE sentence

        of reasoning citing the real metrics behind the call. No AI anywhere.'
    NearbyActivity:
      properties:
        radius_m:
          type: integer
          title: Radius M
          default: 750
        years:
          type: integer
          title: Years
          default: 5
        total_count:
          type: integer
          title: Total Count
          default: 0
        approved_count:
          type: integer
          title: Approved Count
          default: 0
        median_days_to_decision:
          anyOf:
          - type: integer
          - type: 'null'
          title: Median Days To Decision
        nearest:
          items:
            $ref: '#/components/schemas/NearbyDA'
          type: array
          title: Nearest
          default: []
        intel_nuggets:
          items:
            type: string
          type: array
          title: Intel Nuggets
          default: []
      type: object
      title: NearbyActivity
      description: DA activity within radius_m of the property over the last `years` years.
    CombinedCheckRequest:
      properties:
        subject_property_id:
          type: string
          title: Subject Property Id
        neighbour_property_ids:
          items:
            type: string
          type: array
          maxItems: 12
          title: Neighbour Property Ids
      type: object
      required:
      - subject_property_id
      title: CombinedCheckRequest
      description: Assess the subject parcel amalgamated with the selected neighbour lots.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    NeighbourParcelsResponse:
      properties:
        subject_property_id:
          type: string
          title: Subject Property Id
        subject:
          anyOf:
          - $ref: '#/components/schemas/NeighbourParcel'
          - type: 'null'
        parcels:
          items:
            $ref: '#/components/schemas/NeighbourParcel'
          type: array
          title: Parcels
          default: []
      type: object
      required:
      - subject_property_id
      title: NeighbourParcelsResponse
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ZoneFacts:
      properties:
        min_lot_area_m2:
          anyOf:
          - type: number
          - type: 'null'
          title: Min Lot Area M2
        min_frontage_m:
          anyOf:
          - type: number
          - type: 'null'
          title: Min Frontage M
        max_site_cover_pct:
          anyOf:
          - type: number
          - type: 'null'
          title: Max Site Cover Pct
        max_height_m:
          anyOf:
          - type: number
          - type: 'null'
          title: Max Height M
        max_storeys:
          anyOf:
          - type: integer
          - type: 'null'
          title: Max Storeys
        height_source:
          anyOf:
          - type: string
          - type: 'null'
          title: Height Source
        zone_max_height_m:
          anyOf:
          - type: number
          - type: 'null'
          title: Zone Max Height M
        zone_max_storeys:
          anyOf:
          - type: integer
          - type: 'null'
          title: Zone Max Storeys
        height_overlay_label:
          anyOf:
          - type: string
          - type: 'null'
          title: Height Overlay Label
        dual_occ_permitted:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Dual Occ Permitted
        dual_occ_assessment:
          anyOf:
          - type: string
          - type: 'null'
          title: Dual Occ Assessment
        multi_unit_permitted:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Multi Unit Permitted
        multi_unit_assessment:
          anyOf:
          - type: string
          - type: 'null'
          title: Multi Unit Assessment
        secondary_dwelling:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Secondary Dwelling
        allows_subdivision:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Allows Subdivision
        scheme_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Scheme Name
        scheme_version:
          anyOf:
          - type: string
          - type: 'null'
          title: Scheme Version
        irregular_lot:
          type: boolean
          title: Irregular Lot
          default: false
        lot_shape_note:
          anyOf:
          - type: string
          - type: 'null'
          title: Lot Shape Note
      type: object
      title: ZoneFacts
      description: 'Deterministic zone facts pulled straight from ci_planning_rules.

        Every field is optional — only facts actually recorded in the DB are

        populated. No guessing, no AI.'
    CapabilityTiles:
      properties:
        tiles:
          items:
            $ref: '#/components/schemas/CapabilityTile'
          type: array
          title: Tiles
          default: []
        disclaimer:
          type: string
          title: Disclaimer
        degraded:
          anyOf:
          - type: string
          - type: 'null'
          title: Degraded
        scheme_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Scheme Name
        scheme_version:
          anyOf:
          - type: string
          - type: 'null'
          title: Scheme Version
      type: object
      required:
      - disclaimer
      title: CapabilityTiles
      description: 'The free checker''s 1-5 capability tiles + the single disclaimer.


        `degraded` is the honest no-call message when zoning is unmapped, the

        zone''s rules aren''t held, or the record is a strata unit — the tile list

        is then empty rather than guessed.'
    AmalgamationInfo:
      properties:
        lot_count:
          type: integer
          title: Lot Count
        combined_area_m2:
          type: number
          title: Combined Area M2
        property_ids:
          items:
            type: string
          type: array
          title: Property Ids
          default: []
        addresses:
          items:
            type: string
          type: array
          title: Addresses
          default: []
        same_zone:
          type: boolean
          title: Same Zone
          default: true
        note:
          type: string
          title: Note
      type: object
      required:
      - lot_count
      - combined_area_m2
      - note
      title: AmalgamationInfo
      description: 'Present on a combined (multi-lot) check — the site is an amalgamation of

        the subject plus the selected neighbouring lots, assessed as one site.'
    FreeTilesResponse:
      properties:
        property_id:
          type: string
          title: Property Id
        address:
          anyOf:
          - type: string
          - type: 'null'
          title: Address
        tiles:
          items:
            $ref: '#/components/schemas/CapabilityTile'
          type: array
          title: Tiles
          default: []
        disclaimer:
          type: string
          title: Disclaimer
        degraded:
          anyOf:
          - type: string
          - type: 'null'
          title: Degraded
        scheme_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Scheme Name
        scheme_version:
          anyOf:
          - type: string
          - type: 'null'
          title: Scheme Version
        cached:
          type: boolean
          title: Cached
          default: false
      type: object
      required:
      - property_id
      - disclaimer
      title: FreeTilesResponse
      description: Standalone capability-tiles payload (extension sidepanel lazy fetch).
    FreeFeasibilityResponse:
      properties:
        address:
          type: string
          title: Address
        display_label:
          anyOf:
          - type: string
          - type: 'null'
          title: Display Label
        property_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Property Id
        cadastral_address:
          anyOf:
          - type: string
          - type: 'null'
          title: Cadastral Address
        suburb:
          anyOf:
          - type: string
          - type: 'null'
          title: Suburb
        lga:
          type: string
          title: Lga
        zone_code:
          anyOf:
          - type: string
          - type: 'null'
          title: Zone Code
        zone_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Zone Name
        overlays:
          items:
            $ref: '#/components/schemas/FeasibilityOverlay'
          type: array
          title: Overlays
          default: []
        overlay_count:
          type: integer
          title: Overlay Count
          default: 0
        overlays_checked:
          items:
            type: string
          type: array
          title: Overlays Checked
          default: []
        area_m2:
          anyOf:
          - type: number
          - type: 'null'
          title: Area M2
        development_potential:
          type: string
          title: Development Potential
          description: yes, no, maybe, or unknown (we could not assess)
        casa_score:
          anyOf:
          - type: integer
            maximum: 100.0
            minimum: 0.0
          - type: 'null'
          title: Casa Score
        summary:
          type: string
          title: Summary
        report_url:
          type: string
          title: Report Url
        zone_facts:
          anyOf:
          - $ref: '#/components/schemas/ZoneFacts'
          - type: 'null'
        nearby_activity:
          anyOf:
          - $ref: '#/components/schemas/NearbyActivity'
          - type: 'null'
        lat:
          anyOf:
          - type: number
          - type: 'null'
          title: Lat
        lon:
          anyOf:
          - type: number
          - type: 'null'
          title: Lon
        boundary_geojson:
          anyOf:
          - type: string
          - type: 'null'
          title: Boundary Geojson
        boundary_status:
          anyOf:
          - type: string
          - type: 'null'
          title: Boundary Status
        boundary_note:
          anyOf:
          - type: string
          - type: 'null'
          title: Boundary Note
        score_percentile:
          anyOf:
          - type: integer
          - type: 'null'
          title: Score Percentile
        capability_tiles:
          anyOf:
          - $ref: '#/components/schemas/CapabilityTiles'
          - type: 'null'
        data_status:
          type: string
          title: Data Status
          default: complete
        degraded_components:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Degraded Components
        degraded_reason:
          anyOf:
          - type: string
          - type: 'null'
          title: Degraded Reason
        amalgamation:
          anyOf:
          - $ref: '#/components/schemas/AmalgamationInfo'
          - type: 'null'
        overlays_definitive:
          type: boolean
          title: Overlays Definitive
          default: false
        overlay_probe:
          anyOf:
          - type: string
          - type: 'null'
          title: Overlay Probe
      type: object
      required:
      - address
      - lga
      - development_potential
      - summary
      - report_url
      title: FreeFeasibilityResponse
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer
    APIKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key