Skip to main content

Check Service Availability & Compliance

Learn how to verify service availability and retrieve compliance information before creating monitorables. This is the first step in onboarding new customers to ensure monitoring services are available in their area and to understand any local compliance requirements.

Why Check Service Availability?​

Before creating a monitorable, you should verify:

  1. Service Coverage: Is monitoring available in the customer's location?
  2. Compliance Requirements: Are there local permits, fees, or special alarm response rules?
  3. Multiple Jurisdictions: Does the address fall into multiple municipalities?

This upfront check helps you:

  • Provide accurate quotes including permit fees
  • Set customer expectations for familiarization periods
  • Collect required contact information if additional contacts are required
  • Inform customers of their permit responsibilities

Understanding the API​

The Service Availability endpoint accepts:

  • Monitorable Type: Type of entity to monitor (PREMISES, PERSON, VEHICLE)
  • Premises Type (for premises): Residential or commercial classification (RESIDENTIAL, COMMERCIAL_SMB, COMMERCIAL_LARGE)
  • Address (for premises): City, state, county, postal code, country
  • Geolocation (for person/vehicle): Latitude and longitude coordinates

Returns:

  • Service availability status
  • Compliance information (for premises with address)
  • Available subscriptions and pricing (premises, when configured for the partner)
  • Status reasons and correlation ID

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

Check Availability for Premises​

For premises (homes, businesses), provide address information and premises type:

{
"monitorableType": "PREMISES",
"premisesType": "RESIDENTIAL",
"address": {
"city": "Austin",
"state": "US-TX",
"county": "Travis",
"postalCode": "78701",
"country": "US"
}
}

Response:

{
"id": "123e4567-e89b-12d3-a456-426614174000",
"monitorableType": "PREMISES",
"status": "COMPLIANCE_FOUND",
"locale": "en-US",
"address": {
"city": "Austin",
"state": "US-TX",
"county": "Travis",
"postalCode": "78701",
"country": "US"
},
"municipalities": [
{
"id": 28610,
"name": "AUSTIN",
"city": "AUSTIN",
"county": "TRAVIS",
"state": "US-TX",
"postalCode": "78701",
"country": "US",
"requirements": [
{
"type": "FAMILIARIZATION",
"stage": "POST_ACTIVATION",
"responsibleParty": "CUSTOMER",
"period": "P7D"
},
{
"type": "PERMIT",
"stage": "POST_ACTIVATION",
"responsibleParty": "CUSTOMER",
"eventTypes": ["ALARM_SYSTEM"],
"fees": [
{
"type": "PERMIT_INITIAL",
"frequency": "PT0S",
"amount": 50.00,
"currency": "USD"
}
],
"renewal": {
"frequency": "P1Y",
"responsibleParty": "CUSTOMER",
"fee": {
"amount": 50.00,
"currency": "USD",
"frequency": "P1Y"
}
}
},
{
"type": "NUMBER_OF_CONTACTS",
"stage": "PRE_ACTIVATION",
"responsibleParty": "CUSTOMER",
"count": 2
},
{
"type": "SUBSCRIPTION",
"stage": "PRE_ACTIVATION",
"responsibleParty": "CUSTOMER",
"options": ["ANNUAL", "MONTHLY"]
}
],
"notices": [
{
"type": "PATROL_SERVICES_REQUIRED",
"description": "A verified response patrol is required before police are dispatched.",
"fee": {
"amount": 8.00,
"currency": "USD",
"frequency": "P1M"
}
},
{
"type": "PERMIT_REQUIRED_BEFORE_POLICE_DISPATCH",
"description": "Police will not respond to an alarm without a valid permit on file."
}
],
"subscriptions": [
{
"type": "MONTHLY",
"period": "P1M",
"name": "Monthly subscription",
"description": "Monthly subscription for ADT monitoring services",
"items": [
{
"type": "MONTHLY_SUBSCRIPTION_FEE",
"amount": { "value": 29.99, "currency": "USD" }
},
{
"type": "MONTHLY_GUARD_FEE",
"amount": { "value": 8.00, "currency": "USD" }
}
]
},
{
"type": "ANNUAL",
"period": "P1Y",
"name": "Annual subscription",
"description": "Annual subscription for ADT monitoring services",
"items": [
{
"type": "ANNUAL_SUBSCRIPTION_FEE",
"amount": { "value": 299.99, "currency": "USD" }
},
{
"type": "ANNUAL_GUARD_FEE",
"amount": { "value": 96.00, "currency": "USD" }
}
]
}
]
}
],
"createdAt": "2024-01-15T10:30:00Z"
}

Understanding the Compliance Response​

The response contains a municipalities array with jurisdiction-specific requirements and notices.

Requirements​

Each municipality has a requirements array containing:

  • Familiarization: A test mode period (e.g., "period": "P7D" for 7 days) during which no live dispatch occurs
  • Permit: Permit details including fees (each with a type and frequency as an ISO 8601 duration), event types, and renewal information

Notices​

Each municipality has a notices array describing alarm response rules such as additional contacts required, multi-zone activation, patrol services, and dispatch restrictions. Notices may include a count field or a fee with a frequency.

Familiarization Period​

When a familiarization requirement is present, new customers must keep their system in test mode for the specified duration. During this time:

  • Alarms are flagged as test events
  • No live emergency dispatch occurs
  • Customer learns to use their system
  • False alarm risk is minimized

Subscriptions​

For premises checks, when the partner has active subscription offerings, each municipality includes:

  • A SUBSCRIPTION requirement (stage: PRE_ACTIVATION) with an options array of available types (MONTHLY, ANNUAL)
  • A subscriptions array with display name, description, billing period, and fee items for each offering

Guard fee items (MONTHLY_GUARD_FEE, ANNUAL_GUARD_FEE) appear only when the municipality requires patrol / verified response services. Otherwise they are omitted from the pricing.

If the partner has no active subscriptions, both the SUBSCRIPTION requirement and the subscriptions array are omitted. Person and vehicle checks never include subscriptions.

See Subscriptions for the full model and lifecycle.

Enum Reference​

The service availability response uses several enums to represent statuses, requirement types, fee structures, and alarm response notices.

Status​

ValueDescription
COMPLIANCE_FOUNDCompliance data was found for the given address
COMPLIANCE_NOT_FOUNDNo compliance data exists for the given address
INVALID_ADDRESSThe address could not be matched to a known location

Requirement Type​

ValueDescription
FAMILIARIZATIONA post-activation observation period before the monitorable is verified
PERMITAn alarm permit that must be obtained from the local jurisdiction
NUMBER_OF_CONTACTSA minimum number of contacts that must be provided before the monitorable can activate
SUBSCRIPTIONA billing plan the customer must select before the monitorable can activate

Subscription Type​

ValueDescription
MONTHLYBilled on a monthly period (P1M)
ANNUALBilled on an annual period (P1Y)

Requirement Stage​

ValueDescription
PRE_ACTIVATIONRequirement must be fulfilled before system activation
POST_ACTIVATIONRequirement can be fulfilled after system activation

Responsible Party​

ValueDescription
CUSTOMERThe customer is responsible for obtaining and renewing the permit
MONITORING_COMPANYThe monitoring company handles the permit on behalf of the customer

Permit Event Type​

ValueDescription
ALARM_SYSTEMGeneral alarm system permit covering all event types
BURGLARYBurglary/intrusion alarm permit
HOLDUP_DURESSHoldup or duress (panic) alarm permit
FIREFire alarm permit
MEDICALMedical alarm permit

Fee Type​

ValueDescription
PERMIT_INITIALOne-time fee to obtain the initial permit
PERMIT_RECURRINGRecurring monthly permit fee
ADMIN_INITIALOne-time administrative fee (monitoring company permits)
ADMIN_RECURRINGRecurring monthly administrative fee (monitoring company permits)

Fee Frequency​

Fee frequency values are ISO 8601 durations.

ValueDescription
PT0SCharged once (no recurring period)
P1MCharged every month
P3MCharged every quarter
P1YCharged every year
P2YCharged every 2 years
P3YCharged every 3 years

Renewal Frequency​

Renewal frequency values are ISO 8601 durations. PT0S means no automatic renewal schedule (lifetime permit or manual renewal).

ValueDescription
P1YPermit renews every year
P1MPermit renews every month
P3MPermit renews every quarter
P2YPermit renews every 2 years
P3YPermit renews every 3 years
PT0SNo recurring renewal period (lifetime or manual)

Notice Type​

ValueDescription
PATROL_SERVICES_REQUIREDVerified response patrol is required before police dispatch. May include a recurring fee.
MULTI_ZONE_BEFORE_POLICE_DISPATCHMultiple alarm zones must activate within a time window before dispatch. Includes zones and period.
RESPONSIBLE_PARTY_RESPONSEA responsible party must respond on-site within a time limit. Includes period.
PERMIT_REQUIRED_BEFORE_POLICE_DISPATCHPolice will not respond without a valid permit on file.
FIRE_DISPATCH_BEFORE_PREMISES_VERIFICATIONFire alarms are dispatched to the authority before customer verification.
POLICE_RESPONSE_UNKNOWNThe authority broadcasts the alarm but officer response depends on availability.

Multi-Zone Type​

ValueDescription
PERIMETER_INTERIORBoth a perimeter and interior zone must activate
ANY_ZONEAny two zones must activate

Testing Your Integration​

Use test postal codes (00001-00099) to simulate different compliance scenarios without needing real addresses.

Example test scenarios:

  • Simple case: Use 00001 for basic integration testing
  • Multi-jurisdiction: Use 00002 to test jurisdiction selection UI
  • No ordinance: Use 00003 to test empty compliance handling
  • Alarm response: Use 00009-00012 to test patrol, dispatch, and fire notices
  • Fee structures: Use 00013-00015, 00020-00021, 00040, 00050 to test various fee and renewal configurations
  • Required contacts: Use 00028 (2 required contacts) and 00029 (3 required contacts); all other test postals use the default count of 1
  • Errors: Use 00090-00092 to test error handling

See the complete Test Service Availability guide for all available test postal codes.

Concepts​

API Reference​