public
Check address-level serviceability for on-screen offers
Given a full street address, returns per-offer serviceability + exact price for offers whose markets reference an external serviceability source. Layered on top of ZIP coverage (not a gate) — offers without a source are simply absent from the result map. Unauthenticated.
POST
/
public
/
shop
/
serviceability
Check address-level serviceability for on-screen offers
curl --request POST \
--url https://api.offergrid.io/public/shop/serviceability \
--header 'Content-Type: application/json' \
--data '
{
"street": "123 Main St",
"zip": "78701",
"unit": "Unit 4B",
"city": "Austin",
"state": "TX",
"country": "US",
"category": "internet",
"offerIds": [
"<string>"
]
}
'import requests
url = "https://api.offergrid.io/public/shop/serviceability"
payload = {
"street": "123 Main St",
"zip": "78701",
"unit": "Unit 4B",
"city": "Austin",
"state": "TX",
"country": "US",
"category": "internet",
"offerIds": ["<string>"]
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
street: '123 Main St',
zip: '78701',
unit: 'Unit 4B',
city: 'Austin',
state: 'TX',
country: 'US',
category: 'internet',
offerIds: ['<string>']
})
};
fetch('https://api.offergrid.io/public/shop/serviceability', 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://api.offergrid.io/public/shop/serviceability",
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([
'street' => '123 Main St',
'zip' => '78701',
'unit' => 'Unit 4B',
'city' => 'Austin',
'state' => 'TX',
'country' => 'US',
'category' => 'internet',
'offerIds' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"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://api.offergrid.io/public/shop/serviceability"
payload := strings.NewReader("{\n \"street\": \"123 Main St\",\n \"zip\": \"78701\",\n \"unit\": \"Unit 4B\",\n \"city\": \"Austin\",\n \"state\": \"TX\",\n \"country\": \"US\",\n \"category\": \"internet\",\n \"offerIds\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
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://api.offergrid.io/public/shop/serviceability")
.header("Content-Type", "application/json")
.body("{\n \"street\": \"123 Main St\",\n \"zip\": \"78701\",\n \"unit\": \"Unit 4B\",\n \"city\": \"Austin\",\n \"state\": \"TX\",\n \"country\": \"US\",\n \"category\": \"internet\",\n \"offerIds\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.offergrid.io/public/shop/serviceability")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"street\": \"123 Main St\",\n \"zip\": \"78701\",\n \"unit\": \"Unit 4B\",\n \"city\": \"Austin\",\n \"state\": \"TX\",\n \"country\": \"US\",\n \"category\": \"internet\",\n \"offerIds\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"statusCode": 404,
"message": "Offer not found",
"error": "Not Found"
}Body
application/json
Example:
"123 Main St"
Example:
"78701"
Example:
"Unit 4B"
Example:
"Austin"
Example:
"TX"
Example:
"US"
Available options:
internet, electricity, other Example:
"internet"
Restrict the check to these offer ids (the cards on screen).
Response
Per-offer serviceability detail keyed by offer id
Was this page helpful?
⌘I
Check address-level serviceability for on-screen offers
curl --request POST \
--url https://api.offergrid.io/public/shop/serviceability \
--header 'Content-Type: application/json' \
--data '
{
"street": "123 Main St",
"zip": "78701",
"unit": "Unit 4B",
"city": "Austin",
"state": "TX",
"country": "US",
"category": "internet",
"offerIds": [
"<string>"
]
}
'import requests
url = "https://api.offergrid.io/public/shop/serviceability"
payload = {
"street": "123 Main St",
"zip": "78701",
"unit": "Unit 4B",
"city": "Austin",
"state": "TX",
"country": "US",
"category": "internet",
"offerIds": ["<string>"]
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
street: '123 Main St',
zip: '78701',
unit: 'Unit 4B',
city: 'Austin',
state: 'TX',
country: 'US',
category: 'internet',
offerIds: ['<string>']
})
};
fetch('https://api.offergrid.io/public/shop/serviceability', 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://api.offergrid.io/public/shop/serviceability",
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([
'street' => '123 Main St',
'zip' => '78701',
'unit' => 'Unit 4B',
'city' => 'Austin',
'state' => 'TX',
'country' => 'US',
'category' => 'internet',
'offerIds' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"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://api.offergrid.io/public/shop/serviceability"
payload := strings.NewReader("{\n \"street\": \"123 Main St\",\n \"zip\": \"78701\",\n \"unit\": \"Unit 4B\",\n \"city\": \"Austin\",\n \"state\": \"TX\",\n \"country\": \"US\",\n \"category\": \"internet\",\n \"offerIds\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
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://api.offergrid.io/public/shop/serviceability")
.header("Content-Type", "application/json")
.body("{\n \"street\": \"123 Main St\",\n \"zip\": \"78701\",\n \"unit\": \"Unit 4B\",\n \"city\": \"Austin\",\n \"state\": \"TX\",\n \"country\": \"US\",\n \"category\": \"internet\",\n \"offerIds\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.offergrid.io/public/shop/serviceability")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"street\": \"123 Main St\",\n \"zip\": \"78701\",\n \"unit\": \"Unit 4B\",\n \"city\": \"Austin\",\n \"state\": \"TX\",\n \"country\": \"US\",\n \"category\": \"internet\",\n \"offerIds\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"statusCode": 404,
"message": "Offer not found",
"error": "Not Found"
}