AI-Powered Property Search and Analysis

POST /v2/PropGPT

Use natural language queries to search for properties and get AI-powered insights and analysis. Leverages GPT models to understand complex search requirements and provide intelligent results.

Headers

  • x-api-key string Required

    API key for authentication

  • x-user-id string

    Optional user identifier for tracking and analytics

  • X-OpenAI-Key string

    OpenAI API key for GPT processing (optional if configured server-side)

application/json

Body Required

PropGPT natural language query

  • size integer(int32)

    Number of results to return (maximum of 250).

    Maximum value is 250.

  • query string Required

    Natural language query that references data points in the Property Search API in order to retrieve a list of properties.

    Minimum length is 3.

  • model string

    GPT model to use for processing

    Values are gpt-4, gpt-4o, gpt-4o-mini, gpt-4-turbo, or gpt-3.5-turbo.

Responses

  • 200 application/json

    Successful AI-powered search response

    Hide response attributes Show response attributes object
    • input object

      Echo of the input parameters

    • data array[object]

      Array of properties found matching the query

      Hide data attributes Show data attributes object
      • id string

        Property identifier

      • address object

        Property address

      • confidence number

        AI confidence score for this match

        Minimum value is 0, maximum value is 1.

    • gpt_response object

      GPT model analysis and explanation

      Hide gpt_response attributes Show gpt_response attributes object
      • analysis string

        AI analysis of the query and results

      • reasoning string

        Explanation of why these properties were selected

      • suggestions array[string]

        Suggestions for refining the search

    • totalResults integer

      Total number of matching properties

    • returnedResults integer

      Number of results returned

    • statusCode integer

      HTTP status code

    • live boolean

      Indicates if data is live

    • usage object

      Token usage information

      Hide usage attributes Show usage attributes object
      • prompt_tokens integer
      • completion_tokens integer
      • total_tokens integer
  • 400 application/json

    Bad Request - Invalid input parameters

    Hide response attributes Show response attributes object
    • error string
    • message string
    • statusCode integer
    • details object

      Additional error details

  • 401 application/json

    Unauthorized - Invalid or missing API key

    Hide response attributes Show response attributes object
    • error string
    • message string
    • statusCode integer
  • 500 application/json

    Internal Server Error

    Hide response attributes Show response attributes object
    • error string
    • message string
    • statusCode integer
POST /v2/PropGPT
curl \
 --request POST 'https://api.realestateapi.com/v2/PropGPT' \
 --header "Content-Type: application/json" \
 --header "x-api-key: string" \
 --header "x-user-id: string" \
 --header "X-OpenAI-Key: string" \
 --data '{"size":5,"model":"gpt-4o-mini","query":"Properties in Forsyth County Georgia"}'
{
  "size": 5,
  "model": "gpt-4o-mini",
  "query": "Properties in Forsyth County Georgia"
}
{
  "size": 10,
  "model": "gpt-4o",
  "query": "Find high equity single family homes in Atlanta with 3+ bedrooms under $400k"
}
{
  "size": 5,
  "model": "gpt-4o",
  "query": "What are the trends in the Buckhead neighborhood?"
}
Response examples (200)
{
  "input": {},
  "data": [
    {
      "id": "string",
      "address": {},
      "confidence": 42.0
    }
  ],
  "gpt_response": {
    "analysis": "string",
    "reasoning": "string",
    "suggestions": [
      "string"
    ]
  },
  "totalResults": 42,
  "returnedResults": 42,
  "statusCode": 42,
  "live": true,
  "usage": {
    "prompt_tokens": 42,
    "completion_tokens": 42,
    "total_tokens": 42
  }
}
Response examples (400)
{
  "error": "Bad Request",
  "message": "Invalid input parameters",
  "statusCode": 400,
  "details": {}
}
Response examples (401)
{
  "error": "Unauthorized",
  "message": "Invalid or missing API key",
  "statusCode": 401
}
Response examples (500)
{
  "error": "Internal Server Error",
  "message": "An unexpected error occurred",
  "statusCode": 500
}