Skip to main content

Test Service Availability

Use POST /service-availability-lookup with a partner access token to check whether monitoring is available and to return compliance data for a premises address. This page helps you run your first requests and lists reference addresses that return stable shapes in development and staging so you can automate integration tests. In production, the same endpoint returns live compliance for real locations.

Getting started​

  1. Base URL: Use your environment’s Hyperion API base URL (the request builders below and cURL examples use the portal’s configured gateway URL and versioned paths).
  2. Authentication: Send Authorization: Bearer <partnerAccessToken> (the interactive builders use your portal partner token automatically). The endpoint requires a partner access token — see the main service availability guide for obtaining tokens.
  3. Request: POST with Content-Type: application/json and a body that matches ServiceAvailabilityRequest.
  4. Premises checks: When monitorableType is PREMISES, include premisesType (RESIDENTIAL, COMMERCIAL_SMB, or COMMERCIAL_LARGE) and address with city, county, state (ISO 3166-2 subdivision, e.g. US-MI), postalCode, and country (e.g. US).

To list past checks your integration has already recorded, use GET /service-availability/checks with the same partner auth and standard pagination query parameters. The reference tables below apply to the POST check only.

Reference addresses are intended for development and staging. Production responses follow live compliance data for the address you send.

Reference addresses by scenario​

Use the exact city, county, state, and postal code from a row when you want the corresponding compliance profile. Name and description summarize what each row is for.

No permit scenarios​

Addresses where the reference compliance profile has no permit requirement, with variations for ECV, familiarization, and verified response (with or without billing).

CityCountyStatePostal codeNameDescription
Ann ArborWashtenawUS-MI00001No Permit - Ann ArborNo permit and no patrol but has ECV
RenoWashoeUS-NV00002No Permit - RenoNo permit and no patrol but has ECV & familiarization
CelebrationOsceolaUS-FL00003No Permit - CelebrationNo permit and no patrol but has ECV
Port GambleKitsapUS-WA00004No Permit - Port GambleNo permit, verified response without billing
ChicoButteUS-CA00005No Permit - ChicoNo permit, verified response with billing

Request body

Premises type (required for premises monitorable type)

Address

City name

ISO 3166-2 subdivision code (e.g. "US-WI", "CA-ON", "MX-JAL")

County name

Postal or ZIP code (5-digit or ZIP+4 for US)

ISO 3166-1 alpha-2 country code

cURL command

cURLPOST
curl -X POST "/v1/service-availability-lookup" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-d '{
"monitorableType": "PREMISES",
"address": {
"city": "Ann Arbor",
"state": "US-MI",
"county": "Washtenaw",
"postalCode": "00001",
"country": "US"
},
"premisesType": "RESIDENTIAL"
}'

💡 Set your access token in the navbar to auto-fill the Authorization header

Multi-permit scenarios​

Addresses that return multiple permits in the reference profile (ADT vs customer responsibility, including familiarization on one row).

CityCountyStatePostal codeNameDescription
SyracuseOnondagaUS-NY00050Multi Permit - SyracuseMulti permit/ADT
HopkinsHennepinUS-MN00051Multi Permit - HopkinsMulti permit/CUST & familiarization

Request body

Premises type (required for premises monitorable type)

Address

City name

ISO 3166-2 subdivision code (e.g. "US-WI", "CA-ON", "MX-JAL")

County name

Postal or ZIP code (5-digit or ZIP+4 for US)

ISO 3166-1 alpha-2 country code

cURL command

cURLPOST
curl -X POST "/v1/service-availability-lookup" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-d '{
"monitorableType": "PREMISES",
"address": {
"city": "Syracuse",
"state": "US-NY",
"county": "Onondaga",
"postalCode": "00050",
"country": "US"
},
"premisesType": "RESIDENTIAL"
}'

💡 Set your access token in the navbar to auto-fill the Authorization header

Single permit, ADT responsibility for permits​

Single-permit reference profiles where ADT is responsible, covering recurring fees, free permits, proration, familiarization, verified response, and ECV combinations.

CityCountyStatePostal codeNameDescription
IssaquahKingUS-WA00020Single Permit ADT Responsibility - IssaquahSingle permit/ADT, verified response without billing, has ECV & familiarization
Tybee IslandChathamUS-GA00021Single Permit ADT Responsibility - Tybee IslandSingle permit/ADT recurring
West ValleySalt LakeUS-UT00022Single Permit ADT Responsibility - West ValleySingle permit/ADT free & verified response with billing
RentonKingUS-WA00023Single Permit ADT Responsibility - RentonSingle permit/ADT recurring
PuebloPuebloUS-CO00024Single Permit ADT Responsibility - PuebloSingle permit/ADT free with ECV & familiarization
TukwilaKingUS-WA00025Single Permit ADT Responsibility - TukwilaSingle permit/ADT prorate with verified response & ECV

Request body

Premises type (required for premises monitorable type)

Address

City name

ISO 3166-2 subdivision code (e.g. "US-WI", "CA-ON", "MX-JAL")

County name

Postal or ZIP code (5-digit or ZIP+4 for US)

ISO 3166-1 alpha-2 country code

cURL command

cURLPOST
curl -X POST "/v1/service-availability-lookup" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-d '{
"monitorableType": "PREMISES",
"address": {
"city": "Issaquah",
"state": "US-WA",
"county": "King",
"postalCode": "00020",
"country": "US"
},
"premisesType": "RESIDENTIAL"
}'

💡 Set your access token in the navbar to auto-fill the Authorization header

Single permit, customer responsibility​

Single-permit profiles where the customer is responsible, including Possible AHJ, familiarization, prior-to-install timing, and verified response with billing.

CityCountyStatePostal codeNameDescription
CheswoldKentUS-DE00040Single Permit Customer Responsibility - CheswoldSingle permit/CUST with ECV but AHJ
AdelphiPrince George'sUS-MD00041Single Permit Customer Responsibility - AdelphiSingle permit/CUST with ECV & familiarization
SepulvedaLos AngelesUS-CA00042Single Permit Customer Responsibility - SepulvedaSingle permit/CUST with ECV & Prior to install
ModestoStanislausUS-CA00043Single Permit Customer Responsibility - ModestoSingle permit/CUST & verified response with billing

Request body

Premises type (required for premises monitorable type)

Address

City name

ISO 3166-2 subdivision code (e.g. "US-WI", "CA-ON", "MX-JAL")

County name

Postal or ZIP code (5-digit or ZIP+4 for US)

ISO 3166-1 alpha-2 country code

cURL command

cURLPOST
curl -X POST "/v1/service-availability-lookup" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-d '{
"monitorableType": "PREMISES",
"address": {
"city": "Cheswold",
"state": "US-DE",
"county": "Kent",
"postalCode": "00040",
"country": "US"
},
"premisesType": "RESIDENTIAL"
}'

💡 Set your access token in the navbar to auto-fill the Authorization header

Compliance edge cases (status outcomes)​

Reference rows for non-success compliance lookups: possible AHJ, no ordinance, and invalid address. On 200 OK, read status on ServiceAvailabilityResponse (ComplianceFound, ComplianceNotFound, or InvalidAddress) and optional municipalities. The Burlington and Ardmore rows map to ComplianceNotFound; the St Louist row maps to InvalidAddress.

CityCountyStatePostal codeNameDescription
BurlingtonChittendenUS-VT99203VT Address with Possible AHJVermont address that comes back as a possible AHJ
ArdmoreCarterUS-OK99206No ordinance foundAddress that comes back no ordinance found
St LouistSt Louis CityUS-MO99207Invalid addressAddress that comes back as invalid

Request body

Premises type (required for premises monitorable type)

Address

City name

ISO 3166-2 subdivision code (e.g. "US-WI", "CA-ON", "MX-JAL")

County name

Postal or ZIP code (5-digit or ZIP+4 for US)

ISO 3166-1 alpha-2 country code

cURL command

cURLPOST
curl -X POST "/v1/service-availability-lookup" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-d '{
"monitorableType": "PREMISES",
"address": {
"city": "Burlington",
"state": "US-VT",
"county": "Chittenden",
"postalCode": "99203",
"country": "US"
},
"premisesType": "RESIDENTIAL"
}'

💡 Set your access token in the navbar to auto-fill the Authorization header

Coverage matrix​

AreaPostal codesWhat to verify
No permit00001, 00002, 00003, 00004, 00005ECV, familiarization, verified response variants without permit
Multi-permit00050, 00051Multiple permits, ADT vs customer, familiarization
Single permit (ADT)00020, 00021, 00022, 00023, 00024, 00025ADT responsibility, fees, familiarization, verified response
Single permit (customer)00040, 00041, 00042, 00043Customer responsibility, AHJ, familiarization, prior-to-install, billing
Compliance edge cases99203, 99206, 99207ComplianceNotFound vs InvalidAddress, empty or absent municipalities

Integration testing strategy​

Phase 1: Wire up POST /service-availability-lookup​

  1. Call POST /service-availability-lookup with PREMISES and a reference row (for example 98029 Issaquah).
  2. Confirm 200 and parse status and municipalities your product needs.
  3. Persist or display permit and fee guidance as required.

Phase 2: Jurisdiction and multi-permit UI​

  1. Use 13209 (Syracuse) or 55343 (Hopkins) when building flows for multiple permits or overlapping rules.
  2. Validate list or stepper UX when more than one permit or municipality appears.

Phase 3: Customer vs ADT responsibility​

  1. Alternate between customer rows (for example 19936, 20783) and ADT rows (for example 98029, 84128) to confirm copy and permit responsibility-specific fields.

ADT responsibility means that ADT will be responsible for obtaining and maintaining permits. Customer responsibility means that the Customer will be responsible for ontaining and maintaining permits.


  • When permits are ADT responsibility, the customer will be billed through ADT or the partner for associated costs.
  • When permits are Customer responsibility, the customer will be billed directly from their jurisdiction when they are obtained or updated.

Phase 4: Compliance status handling​

  1. 05401 — expect ComplianceNotFound; treat as possible AHJ / indeterminate compliance in your UX if you surface that case.
  2. 73401 — expect ComplianceNotFound with no useful municipality list (no ordinance).
  3. 65465 — expect InvalidAddress using the documented city spelling St Louist; confirm your client does not assume municipalities is populated.

Phase 5: Production readiness​

  1. Run the same request shape against real customer addresses in production.
  2. Do not key production UX only to reference postal codes; treat them as non-production helpers.
  3. Log and monitor compliance fetch failures per your operational standards.

Important notes​

Reference addresses are not a substitute for production validation. Use them in non-production environments to stabilize tests; ship and test with real locations before go-live.

Practices:

  1. Environment-specific suites: Keep automated tests that depend on reference rows out of production-only pipelines where they add noise.
  2. Document fixtures in tests: Name the postal code (and city/county) in test titles so failures map quickly to a scenario.
  3. Cover status edges: Include at least one row from the compliance edge case table (ComplianceNotFound and InvalidAddress) in your client test matrix.
  4. Partner token scope: Use a partner token with the scopes your deployment requires for service availability.