Casafari API and MCP Platform Market Analytics API Analysis API

The market-analytics-api---analysis API from Casafari API and MCP Platform — 1 operation(s) for market-analytics-api---analysis.

Business capability
Property Data AE-230.60

Operations 1

POST /market-analytics-api/analysis Analysis #

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/casafari:casafari-market-analytics-api-analysis-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

casafari-market-analytics-api-analysis-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Casafari Market Analytics API Analysis API
  description: 'The Casafari API provides clients with methods for manipulating alerts feeds, accounts, and consulting a reference

    of available locations, features and conditions.


    # Authentication methods


    -->'
  version: 0.1.0
servers:
- url: https://api.casafari.com
tags:
- name: market-analytics-api---analysis
  x-displayName: Analysis
paths:
  /market-analytics-api/analysis:
    post:
      tags:
      - market-analytics-api---analysis
      summary: Analysis
      description: Market analysis based on the requested property parameters.
      operationId: market-analytics-api__post__analysis
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MarketAnalyticsApiAnalysisRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MarketAnalyticsApiAnalysisResponse'
                title: Response Analysis Analysis Post
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MarketAnalyticsApiErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MarketAnalyticsApiErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MarketAnalyticsApiHTTPValidationError'
      security:
      - HTTPBearer: []
      - OAuth2ClientCredentials: []
components:
  schemas:
    MarketAnalyticsApiPriceEvolution:
      properties:
        avg_price:
          $ref: '#/components/schemas/MarketAnalyticsApiStatisticsByMonths'
        avg_price_per_sqm:
          $ref: '#/components/schemas/MarketAnalyticsApiStatisticsByMonths'
      type: object
      required:
      - avg_price
      - avg_price_per_sqm
      title: PriceEvolution
    MarketAnalyticsApiErrorResponse:
      properties:
        message:
          type: string
          title: Message
        errors:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Errors
        details:
          anyOf:
          - type: string
          - type: 'null'
          title: Details
      type: object
      required:
      - message
      title: ErrorResponse
      description: Represent error response schema.
    MarketAnalyticsApiAnalysisRequest:
      properties:
        custom_location_boundary:
          $ref: '#/components/schemas/MarketAnalyticsApiLocationBoundarySchema'
        business_type:
          $ref: '#/components/schemas/MarketAnalyticsApiBusinessTypeEnum'
          description: Operation type for which the property is available.
        types:
          items:
            $ref: '#/components/schemas/MarketAnalyticsApiExternalEstateTypeEnum'
          type: array
          minItems: 1
          title: Types
          description: 'The list of property types by type groups:<br/><strong>apartment: </strong>["apartment", "studio", "duplex", "penthouse", "dachgeschosswohnung", "etagenwohnung", "erdgeschosswohnung"]<br/><strong>house: </strong>["country_house", "house", "palace", "townhouse", "villa", "country_estate", "chalet", "bungalow", "family_house", "reihenhaus", "reihenendhaus", "reihenmittelhaus", "einfamilienhaus", "zweifamilienhaus", "landwirtschaftliche_betriebe"]<br/><strong>room: </strong>["room"]<br/><strong>building: </strong>["apartment_building", "office_building", "mix_use_building"]<br/><strong>investment: </strong>["retail", "office", "industrial", "warehouse", "hotel", "building", "other_commercial", "restaurant", "werkstatt"]<br/><strong>development: </strong>["apartment_development", "house_development"]<br/><strong>plot: </strong>["urban_plot", "rural_plot"]<br/><strong>other: </strong>["parking", "garage", "other"]<br/><br/><i>Note that you can select multiple types only from one property type group.</i><br><br><span style="color:red">The list of property types specific to certain countries</span>:<br/><strong>apartment:</strong><br/>&#9675; dachgeschosswohnung: <strong>Germany</strong><br/>&#9675; etagenwohnung: <strong>Germany</strong><br/>&#9675; erdgeschosswohnung: <strong>Germany</strong><br/><strong>house:</strong><br/>&#9675; family_house: <strong>Germany</strong><br/>&#9675; reihenhaus: <strong>Germany</strong><br/>&#9675; reihenendhaus: <strong>Germany</strong><br/>&#9675; reihenmittelhaus: <strong>Germany</strong><br/>&#9675; einfamilienhaus: <strong>Germany</strong><br/>&#9675; zweifamilienhaus: <strong>Germany</strong><br/>&#9675; landwirtschaftliche_betriebe: <strong>Germany</strong><br/><strong>investment:</strong><br/>&#9675; restaurant: <strong>Germany</strong><br/>&#9675; werkstatt: <strong>Germany</strong><br/><strong>plot:</strong><br/>&#9675; urban_plot: <strong>Italy, Germany, Portugal, Spain, France</strong><br/>&#9675; rural_plot: <strong>Italy, Germany, Portugal, Spain, France</strong>'
        conditions:
          anyOf:
          - items:
              $ref: '#/components/schemas/MarketAnalyticsApiExternalConditionEnum'
            type: array
            minItems: 1
          - type: 'null'
          title: Conditions
          description: Property conditions, as returned by the [GET /api/v1/references/conditions](/#operation/api__get__v1__references__conditions) endpoint.
        energy_ratings:
          anyOf:
          - items:
              $ref: '#/components/schemas/MarketAnalyticsApiExternalEnergyRatingEnum'
            type: array
            minItems: 1
          - type: 'null'
          title: Energy Ratings
          description: List of energy ratings that attests to the energy efficiency of the property.
        orientations:
          anyOf:
          - items:
              $ref: '#/components/schemas/MarketAnalyticsApiExternalOrientationEnum'
            type: array
            minItems: 1
          - type: 'null'
          title: Orientations
          description: Property view orientation.
        views:
          anyOf:
          - items:
              $ref: '#/components/schemas/MarketAnalyticsApiExternalViewEnum'
            type: array
            minItems: 1
          - type: 'null'
          title: Views
          description: List of views from the property.
        directions:
          anyOf:
          - items:
              $ref: '#/components/schemas/MarketAnalyticsApiExternalDirectionEnum'
            type: array
            minItems: 1
          - type: 'null'
          title: Directions
          description: List of cardinal directions the property faces.
        floors:
          anyOf:
          - items:
              $ref: '#/components/schemas/MarketAnalyticsApiExternalFloorEnum'
            type: array
            minItems: 1
          - type: 'null'
          title: Floors
          description: List of floor types.
        price_range:
          anyOf:
          - $ref: '#/components/schemas/MarketAnalyticsApiapi__schema__ranges__IntRangeSchema__1'
          - type: 'null'
        rooms_range:
          anyOf:
          - $ref: '#/components/schemas/MarketAnalyticsApiapi__schema__ranges__IntRangeSchema__2'
          - type: 'null'
        bedrooms_range:
          anyOf:
          - $ref: '#/components/schemas/MarketAnalyticsApiapi__schema__ranges__IntRangeSchema__3'
          - type: 'null'
        bathrooms_range:
          anyOf:
          - $ref: '#/components/schemas/MarketAnalyticsApiapi__schema__ranges__IntRangeSchema__4'
          - type: 'null'
        total_area_range:
          anyOf:
          - $ref: '#/components/schemas/MarketAnalyticsApiapi__schema__ranges__IntRangeSchema__5'
          - type: 'null'
        plot_area_range:
          anyOf:
          - $ref: '#/components/schemas/MarketAnalyticsApiapi__schema__ranges__IntRangeSchema__6'
          - type: 'null'
        construction_year_range:
          anyOf:
          - $ref: '#/components/schemas/MarketAnalyticsApiapi__schema__ranges__IntRangeSchema__7'
          - type: 'null'
        characteristics:
          anyOf:
          - $ref: '#/components/schemas/MarketAnalyticsApiCharacteristicsRequestSchema'
          - type: 'null'
      type: object
      required:
      - custom_location_boundary
      - business_type
      - types
      title: AnalysisRequest
    MarketAnalyticsApiPriceStatistics:
      properties:
        average_price:
          type: integer
          title: Average Price
        average_price_per_sqm:
          type: integer
          title: Average Price Per Sqm
      type: object
      required:
      - average_price
      - average_price_per_sqm
      title: PriceStatistics
    MarketAnalyticsApiGeoPoint:
      properties:
        latitude:
          type: number
          maximum: 90.0
          minimum: -90.0
          title: Latitude
        longitude:
          type: number
          maximum: 180.0
          minimum: -180.0
          title: Longitude
      type: object
      required:
      - latitude
      - longitude
      title: GeoPoint
    MarketAnalyticsApiapi__schema__ranges__IntRangeSchema__7:
      properties:
        min:
          anyOf:
          - type: integer
            maximum: 3000.0
            minimum: 1.0
          - type: 'null'
          title: Min
        max:
          anyOf:
          - type: integer
            maximum: 3000.0
            minimum: 1.0
          - type: 'null'
          title: Max
      type: object
      title: IntRangeSchema
    MarketAnalyticsApiPriceEstimation:
      properties:
        fast_market_price:
          type: integer
          title: Fast Market Price
        out_of_market_price:
          type: integer
          title: Out Of Market Price
      type: object
      required:
      - fast_market_price
      - out_of_market_price
      title: PriceEstimation
    MarketAnalyticsApiBusinessTypeEnum:
      type: string
      enum:
      - sale
      - rent
      title: BusinessTypeEnum
    MarketAnalyticsApiapi__schema__ranges__IntRangeSchema__2:
      properties:
        min:
          anyOf:
          - type: integer
            maximum: 15000.0
            minimum: 1.0
          - type: 'null'
          title: Min
        max:
          anyOf:
          - type: integer
            maximum: 15000.0
            minimum: 1.0
          - type: 'null'
          title: Max
      type: object
      title: IntRangeSchema
    MarketAnalyticsApiapi__schema__ranges__IntRangeSchema__3:
      properties:
        min:
          anyOf:
          - type: integer
            maximum: 15000.0
            minimum: 0.0
          - type: 'null'
          title: Min
        max:
          anyOf:
          - type: integer
            maximum: 15000.0
            minimum: 0.0
          - type: 'null'
          title: Max
      type: object
      title: IntRangeSchema
    MarketAnalyticsApiCharacteristicsRequestSchema:
      properties:
        must_have:
          items:
            $ref: '#/components/schemas/MarketAnalyticsApiExternalCharacteristicEnum'
          type: array
          title: Must Have
          description: Include only properties that have all these characteristics.
        exclude:
          items:
            $ref: '#/components/schemas/MarketAnalyticsApiExternalCharacteristicEnum'
          type: array
          title: Exclude
          description: Exclude properties that contain any of these characteristics.
      type: object
      title: CharacteristicsRequestSchema
    MarketAnalyticsApiExternalFloorEnum:
      type: string
      enum:
      - no_floor
      - ground
      - middle
      - top
      title: ExternalFloorEnum
    MarketAnalyticsApiExternalCharacteristicEnum:
      type: string
      enum:
      - balcony
      - elevator
      - no_elevator
      - garage
      - garden
      - parking
      - storage
      - swimming_pool
      - terrace
      - rental_license
      - furniture
      - rented_out
      - life_annuity
      title: ExternalCharacteristicEnum
    MarketAnalyticsApiValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    MarketAnalyticsApiapi__schema__ranges__IntRangeSchema__1:
      properties:
        min:
          anyOf:
          - type: integer
            maximum: 2147483647.0
            minimum: 1.0
          - type: 'null'
          title: Min
        max:
          anyOf:
          - type: integer
            maximum: 2147483647.0
            minimum: 1.0
          - type: 'null'
          title: Max
      type: object
      title: IntRangeSchema
    MarketAnalyticsApiAnalysisResponse:
      properties:
        price_statistics:
          $ref: '#/components/schemas/MarketAnalyticsApiPriceStatistics'
          description: Statistics including the average price and average price per square meter for properties matching the requested filters.
        price_estimation:
          $ref: '#/components/schemas/MarketAnalyticsApiPriceEstimation'
          description: Provides estimated prices, including a quick sale price `fast_market_price` and an inflated price `out_of_market_price`.
        price_evolution:
          $ref: '#/components/schemas/MarketAnalyticsApiPriceEvolution'
          description: Represents time series data showing how average prices and prices per square meter have changed over time for inactive properties.
        summary_price_evolution:
          $ref: '#/components/schemas/MarketAnalyticsApiPriceEvolution'
          description: Represents time series data showing how average prices and prices per square meter have changed over time for both active and inactive properties.
        average_days_on_the_market:
          type: integer
          title: Average Days On The Market
          description: Indicates the average number of days properties remain listed on the market before being sold or removed.
      type: object
      required:
      - price_statistics
      - price_estimation
      - price_evolution
      - summary_price_evolution
      - average_days_on_the_market
      title: AnalysisResponse
    MarketAnalyticsApiapi__schema__ranges__IntRangeSchema__4:
      properties:
        min:
          anyOf:
          - type: integer
            maximum: 15000.0
            minimum: 1.0
          - type: 'null'
          title: Min
        max:
          anyOf:
          - type: integer
            maximum: 15000.0
            minimum: 1.0
          - type: 'null'
          title: Max
      type: object
      title: IntRangeSchema
    MarketAnalyticsApiHTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/MarketAnalyticsApiValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    MarketAnalyticsApiCircleBoundarySchema:
      properties:
        distance:
          type: integer
          maximum: 50000.0
          minimum: 50.0
          title: Distance
          description: Maximum distance in meters from the requested `target_point` to the properties.
        target_point:
          $ref: '#/components/schemas/MarketAnalyticsApiGeoPoint'
          description: Target point coordinates to search around.
      type: object
      required:
      - distance
      - target_point
      title: CircleBoundarySchema
    MarketAnalyticsApiExternalViewEnum:
      type: string
      enum:
      - water
      - landscape
      - city
      - golf
      - park
      title: ExternalViewEnum
    MarketAnalyticsApiExternalDirectionEnum:
      type: string
      enum:
      - north
      - south
      - east
      - west
      title: ExternalDirectionEnum
    MarketAnalyticsApiapi__schema__ranges__IntRangeSchema__5:
      properties:
        min:
          anyOf:
          - type: integer
            maximum: 1000000.0
            minimum: 1.0
          - type: 'null'
          title: Min
        max:
          anyOf:
          - type: integer
            maximum: 1000000.0
            minimum: 1.0
          - type: 'null'
          title: Max
      type: object
      title: IntRangeSchema
    MarketAnalyticsApiExternalConditionEnum:
      type: string
      enum:
      - used
      - ruin
      - very-good
      - new
      - other
      title: ExternalConditionEnum
    MarketAnalyticsApiapi__schema__ranges__IntRangeSchema__6:
      properties:
        min:
          anyOf:
          - type: integer
            maximum: 1000000.0
            minimum: 1.0
          - type: 'null'
          title: Min
        max:
          anyOf:
          - type: integer
            maximum: 1000000.0
            minimum: 1.0
          - type: 'null'
          title: Max
      type: object
      title: IntRangeSchema
    MarketAnalyticsApiExternalOrientationEnum:
      type: string
      enum:
      - exterior
      - interior
      title: ExternalOrientationEnum
    MarketAnalyticsApiExternalEnergyRatingEnum:
      type: string
      enum:
      - Unknown
      - A+
      - A
      - B
      - C
      - D
      - E
      - F
      - G
      - H
      title: ExternalEnergyRatingEnum
    MarketAnalyticsApiExternalEstateTypeEnum:
      type: string
      enum:
      - apartment
      - studio
      - duplex
      - penthouse
      - dachgeschosswohnung
      - etagenwohnung
      - erdgeschosswohnung
      - country_house
      - house
      - palace
      - townhouse
      - villa
      - country_estate
      - chalet
      - bungalow
      - family_house
      - reihenhaus
      - reihenendhaus
      - reihenmittelhaus
      - einfamilienhaus
      - zweifamilienhaus
      - landwirtschaftliche_betriebe
      - retail
      - office
      - industrial
      - warehouse
      - hotel
      - building
      - other_commercial
      - restaurant
      - werkstatt
      - urban_plot
      - rural_plot
      - room
      - parking
      - garage
      - other
      - apartment_building
      - office_building
      - mix_use_building
      - apartment_development
      - house_development
      title: ExternalEstateTypeEnum
    MarketAnalyticsApiLocationBoundarySchema:
      properties:
        location_ids:
          items:
            type: integer
            maximum: 2147483647.0
            minimum: 1.0
          type: array
          maxItems: 10
          minItems: 1
          title: Location Ids
          description: List of location IDs.
        polygon:
          items:
            $ref: '#/components/schemas/MarketAnalyticsApiGeoPoint'
          type: array
          minItems: 4
          title: Polygon
          description: List of geo-points to search within. Polygon must contain at least 4 points. First and last points must match.
        circle:
          $ref: '#/components/schemas/MarketAnalyticsApiCircleBoundarySchema'
          description: Circle boundary to search within.
      type: object
      title: LocationBoundarySchema
    MarketAnalyticsApiStatisticsByMonths:
      properties:
        for_the_last_1_month:
          type: integer
          title: For The Last 1 Month
        for_the_last_3_month:
          type: integer
          title: For The Last 3 Month
        for_the_last_6_month:
          type: integer
          title: For The Last 6 Month
        for_the_last_9_month:
          type: integer
          title: For The Last 9 Month
        for_the_last_12_month:
          type: integer
          title: For The Last 12 Month
      type: object
      required:
      - for_the_last_1_month
      - for_the_last_3_month
      - for_the_last_6_month
      - for_the_last_9_month
      - for_the_last_12_month
      title: StatisticsByMonths
  securitySchemes:
    HTTPBearer:
      type: http
      description: '

        Sign in with your account: `POST /login` with your email and password returns an `access_token` and a

        `refresh_token`. Send the access token as `Authorization: Bearer <access_token>`. When it expires, call

        `GET /refresh-token` with `Authorization: Bearer <refresh_token>` for a new access token.

        '
      scheme: bearer
      bearerFormat: JWT
    OAuth2ClientCredentials:
      type: oauth2
      description: "**Recommended.** Create a client in Settings → API Clients and save its ID and secret. The secret is displayed only once, and the client can be used only in the environment where it was created.\n\nExchange the client ID and secret for an access token using HTTP Basic authentication:\n\n```bash\ncurl -X POST 'https://api.casafari.com/oauth/token' \\\n  -u 'CLIENT_ID:CLIENT_SECRET' \\\n  -d 'grant_type=client_credentials' \\\n  -d 'scope=api'\n```\n\nThe access token is valid for 30 minutes. No refresh token is issued, so you must request a new access token when the current one expires.\n\nInclude the access token in API requests using the following header:\n\n```\nAuthorization: Bearer <token>\n```"
      flows:
        clientCredentials:
          scopes:
            api: Access to the CASAFARI REST API.
          tokenUrl: https://api.casafari.com/oauth/token
x-tagGroups:
- name: User Management
  tags:
  - user-management---authentication
- name: API
  tags:
  - api---valuation
  - api---alerts
  - api---comparables
  - api---references
  - api---properties
- name: Market Analytics API
  tags:
  - market-analytics-api---time series
  - market-analytics-api---distributions
  - market-analytics-api---analysis
- name: Alerts API
  tags:
  - alerts-api---webhooks
  - alerts-api---feeds