Find available offers for an address
Given a service address, returns every offer your reseller team can sell at that location. Coverage is evaluated against each offer’s availability rules — postal codes and active market areas (including state-wide and city-level coverage) — and provider visibility settings (all resellers, preferred resellers, or selected resellers). This is the same availability logic used by shareable checkout links, exposed as a dedicated address-driven endpoint. Results are returned both as a flat list and grouped by category for checkout UIs.
curl --request POST \
--url https://api.offergrid.io/reseller/availability \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"address": {
"street": "123 Main Street",
"city": "Austin",
"state": "TX",
"zipCode": "78701",
"country": "US",
"unit": "Unit 205"
},
"category": "internet",
"minPrice": 0,
"maxPrice": 100
}
'import requests
url = "https://api.offergrid.io/reseller/availability"
payload = {
"address": {
"street": "123 Main Street",
"city": "Austin",
"state": "TX",
"zipCode": "78701",
"country": "US",
"unit": "Unit 205"
},
"category": "internet",
"minPrice": 0,
"maxPrice": 100
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
address: {
street: '123 Main Street',
city: 'Austin',
state: 'TX',
zipCode: '78701',
country: 'US',
unit: 'Unit 205'
},
category: 'internet',
minPrice: 0,
maxPrice: 100
})
};
fetch('https://api.offergrid.io/reseller/availability', 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/reseller/availability",
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([
'address' => [
'street' => '123 Main Street',
'city' => 'Austin',
'state' => 'TX',
'zipCode' => '78701',
'country' => 'US',
'unit' => 'Unit 205'
],
'category' => 'internet',
'minPrice' => 0,
'maxPrice' => 100
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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/reseller/availability"
payload := strings.NewReader("{\n \"address\": {\n \"street\": \"123 Main Street\",\n \"city\": \"Austin\",\n \"state\": \"TX\",\n \"zipCode\": \"78701\",\n \"country\": \"US\",\n \"unit\": \"Unit 205\"\n },\n \"category\": \"internet\",\n \"minPrice\": 0,\n \"maxPrice\": 100\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<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://api.offergrid.io/reseller/availability")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"address\": {\n \"street\": \"123 Main Street\",\n \"city\": \"Austin\",\n \"state\": \"TX\",\n \"zipCode\": \"78701\",\n \"country\": \"US\",\n \"unit\": \"Unit 205\"\n },\n \"category\": \"internet\",\n \"minPrice\": 0,\n \"maxPrice\": 100\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.offergrid.io/reseller/availability")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"address\": {\n \"street\": \"123 Main Street\",\n \"city\": \"Austin\",\n \"state\": \"TX\",\n \"zipCode\": \"78701\",\n \"country\": \"US\",\n \"unit\": \"Unit 205\"\n },\n \"category\": \"internet\",\n \"minPrice\": 0,\n \"maxPrice\": 100\n}"
response = http.request(request)
puts response.read_body{
"statusCode": 404,
"message": "Offer not found",
"error": "Not Found"
}{
"statusCode": 404,
"message": "Offer not found",
"error": "Not Found"
}{
"statusCode": 404,
"message": "Offer not found",
"error": "Not Found"
}Authorizations
Team API key for authentication. Your team role (provider/reseller/hybrid) determines which endpoints you can access.
Body
Service address to check availability for
Show child attributes
Show child attributes
Only return offers in this service category
internet, electricity, other "internet"
Minimum monthly price
0
Maximum monthly price
100
Response
Offers available at the given address
Was this page helpful?
curl --request POST \
--url https://api.offergrid.io/reseller/availability \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"address": {
"street": "123 Main Street",
"city": "Austin",
"state": "TX",
"zipCode": "78701",
"country": "US",
"unit": "Unit 205"
},
"category": "internet",
"minPrice": 0,
"maxPrice": 100
}
'import requests
url = "https://api.offergrid.io/reseller/availability"
payload = {
"address": {
"street": "123 Main Street",
"city": "Austin",
"state": "TX",
"zipCode": "78701",
"country": "US",
"unit": "Unit 205"
},
"category": "internet",
"minPrice": 0,
"maxPrice": 100
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
address: {
street: '123 Main Street',
city: 'Austin',
state: 'TX',
zipCode: '78701',
country: 'US',
unit: 'Unit 205'
},
category: 'internet',
minPrice: 0,
maxPrice: 100
})
};
fetch('https://api.offergrid.io/reseller/availability', 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/reseller/availability",
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([
'address' => [
'street' => '123 Main Street',
'city' => 'Austin',
'state' => 'TX',
'zipCode' => '78701',
'country' => 'US',
'unit' => 'Unit 205'
],
'category' => 'internet',
'minPrice' => 0,
'maxPrice' => 100
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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/reseller/availability"
payload := strings.NewReader("{\n \"address\": {\n \"street\": \"123 Main Street\",\n \"city\": \"Austin\",\n \"state\": \"TX\",\n \"zipCode\": \"78701\",\n \"country\": \"US\",\n \"unit\": \"Unit 205\"\n },\n \"category\": \"internet\",\n \"minPrice\": 0,\n \"maxPrice\": 100\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<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://api.offergrid.io/reseller/availability")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"address\": {\n \"street\": \"123 Main Street\",\n \"city\": \"Austin\",\n \"state\": \"TX\",\n \"zipCode\": \"78701\",\n \"country\": \"US\",\n \"unit\": \"Unit 205\"\n },\n \"category\": \"internet\",\n \"minPrice\": 0,\n \"maxPrice\": 100\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.offergrid.io/reseller/availability")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"address\": {\n \"street\": \"123 Main Street\",\n \"city\": \"Austin\",\n \"state\": \"TX\",\n \"zipCode\": \"78701\",\n \"country\": \"US\",\n \"unit\": \"Unit 205\"\n },\n \"category\": \"internet\",\n \"minPrice\": 0,\n \"maxPrice\": 100\n}"
response = http.request(request)
puts response.read_body{
"statusCode": 404,
"message": "Offer not found",
"error": "Not Found"
}{
"statusCode": 404,
"message": "Offer not found",
"error": "Not Found"
}{
"statusCode": 404,
"message": "Offer not found",
"error": "Not Found"
}