Skip to content
All data sources

Global Real Estate Markets API and MCP server

No authglobal-markets

Country and economy profiles, World Bank market context, and which ParcelOps land-record sources are available, for markets across the world.

Global Real Estate Markets is published by World Bank Countries and Indicators APIs and covers Worldwide.

It refreshes on a schedule the publisher sets.

Last verified . That is when these facts were last rebuilt from the ParcelOps source registry, not when World Bank Countries and Indicators APIs last refreshed the data itself.

API access

Your AI client reaches Global Real Estate Markets through one ParcelOps MCP endpoint, so there is no separate key to hold for it and no per-source client to write. Reaching it takes no credentials of your own.

Where it came from

Freshness and coverage

FreshnessScheduled · Individual World Bank indicators include their observation year.
Places coveredWorldwide
Time coveredNot declared
CredentialsNo credentials required

What this source cannot tell you

  • Anything outside Worldwide. A request past that edge comes back empty rather than approximated.
  • Which years it spans, because the covered period is not declared.
  • Anything World Bank Countries and Indicators APIs does not publish. ParcelOps returns this source as it stands and never fills a blank field from a different one.
  • National indicators provide market context, not a property appraisal or investment recommendation.

Methods (5)

A method is one call your agent can make against this source.

  • listMarkets

    read

    List World Bank countries and economies with codes, regions, income groups, and capital locations.

    Records returnedmarket
    How to get more resultsnone
    FreshnessScheduled (source-level)
    Input schema
    {
      "type": "object",
      "properties": {
        "region": {
          "type": "string"
        },
        "search": {
          "type": "string"
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 300
        }
      },
      "required": [],
      "additionalProperties": false
    }
    Output schema
    {
      "type": "object",
      "properties": {
        "kind": {
          "const": "parcelops.public-data"
        },
        "schemaVersion": {
          "const": "1.0"
        },
        "dataset": {
          "type": "object",
          "required": [
            "connector",
            "method",
            "name",
            "jurisdiction"
          ],
          "additionalProperties": true
        },
        "query": {
          "type": "object",
          "additionalProperties": true
        },
        "summary": {
          "type": "object",
          "properties": {
            "matchedRecords": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 0
            },
            "returnedRecords": {
              "type": "integer",
              "minimum": 0
            },
            "truncated": {
              "type": "boolean"
            }
          },
          "required": [
            "matchedRecords",
            "returnedRecords",
            "truncated"
          ],
          "additionalProperties": true
        },
        "records": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": true
          }
        },
        "pagination": {
          "type": [
            "object",
            "null"
          ],
          "additionalProperties": true
        },
        "source": {
          "type": "object",
          "required": [
            "name",
            "url",
            "retrievedAt"
          ],
          "additionalProperties": true
        },
        "export": {
          "type": "object",
          "required": [
            "tool",
            "connector",
            "method",
            "args",
            "recordPath",
            "formats",
            "columns",
            "suggestedFilename",
            "maximumRows"
          ],
          "additionalProperties": true
        },
        "privacy": {
          "type": "object",
          "required": [
            "classification",
            "excludedFields"
          ],
          "additionalProperties": true
        },
        "caveats": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "kind",
        "schemaVersion",
        "dataset",
        "query",
        "summary",
        "records",
        "pagination",
        "source",
        "export",
        "privacy",
        "caveats"
      ],
      "additionalProperties": true
    }
  • getMarketProfile

    read

    Get a market profile with recent World Bank indicators and a ParcelOps source-coverage count.

    What you must providecountryCode
    Records returnedmarket-profile
    How to get more resultsnone
    FreshnessScheduled (source-level)
    Input schema
    {
      "type": "object",
      "properties": {
        "countryCode": {
          "type": "string",
          "description": "ISO alpha-2/alpha-3 code or a supported World Bank economy code (for example XK or JG)."
        }
      },
      "required": [
        "countryCode"
      ],
      "additionalProperties": false
    }
    Output schema
    {
      "type": "object",
      "properties": {
        "kind": {
          "const": "parcelops.public-data"
        },
        "schemaVersion": {
          "const": "1.0"
        },
        "dataset": {
          "type": "object",
          "required": [
            "connector",
            "method",
            "name",
            "jurisdiction"
          ],
          "additionalProperties": true
        },
        "query": {
          "type": "object",
          "additionalProperties": true
        },
        "summary": {
          "type": "object",
          "properties": {
            "matchedRecords": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 0
            },
            "returnedRecords": {
              "type": "integer",
              "minimum": 0
            },
            "truncated": {
              "type": "boolean"
            }
          },
          "required": [
            "matchedRecords",
            "returnedRecords",
            "truncated"
          ],
          "additionalProperties": true
        },
        "records": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": true
          }
        },
        "pagination": {
          "type": [
            "object",
            "null"
          ],
          "additionalProperties": true
        },
        "source": {
          "type": "object",
          "required": [
            "name",
            "url",
            "retrievedAt"
          ],
          "additionalProperties": true
        },
        "export": {
          "type": "object",
          "required": [
            "tool",
            "connector",
            "method",
            "args",
            "recordPath",
            "formats",
            "columns",
            "suggestedFilename",
            "maximumRows"
          ],
          "additionalProperties": true
        },
        "privacy": {
          "type": "object",
          "required": [
            "classification",
            "excludedFields"
          ],
          "additionalProperties": true
        },
        "caveats": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "kind",
        "schemaVersion",
        "dataset",
        "query",
        "summary",
        "records",
        "pagination",
        "source",
        "export",
        "privacy",
        "caveats"
      ],
      "additionalProperties": true
    }

    Source coverage is counts by status and tier; listDataCoverage has the records.

  • compareMarkets

    read

    Compare two to ten country or territory market profiles.

    What you must providecountryCodes
    Records returnedmarket-profile
    How to get more resultsnone
    FreshnessScheduled (source-level)
    Input schema
    {
      "type": "object",
      "properties": {
        "countryCodes": {
          "type": "array",
          "minItems": 2,
          "maxItems": 10,
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "countryCodes"
      ],
      "additionalProperties": false
    }
    Output schema
    {
      "type": "object",
      "properties": {
        "kind": {
          "const": "parcelops.public-data"
        },
        "schemaVersion": {
          "const": "1.0"
        },
        "dataset": {
          "type": "object",
          "required": [
            "connector",
            "method",
            "name",
            "jurisdiction"
          ],
          "additionalProperties": true
        },
        "query": {
          "type": "object",
          "additionalProperties": true
        },
        "summary": {
          "type": "object",
          "properties": {
            "matchedRecords": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 0
            },
            "returnedRecords": {
              "type": "integer",
              "minimum": 0
            },
            "truncated": {
              "type": "boolean"
            }
          },
          "required": [
            "matchedRecords",
            "returnedRecords",
            "truncated"
          ],
          "additionalProperties": true
        },
        "records": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": true
          }
        },
        "pagination": {
          "type": [
            "object",
            "null"
          ],
          "additionalProperties": true
        },
        "source": {
          "type": "object",
          "required": [
            "name",
            "url",
            "retrievedAt"
          ],
          "additionalProperties": true
        },
        "export": {
          "type": "object",
          "required": [
            "tool",
            "connector",
            "method",
            "args",
            "recordPath",
            "formats",
            "columns",
            "suggestedFilename",
            "maximumRows"
          ],
          "additionalProperties": true
        },
        "privacy": {
          "type": "object",
          "required": [
            "classification",
            "excludedFields"
          ],
          "additionalProperties": true
        },
        "caveats": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "kind",
        "schemaVersion",
        "dataset",
        "query",
        "summary",
        "records",
        "pagination",
        "source",
        "export",
        "privacy",
        "caveats"
      ],
      "additionalProperties": true
    }

    Indicators plus a source-coverage count per market; listDataCoverage has them.

  • listDataCoverage

    read

    List live and catalogued property-data sources for a country or worldwide.

    Records returneddata-source
    How to get more resultsnone
    FreshnessScheduled (source-level)
    Input schema
    {
      "type": "object",
      "properties": {
        "countryCode": {
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": [
            "live",
            "catalogued"
          ]
        }
      },
      "required": [],
      "additionalProperties": false
    }
    Output schema
    {
      "type": "object",
      "properties": {
        "kind": {
          "const": "parcelops.public-data"
        },
        "schemaVersion": {
          "const": "1.0"
        },
        "dataset": {
          "type": "object",
          "required": [
            "connector",
            "method",
            "name",
            "jurisdiction"
          ],
          "additionalProperties": true
        },
        "query": {
          "type": "object",
          "additionalProperties": true
        },
        "summary": {
          "type": "object",
          "properties": {
            "matchedRecords": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 0
            },
            "returnedRecords": {
              "type": "integer",
              "minimum": 0
            },
            "truncated": {
              "type": "boolean"
            }
          },
          "required": [
            "matchedRecords",
            "returnedRecords",
            "truncated"
          ],
          "additionalProperties": true
        },
        "records": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": true
          }
        },
        "pagination": {
          "type": [
            "object",
            "null"
          ],
          "additionalProperties": true
        },
        "source": {
          "type": "object",
          "required": [
            "name",
            "url",
            "retrievedAt"
          ],
          "additionalProperties": true
        },
        "export": {
          "type": "object",
          "required": [
            "tool",
            "connector",
            "method",
            "args",
            "recordPath",
            "formats",
            "columns",
            "suggestedFilename",
            "maximumRows"
          ],
          "additionalProperties": true
        },
        "privacy": {
          "type": "object",
          "required": [
            "classification",
            "excludedFields"
          ],
          "additionalProperties": true
        },
        "caveats": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "kind",
        "schemaVersion",
        "dataset",
        "query",
        "summary",
        "records",
        "pagination",
        "source",
        "export",
        "privacy",
        "caveats"
      ],
      "additionalProperties": true
    }
  • getServiceInfo

    read

    Return data-source and coverage semantics.

    FreshnessScheduled (source-level)
    Input schema
    {
      "type": "object",
      "properties": {},
      "required": [],
      "additionalProperties": false
    }

Where this source is used