cURL
curl --request POST \
--url https://v2.easystreetoffers.com/api/v2/counter-offers \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"offer_id": 123,
"counter_offer_amount": 123,
"counter_offer_memo": "<string>",
"counter_offer_expires": "<string>",
"counter_offer_terms": {},
"counter_offer_status": "<string>",
"counter_earnest_money": 123,
"counter_em_hard_post_inspection": true,
"counter_lease_back": true,
"counter_lease_back_period": 123,
"counter_flexible_closing": true,
"counter_post_possession": true,
"counter_waive_warranty": true,
"counter_inspection_period": 123,
"counter_post_possession_period": 123,
"test": true
}
'import requests
url = "https://v2.easystreetoffers.com/api/v2/counter-offers"
payload = {
"offer_id": 123,
"counter_offer_amount": 123,
"counter_offer_memo": "<string>",
"counter_offer_expires": "<string>",
"counter_offer_terms": {},
"counter_offer_status": "<string>",
"counter_earnest_money": 123,
"counter_em_hard_post_inspection": True,
"counter_lease_back": True,
"counter_lease_back_period": 123,
"counter_flexible_closing": True,
"counter_post_possession": True,
"counter_waive_warranty": True,
"counter_inspection_period": 123,
"counter_post_possession_period": 123,
"test": True
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
offer_id: 123,
counter_offer_amount: 123,
counter_offer_memo: '<string>',
counter_offer_expires: '<string>',
counter_offer_terms: {},
counter_offer_status: '<string>',
counter_earnest_money: 123,
counter_em_hard_post_inspection: true,
counter_lease_back: true,
counter_lease_back_period: 123,
counter_flexible_closing: true,
counter_post_possession: true,
counter_waive_warranty: true,
counter_inspection_period: 123,
counter_post_possession_period: 123,
test: true
})
};
fetch('https://v2.easystreetoffers.com/api/v2/counter-offers', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://v2.easystreetoffers.com/api/v2/counter-offers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'offer_id' => 123,
'counter_offer_amount' => 123,
'counter_offer_memo' => '<string>',
'counter_offer_expires' => '<string>',
'counter_offer_terms' => [
],
'counter_offer_status' => '<string>',
'counter_earnest_money' => 123,
'counter_em_hard_post_inspection' => true,
'counter_lease_back' => true,
'counter_lease_back_period' => 123,
'counter_flexible_closing' => true,
'counter_post_possession' => true,
'counter_waive_warranty' => true,
'counter_inspection_period' => 123,
'counter_post_possession_period' => 123,
'test' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://v2.easystreetoffers.com/api/v2/counter-offers"
payload := strings.NewReader("{\n \"offer_id\": 123,\n \"counter_offer_amount\": 123,\n \"counter_offer_memo\": \"<string>\",\n \"counter_offer_expires\": \"<string>\",\n \"counter_offer_terms\": {},\n \"counter_offer_status\": \"<string>\",\n \"counter_earnest_money\": 123,\n \"counter_em_hard_post_inspection\": true,\n \"counter_lease_back\": true,\n \"counter_lease_back_period\": 123,\n \"counter_flexible_closing\": true,\n \"counter_post_possession\": true,\n \"counter_waive_warranty\": true,\n \"counter_inspection_period\": 123,\n \"counter_post_possession_period\": 123,\n \"test\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://v2.easystreetoffers.com/api/v2/counter-offers")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"offer_id\": 123,\n \"counter_offer_amount\": 123,\n \"counter_offer_memo\": \"<string>\",\n \"counter_offer_expires\": \"<string>\",\n \"counter_offer_terms\": {},\n \"counter_offer_status\": \"<string>\",\n \"counter_earnest_money\": 123,\n \"counter_em_hard_post_inspection\": true,\n \"counter_lease_back\": true,\n \"counter_lease_back_period\": 123,\n \"counter_flexible_closing\": true,\n \"counter_post_possession\": true,\n \"counter_waive_warranty\": true,\n \"counter_inspection_period\": 123,\n \"counter_post_possession_period\": 123,\n \"test\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://v2.easystreetoffers.com/api/v2/counter-offers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"offer_id\": 123,\n \"counter_offer_amount\": 123,\n \"counter_offer_memo\": \"<string>\",\n \"counter_offer_expires\": \"<string>\",\n \"counter_offer_terms\": {},\n \"counter_offer_status\": \"<string>\",\n \"counter_earnest_money\": 123,\n \"counter_em_hard_post_inspection\": true,\n \"counter_lease_back\": true,\n \"counter_lease_back_period\": 123,\n \"counter_flexible_closing\": true,\n \"counter_post_possession\": true,\n \"counter_waive_warranty\": true,\n \"counter_inspection_period\": 123,\n \"counter_post_possession_period\": 123,\n \"test\": true\n}"
response = http.request(request)
puts response.read_body{
"offer_amount": 123,
"offer_id": 123,
"buyer_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"offer_request_id": 123,
"created_at": "now()",
"offer_expires": "<string>",
"buyer_pays_buyer_broker_commission": true,
"buyer_pays_listing_broker_commission": true,
"buyer_broker_commission_pct": 123,
"buyer_broker_commission_amt": 123,
"listing_broker_commission_pct": 123,
"listing_broker_commission_amt": 123,
"net_proceeds_to_seller": 123,
"net_cost_to_buyer": 123,
"offer_memo": "<string>",
"offer_status": "true",
"additional_terms": {},
"earnest_money": 123,
"em_hard_post_inspection": true,
"lease_back": true,
"lease_back_period": 123,
"flexible_closing": true,
"post_possession": true,
"waive_warranty": true,
"inspection_period": 123,
"post_possession_period": 123,
"offer_is_counter_offer": true,
"offer_type": "<string>",
"offer_decided_at": "<string>",
"offer_internal_memo": "<string>",
"test": true
}{
"error": 123,
"message": "<string>"
}Counter Offers
Counter an Offer
Make an offer on a property.
POST
/
counter-offers
cURL
curl --request POST \
--url https://v2.easystreetoffers.com/api/v2/counter-offers \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"offer_id": 123,
"counter_offer_amount": 123,
"counter_offer_memo": "<string>",
"counter_offer_expires": "<string>",
"counter_offer_terms": {},
"counter_offer_status": "<string>",
"counter_earnest_money": 123,
"counter_em_hard_post_inspection": true,
"counter_lease_back": true,
"counter_lease_back_period": 123,
"counter_flexible_closing": true,
"counter_post_possession": true,
"counter_waive_warranty": true,
"counter_inspection_period": 123,
"counter_post_possession_period": 123,
"test": true
}
'import requests
url = "https://v2.easystreetoffers.com/api/v2/counter-offers"
payload = {
"offer_id": 123,
"counter_offer_amount": 123,
"counter_offer_memo": "<string>",
"counter_offer_expires": "<string>",
"counter_offer_terms": {},
"counter_offer_status": "<string>",
"counter_earnest_money": 123,
"counter_em_hard_post_inspection": True,
"counter_lease_back": True,
"counter_lease_back_period": 123,
"counter_flexible_closing": True,
"counter_post_possession": True,
"counter_waive_warranty": True,
"counter_inspection_period": 123,
"counter_post_possession_period": 123,
"test": True
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
offer_id: 123,
counter_offer_amount: 123,
counter_offer_memo: '<string>',
counter_offer_expires: '<string>',
counter_offer_terms: {},
counter_offer_status: '<string>',
counter_earnest_money: 123,
counter_em_hard_post_inspection: true,
counter_lease_back: true,
counter_lease_back_period: 123,
counter_flexible_closing: true,
counter_post_possession: true,
counter_waive_warranty: true,
counter_inspection_period: 123,
counter_post_possession_period: 123,
test: true
})
};
fetch('https://v2.easystreetoffers.com/api/v2/counter-offers', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://v2.easystreetoffers.com/api/v2/counter-offers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'offer_id' => 123,
'counter_offer_amount' => 123,
'counter_offer_memo' => '<string>',
'counter_offer_expires' => '<string>',
'counter_offer_terms' => [
],
'counter_offer_status' => '<string>',
'counter_earnest_money' => 123,
'counter_em_hard_post_inspection' => true,
'counter_lease_back' => true,
'counter_lease_back_period' => 123,
'counter_flexible_closing' => true,
'counter_post_possession' => true,
'counter_waive_warranty' => true,
'counter_inspection_period' => 123,
'counter_post_possession_period' => 123,
'test' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://v2.easystreetoffers.com/api/v2/counter-offers"
payload := strings.NewReader("{\n \"offer_id\": 123,\n \"counter_offer_amount\": 123,\n \"counter_offer_memo\": \"<string>\",\n \"counter_offer_expires\": \"<string>\",\n \"counter_offer_terms\": {},\n \"counter_offer_status\": \"<string>\",\n \"counter_earnest_money\": 123,\n \"counter_em_hard_post_inspection\": true,\n \"counter_lease_back\": true,\n \"counter_lease_back_period\": 123,\n \"counter_flexible_closing\": true,\n \"counter_post_possession\": true,\n \"counter_waive_warranty\": true,\n \"counter_inspection_period\": 123,\n \"counter_post_possession_period\": 123,\n \"test\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://v2.easystreetoffers.com/api/v2/counter-offers")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"offer_id\": 123,\n \"counter_offer_amount\": 123,\n \"counter_offer_memo\": \"<string>\",\n \"counter_offer_expires\": \"<string>\",\n \"counter_offer_terms\": {},\n \"counter_offer_status\": \"<string>\",\n \"counter_earnest_money\": 123,\n \"counter_em_hard_post_inspection\": true,\n \"counter_lease_back\": true,\n \"counter_lease_back_period\": 123,\n \"counter_flexible_closing\": true,\n \"counter_post_possession\": true,\n \"counter_waive_warranty\": true,\n \"counter_inspection_period\": 123,\n \"counter_post_possession_period\": 123,\n \"test\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://v2.easystreetoffers.com/api/v2/counter-offers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"offer_id\": 123,\n \"counter_offer_amount\": 123,\n \"counter_offer_memo\": \"<string>\",\n \"counter_offer_expires\": \"<string>\",\n \"counter_offer_terms\": {},\n \"counter_offer_status\": \"<string>\",\n \"counter_earnest_money\": 123,\n \"counter_em_hard_post_inspection\": true,\n \"counter_lease_back\": true,\n \"counter_lease_back_period\": 123,\n \"counter_flexible_closing\": true,\n \"counter_post_possession\": true,\n \"counter_waive_warranty\": true,\n \"counter_inspection_period\": 123,\n \"counter_post_possession_period\": 123,\n \"test\": true\n}"
response = http.request(request)
puts response.read_body{
"offer_amount": 123,
"offer_id": 123,
"buyer_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"offer_request_id": 123,
"created_at": "now()",
"offer_expires": "<string>",
"buyer_pays_buyer_broker_commission": true,
"buyer_pays_listing_broker_commission": true,
"buyer_broker_commission_pct": 123,
"buyer_broker_commission_amt": 123,
"listing_broker_commission_pct": 123,
"listing_broker_commission_amt": 123,
"net_proceeds_to_seller": 123,
"net_cost_to_buyer": 123,
"offer_memo": "<string>",
"offer_status": "true",
"additional_terms": {},
"earnest_money": 123,
"em_hard_post_inspection": true,
"lease_back": true,
"lease_back_period": 123,
"flexible_closing": true,
"post_possession": true,
"waive_warranty": true,
"inspection_period": 123,
"post_possession_period": 123,
"offer_is_counter_offer": true,
"offer_type": "<string>",
"offer_decided_at": "<string>",
"offer_internal_memo": "<string>",
"test": true
}{
"error": 123,
"message": "<string>"
}Authorizations
Body
application/json
New offer
timestamp with time zone
set to true s
Response
successful request
timestamp with time zone
timestamp with time zone
If true, buyer pays the buyer broker commission equal to 3% of the offer amount. If false, seller will pay the buyer broker commission equal to 3% of the offer amount.
If true, buyer pays the listing broker commission set by the agent. If false, seller will pay listing agent commission.
Example:
"true"
The category of offer. Options include: 'quality_cash', 'auto_cash', 'cash', 'mls', 'ibuyer', 'custom', 'instant', and 'instant_premier'.
timestamp with time zone
set to true s