Rate Limiting

Usage windows defined Midnight to Midnight UTC


Property Search & Detail Daily Rate Limits

  • Rate Limits will likely only come up for Enterprise Property Data Plans or Enterprise Skip Plans, as the rest of the plans don't support enough credits to hit the daily limits
EndpointWindow IntervalMax Requests
Property APIs24hrs1,000,000 property records / day
SkipTrace APIs24hrs1,000,000 matches / day

*doesn't include "count" or "ids_only" calls

For example, one Property Search API request can bring back up to 250 property record addresses per request. To get to 1,000,000 credits this would take 4,000 requests at the max size. At a "size" of 10 (typical for end user interactive sites), it would be 100,000 requests.

{
  statusCode: 429,
  error: "Too Many Requests",
  message: "Daily usage limit exceeded for [PropertySearch, SkipTrace] scopes"
}

SkipTrace APIs Per-Second Rate Limits

EndpointWindow IntervalMax Requests
/SkipTrace1 second10
/SkipTraceBatch1 second20 (up to 1000 skips per request)

Address Verification API Per-Second Rate Limits

Address Verification can be used to validate huge lists of addresses, but you'll need to batch your requests to RealEstateAPI to avoid getting 429 Too Many Requests errors.

Every Address Verification API call can contain up to 100 addresses per call.

By x-api-key: 10 requests / second (up to 1,000 addresses / second )

By x-user-id: 3 requests / second (up to 300 addresses / second per x-user-id, if specified)

const axios = require('axios');

let url = 'https://api.realestateapi.com/v2/AddressVerification";

let addressVerifyBatches = [
  {
    addresses: [
      { 
        "key": 0,
        "street": "2505 NW 28th Street",
        "city": "Oklahoma City",
        "state": "OK",
        "zip": "73107"
      },
      ...99 more
    ]
	},
  {
    addresses: [
      { 
        "key": 101,
        "street": "2504 NW 28th Street",
        "city": "Oklahoma City",
        "state": "OK",
        "zip": "7310"
      },
      ...99 more
    ] 
  },
  ...998 more (for a total of 1000 batches of 100 addresses)
]

let headers = {
  'x-api-key': "<<Your-API-Key>>",
  //'x-user-id': "testUserId" (only rate limited by if specified)
}


let counter = 0;



setInterval( async () => {
  
  for (let i = 0; i<10; i++) {
    let body = { 
      addresses: addressVerifyBatches[counter].addresses
    }
  
  	let runVerify = await axios.post(url, body, {headers});
    
  	counter++;
  }
  
}, 1000)//in milliseconds 1000ms = 1 second






Without observing the rate limits, your batch jobs will start getting response codes such as below. You will get intermittent 429s until your rate window gets clogged up, and then you will receive only 429s.