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
| Endpoint | Window Interval | Max Requests |
|---|---|---|
| Property APIs | 24hrs | 1,000,000 property records / day |
| SkipTrace APIs | 24hrs | 1,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
| Endpoint | Window Interval | Max Requests |
|---|---|---|
| /SkipTrace | 1 second | 10 |
| /SkipTraceBatch | 1 second | 20 (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.
